This is a thermonuclear warhead aimed at a mailbox — the weapon is real, but the target isn't in your zip code
CVE-2026-114575 is an unauthenticated OS command injection in the TOTOLINK A950RG consumer Wi-Fi router, firmware version 4.1.2cu.5268_B20221104. The flaw lives in the UploadCustomModule function within lib/cste_modules/product.so. An attacker sends a POST request to /cgi-bin/cstecgi.cgi with a crafted JSON body where the FileMd5 parameter carries shell metacharacters. Because the firmware passes this value directly to a system command without sanitization, the attacker achieves root-level code execution on the router — no credentials, no user interaction, no complexity. The A950RG is a ~$30 AC1200 dual-band consumer/SOHO router sold primarily in Asian markets (Vietnam, China, Southeast Asia). Only a single firmware build is confirmed affected, with no subsequent patched release from TOTOLINK.
The vendor CVSS of 10.0 is technically accurate *for the device itself* — the vector AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H correctly describes an unauthenticated remote code execution with scope change. But for an enterprise security team managing a fleet of servers, workstations, and managed network appliances, this score is deeply misleading. The TOTOLINK A950RG is not enterprise infrastructure. It does not appear in enterprise procurement catalogs, asset management databases, or managed switch/firewall inventories. CVSS does not account for deployment prevalence, and here that gap turns a 10.0 into noise. The real audience for this CVE is ISPs, SOHO users, and botnet researchers — not your Tuesday patch cycle.
3 steps from start to impact.
Locate exposed management interface
- TOTOLINK A950RG running firmware 4.1.2cu.5268_B20221104
- Web management interface reachable (LAN by default, WAN if remote mgmt enabled)
- Enterprise networks do not deploy TOTOLINK consumer routers
- Default config does not expose admin panel to WAN
- Shodan/Censys show minimal internet-facing TOTOLINK A950RG population compared to enterprise edge appliances
title:TOTOLINK or http.html:A950RG can identify exposed instances. No enterprise vulnerability scanners (Qualys, Tenable, Rapid7) carry authenticated checks for this firmware.Send crafted POST to cstecgi.cgi
/cgi-bin/cstecgi.cgi with a JSON body setting topicurl to setting/UploadCustomModule and injecting OS commands via the FileMd5 parameter. The product.so shared library passes this value unsanitized to a system() call. No authentication token, session cookie, or CSRF token is validated. Public PoC by H3rmesk1t (GitHub gist) demonstrates the full request.- Network reachability to the management interface
- None — this step is trivial once the interface is reachable
cstecgi.cgi POST with shell metacharacters in JSON body. Fortinet IPS rule 51514 covers related TOTOLINK command injection patterns.Achieve root shell on router
- Successful command injection from step 2
- Router has limited storage and compute — useful primarily for botnet recruitment or DNS hijacking, not as a persistent C2 node
- Compromising a home router does not directly yield enterprise domain credentials or fleet access
http-title script), or DHCP logs to identify any TOTOLINK devices on corporate network segments. If found, physically replace with a managed enterprise access point or router. This is your only real action item. No patching SLA applies since this is a LOW verdict — treat as backlog hygiene when discovered.- Enterprise vulnerability scanners (Qualys, Tenable, Rapid7) — None carry authenticated checks for TOTOLINK A950RG firmware. These devices are not in their plugin databases as managed assets.
- NAC 802.1X enforcement — While NAC would prevent a rogue TOTOLINK from joining the corporate network, the attack vector is the router's own management interface, not a device joining your network. NAC doesn't help if the router IS your branch network edge.
- Firmware patching — No patch exists from TOTOLINK. The only remediation is device replacement.
The supporting signals.
| In-the-Wild Exploitation | No confirmed in-the-wild exploitation yet. Not on CISA KEV. However, TOTOLINK routers are a proven Mirai botnet target — the Beastmode campaign (Fortinet, 2022) weaponized TOTOLINK CVEs within days of PoC release. A Go-based IoT botnet observed by Akamai in September 2026 targets TOTOLINK-style CGI endpoints. |
|---|---|
| Proof-of-Concept | Public. GitHub gist by researcher H3rmesk1t (gist.github.com/H3rmesk1t/3a629799af33425e07571182e539a794). Additional related PoC material in wangx1nyi/IoT-vuln repo on GitHub covering the same UploadCustomModule endpoint across TOTOLINK models. |
| EPSS Score | Not yet available — CVE was published on 2026-10-22 (same day). FIRST typically populates EPSS within 24-48 hours. Expect a moderate-to-high EPSS given public PoC and low attack complexity on similar TOTOLINK CVEs. |
| CISA KEV Status | Not listed. Given this is a consumer SOHO device with negligible U.S. federal deployment, KEV listing is unlikely. |
| CVSS Vector Interpretation | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H — Scope Changed means the attacker pivots from the router to affect connected devices. The 10.0 is technically valid for the device but does not reflect enterprise deployment prevalence. CVSS 4.0 score is 9.3. |
| Affected Versions | TOTOLINK A950RG firmware 4.1.2cu.5268_B20221104 (single confirmed build). No other firmware versions tested or confirmed. |
| Fixed Version | None available. TOTOLINK has not released a patched firmware. The A950RG has had 223+ CVEs across TOTOLINK products in 2026 alone (avg score 8.6), suggesting limited vendor investment in security patches. |
| Scanning / Exposure Data | No specific Shodan/Censys counts available for A950RG specifically. TOTOLINK routers as a class have a small internet footprint compared to enterprise edge vendors. GreyNoise sensors have observed scanning activity targeting TOTOLINK CGI endpoints throughout 2026. |
| Disclosure Timeline | Published 2026-10-22. NVD status: *Received* (analysis pending). Same-day PoC availability. |
| Reporting Researcher | H3rmesk1t (GitHub). Related UploadCustomModule research by wangx1nyi (GitHub IoT-vuln repository). |
Sources.
- VulDB — CVE-2026-114575 Advisory
- Strix.ai — CVE-2026-114575 Details
- Offseq Radar — Command Injection Analysis
- H3rmesk1t — TOTOLINK A950RG PoC (GitHub Gist)
- wangx1nyi/IoT-vuln — UploadCustomModule PoC
- Fortinet — Beastmode Mirai Campaign Targeting TOTOLINK
- HOL Guard — CVE-2026-114575
- Akamai — Go-Based IoT DDoS Botnet (Sep 2026)
Why this verdict
- Not enterprise infrastructure: The TOTOLINK A950RG is a ~$30 consumer/SOHO AC1200 Wi-Fi router. It does not appear in enterprise procurement, is not managed by enterprise endpoint/network management tools (SCCM, Intune, Jamf, Meraki, FortiManager), and is absent from standard enterprise asset inventories. An enterprise managing 10,000 hosts has zero of these in scope.
- Role multiplier — network edge appliance analysis: The high-value-role catalog lists enterprise perimeter appliances (F5, Palo, FortiGate, Cisco ASA). The TOTOLINK A950RG is not in this class. It occupies the *low-value role* of home Wi-Fi router or lab device. Even if a remote employee uses one at home, the enterprise does not own, manage, or patch it. The blast radius of a compromise is one home network segment — not domain takeover, not fleet compromise, not supply-chain pivot. Less than 0.1% of A950RG installations occupy any enterprise network role. The high-value floor does not apply.
- No patch exists, but no action is needed: TOTOLINK has not released a fix and shows no indication of doing so. But since this device is not in your managed fleet, the absence of a patch is the *vendor's* problem, not yours. If you somehow discover TOTOLINK devices via network scanning, the correct action is physical replacement, not firmware patching.
- Mirai botnet risk is real but not your problem to patch: Historical data shows Mirai variants weaponize TOTOLINK CVEs within days. This is a legitimate internet hygiene concern — but it affects ISPs and home users, not your enterprise patching queue. Your perimeter defenses (NGFW, IPS) already block botnet C2 traffic.
- CVSS 10.0 reflects device-level severity, not enterprise risk: The vector is accurate for an unauth RCE on the device. But CVSS has no axis for 'deployment prevalence in the target environment.' For your environment, the realistic exploitability is near zero because the precondition — having a TOTOLINK A950RG in your managed network — is not met.
Why not higher?
Upgrading to MEDIUM would require the TOTOLINK A950RG to plausibly exist in enterprise managed inventories at a rate where it would appear in routine vulnerability scans. It does not. Even in the edge case of a remote worker's home router being compromised, the enterprise has no patching authority over the device and the blast radius is confined to the home LAN — not the corporate domain. The Mirai botnet vector is real but is an internet-wide hygiene issue, not an enterprise patch-cycle item.
Why not lower?
IGNORE would mean zero conceivable enterprise relevance. We stop short of IGNORE because: (1) some organizations in developing markets or with acquired SOHO branch offices *might* discover TOTOLINK devices during network audits, (2) a compromised employee home router could theoretically enable DNS hijacking or MitM of VPN traffic before the tunnel establishes, and (3) the public PoC and Mirai botnet history mean exploitation is near-certain on exposed devices, so awareness has value even if patching action does not.
Crowdsourced verification payload.
Run this from any Linux/macOS workstation on the same network segment as a suspected TOTOLINK device. Invoke with: bash check_totolink_a950rg.sh <ROUTER_IP>. No special privileges required — it uses only HTTP requests. It probes the management interface to identify the device model and firmware, then reports vulnerability status.
#!/usr/bin/env bash
# check_totolink_a950rg.sh — CVE-2026-114575 detection
# Checks if a target IP hosts a TOTOLINK A950RG with vulnerable firmware.
# Usage: bash check_totolink_a950rg.sh <ROUTER_IP>
# Exit codes: 0 = VULNERABLE, 1 = PATCHED/not-affected, 2 = UNKNOWN
set -euo pipefail
if [[ $# -lt 1 ]]; then
echo "Usage: $0 <ROUTER_IP>"
exit 2
fi
TARGET="$1"
TIMEOUT=5
VULN_FW="4.1.2cu.5268_B20221104"
# Step 1: Check if the web interface is reachable
HTTP_RESP=$(curl -sk --max-time "$TIMEOUT" -o /dev/null -w "%{http_code}" "http://${TARGET}/" 2>/dev/null || true)
if [[ -z "$HTTP_RESP" || "$HTTP_RESP" == "000" ]]; then
echo "UNKNOWN — Cannot reach http://${TARGET}/ (timeout or connection refused)"
exit 2
fi
# Step 2: Fetch the page content and look for TOTOLINK A950RG identifiers
PAGE=$(curl -sk --max-time "$TIMEOUT" "http://${TARGET}/" 2>/dev/null || true)
if ! echo "$PAGE" | grep -qi "totolink\|A950RG"; then
echo "UNKNOWN — Host at ${TARGET} does not appear to be a TOTOLINK device"
exit 2
fi
if ! echo "$PAGE" | grep -qi "A950RG"; then
echo "UNKNOWN — TOTOLINK device detected but model is not A950RG"
exit 2
fi
# Step 3: Try to extract firmware version from the page or device info endpoint
DEVINFO=$(curl -sk --max-time "$TIMEOUT" \
-X POST "http://${TARGET}/cgi-bin/cstecgi.cgi" \
-H "Content-Type: application/json" \
-d '{"topicurl":"setting/getDeviceInfo"}' 2>/dev/null || true)
FW_VERSION=""
if echo "$DEVINFO" | grep -qoP '"firmwareVer"\s*:\s*"[^"]+"'; then
FW_VERSION=$(echo "$DEVINFO" | grep -oP '"firmwareVer"\s*:\s*"\K[^"]+' || true)
fi
# Fallback: check page source for firmware string
if [[ -z "$FW_VERSION" ]]; then
FW_VERSION=$(echo "$PAGE" | grep -oP '4\.1\.2cu\.[0-9]+_B[0-9]+' | head -1 || true)
fi
if [[ -z "$FW_VERSION" ]]; then
echo "UNKNOWN — TOTOLINK A950RG detected at ${TARGET} but firmware version could not be determined"
echo " Manually verify firmware via admin panel. Vulnerable version: ${VULN_FW}"
exit 2
fi
echo "Detected firmware: ${FW_VERSION}"
if [[ "$FW_VERSION" == "$VULN_FW" ]]; then
echo "VULNERABLE — TOTOLINK A950RG at ${TARGET} runs firmware ${VULN_FW} (CVE-2026-114575)"
echo " Action: Replace this device with a managed enterprise AP/router immediately."
exit 0
else
echo "PATCHED — TOTOLINK A950RG at ${TARGET} runs firmware ${FW_VERSION} (not the known-vulnerable build)"
echo " Note: No vendor patch exists for CVE-2026-114575. If this is a different build, verify independently."
exit 1
fi