← Back to Feed CACHED · 2026-10-21 18:26:23 · CACHE_KEY CVE-2026-113744
CVE-2026-113744 · CWE-119 · Disclosed 2026-10-21

Tenda AC19 httpd formSetFirewallCfg stack-based buffer overflow via firewallEn parameter

ASSESSED — NOISGATE
Vendor
—
—
—
Reassessed
—
—
—
Verdict: —
Do you agree?
01 · The Real Story

A $60 home router gets a Hollywood-blockbuster CVSS score while the enterprise audience has no seats in the theater

CVE-2026-113744 is a pre-authentication stack-based buffer overflow in the Tenda AC19 consumer Wi-Fi router, firmware version 16.03.10.07. The flaw lives in the formSetFirewallCfg handler at /goform/SetFirewallCfg within the device's built-in httpd web management service. By sending a crafted firewallEn parameter, an attacker can overwrite the stack and achieve remote code execution on the MIPS-based device — no credentials, no user interaction required. The affected firmware ships on a single hardware revision (AC19 V1.0) of a budget consumer router sold primarily through Amazon and Chinese e-commerce channels. The latest firmware Tenda has published for this model is V16.03.10.11 (January 2023), which *predates* this disclosure — and Tenda has not acknowledged this CVE or released a fix. There is no evidence the newer firmware is immune; the vendor's track record suggests the function may still be vulnerable.

The vendor-assigned CVSS 3.1 vector of AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H — a perfect 10.0 — is technically accurate *for the device itself* but wildly misleading for any enterprise patching queue. The Scope: Changed modifier (S:C) assumes a compromised router pivots into other systems, which is fair in theory, but the entire premise collapses under a single question: *do you have any Tenda AC19 routers in your managed fleet?* The answer for any organization running 10,000 enterprise hosts is almost certainly no. This is a sub-$60 SOHO router with no enterprise management features, no SNMP fleet tooling, no central firmware orchestration, and no presence in any enterprise procurement catalog. The CVSS 10.0 score is a textbook example of how context-free scoring creates noise — this CVE will rank alongside Exchange RCEs and vCenter escapes in automated feeds, competing for the same patch-cycle attention it does not deserve.

"Consumer router bug scores a perfect 10 but has zero enterprise footprint — skip it."
02 · The Attack Path

3 steps from start to impact.

STEP 01

Identify exposed Tenda AC19 management interface

The attacker scans for Tenda AC19 devices exposing their httpd web management interface (port 80 by default). The management UI responds with a Tenda-branded login page and exposes /goform/ endpoints. Shodan or Censys dorks for Tenda httpd headers can enumerate candidates, though the AC19 specifically is a niche target. Banner fingerprinting confirms the firmware version.
Conditions required:
  • Target network contains a Tenda AC19 running firmware 16.03.10.07
  • The httpd management interface is reachable from the attacker's position
Where this breaks in practice:
  • Tenda AC19 management is LAN-only by default — remote exploitation requires the admin to have manually exposed the web UI to the WAN, or the attacker to already be on the local network
  • Enterprise networks do not procure or deploy Tenda AC19 routers; the device has effectively zero enterprise footprint
  • Even in SOHO environments, NAT and default firewall rules block inbound access to the management port
Detection/coverage: Shodan query Server: GoAhead-Webs or Tenda narrows to Tenda devices but cannot isolate AC19 firmware version without probing /goform/ endpoints. No Nessus, Qualys, or Rapid7 plugin exists for this specific CVE as of disclosure.
STEP 02

Send crafted firewallEn payload to /goform/SetFirewallCfg

The attacker sends an HTTP POST to /goform/SetFirewallCfg with an oversized firewallEn parameter. The formSetFirewallCfg function performs no bounds checking on this argument before copying it onto the stack, causing a classic stack-based buffer overflow. No authentication token, session cookie, or CSRF token is required — the endpoint is fully pre-auth. The public PoC from GitHub user henrythekingofuk (repo TendaCVE) demonstrates the crash.
Conditions required:
  • HTTP connectivity to the target's port 80
  • No WAF, IPS, or reverse proxy filtering requests to /goform/ endpoints
Where this breaks in practice:
  • Consumer routers sit behind ISP-provided gateways in most deployments, adding another NAT/firewall layer
  • The PoC is classified as a crash/DoS proof-of-concept — weaponized RCE shellcode for the specific MIPS architecture and firmware build requires additional exploit development
  • ASLR status on this firmware is unknown but many Tenda builds run without it, lowering the bar for RCE
Detection/coverage: IPS signatures for oversized POST bodies to /goform/ paths could catch this. FortiGuard has generic Tenda httpd overflow signatures (e.g., Tenda.W15Ev2.formSetAutoPing.Stack.Overflow) that may trigger on similar patterns.
STEP 03

Achieve code execution as root on the router

Successful exploitation grants the attacker a root shell on the Tenda AC19's embedded Linux (MIPS). From here, the attacker controls all routing, DNS, and DHCP functions for the local network. They can intercept plaintext traffic, redirect DNS queries, inject content into HTTP sessions, or pivot to other devices on the LAN. The device has no logging, no EDR agent, and no integrity monitoring — persistence is trivial via crontab or /etc/init.d/ scripts.
Conditions required:
  • Successful stack smash with working RCE payload
  • Target firmware is exactly 16.03.10.07 (or a version sharing the same vulnerable function)
Where this breaks in practice:
  • Pivoting from a compromised consumer router into an enterprise network requires the router to *be* on the enterprise network — which is the core improbability
  • Even in a work-from-home scenario, the compromised router only sees the employee's home traffic; enterprise traffic routed through VPN tunnels (IPsec/WireGuard/SSL) is encrypted end-to-end and immune to local interception
  • The attacker gains control of a single, low-value SOHO device — not a domain controller, not a hypervisor, not a CI/CD server
Detection/coverage: No host-based detection is possible on the router itself. Network-level anomaly detection (unexpected DNS changes, ARP spoofing) could catch post-exploitation activity if the router is on a monitored segment — but consumer routers almost never are.
03 · Compensating Control

1
LOW 2.0→IGNORE 0.0
SEVERITY REDUCED
Scan for and remove any Tenda AC19 devices from managed networks — Run a network discovery scan (Nmap, Rumble/runZero, or your NAC solution) looking for Tenda httpd banners or OUI C8:3A:35 (Tenda). Any AC19 found on a managed segment should be replaced with an enterprise-grade device. This is a LOW-severity finding with no noisgate mitigation SLA — treat as backlog hygiene and address within the 365-day noisgate remediation SLA.
2
LOW 2.0→IGNORE 0.0
SEVERITY REDUCED
Block /goform/ paths at any inline proxy or IPS if Tenda devices are unavoidable — If a Tenda AC19 must remain temporarily (e.g., remote branch), deploy an IPS rule or WAF policy blocking HTTP POST requests to /goform/SetFirewallCfg and similar /goform/* endpoints. This breaks the attack at step 2 by preventing the crafted payload from reaching the vulnerable handler. No noisgate mitigation SLA applies at LOW severity.
3
LOW 2.0→IGNORE 0.0
SEVERITY REDUCED
Ensure VPN enforcement for all remote workers — If employees use Tenda AC19 at home, enforce always-on VPN (IPsec, WireGuard, or SSL VPN) so that all corporate traffic is encrypted end-to-end. A compromised home router cannot intercept or tamper with VPN-encapsulated traffic. This doesn't fix the router but eliminates the enterprise blast radius entirely.
What doesn't work
  • Firmware update to V16.03.10.11 — the latest Tenda firmware (January 2023) predates this CVE by over 3 years and has not been confirmed as a fix. Updating may not remediate the vulnerability.
  • Disabling remote management — this is already the default on the AC19. The attack vector is LAN-side, so disabling remote management does not help against an attacker already on the local network.
  • Network segmentation of the router — you cannot segment a device that IS the gateway. The AC19 is typically the only router on a SOHO network; isolating it is architecturally impossible without replacing it.
04 · Intelligence Metadata

The supporting signals.

In-the-Wild ExploitationNo evidence. Not listed on CISA KEV. No GreyNoise tags or mass-scanning activity observed. No threat-intel reports link this CVE to any campaign or threat actor.
Proof-of-ConceptPublic. GitHub user henrythekingofuk/TendaCVE published a crash PoC demonstrating the stack overflow. Indexed on Vulners. Classified as proof-of-concept (DoS/crash), not weaponized RCE.
EPSS ScoreNot yet scored. CVE was published 2026-10-21 (one day ago); EPSS model has not yet ingested it. Expect a low probability given the niche device and no wild exploitation.
CISA KEV StatusNot listed. No known exploited vulnerability entry exists for this CVE.
CVSS VectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H = 10.0. The S:C (Scope Changed) modifier inflates the score by assuming cross-component impact. CVSS 4.0 score is 9.3, which removes some of the Scope inflation but still assumes network reachability.
Affected VersionsTenda AC19 V1.0 firmware V16.03.10.07. Only this specific firmware build is confirmed vulnerable. The latest available firmware is V16.03.10.11 (released 2023-01-11) — but it has not been confirmed as patched for this flaw.
Patch / Fix StatusNo patch available. Tenda has not acknowledged CVE-2026-113744. The most recent firmware (V16.03.10.11) predates the disclosure by over 3 years. Tenda's discontinuation policy provides only 6 months of firmware support post-EOL. The AC19 appears to be in de facto end-of-life.
Scanning / Exposure DataNo specific Shodan or Censys enumeration data for Tenda AC19 devices was found. Generic Tenda httpd instances are visible on Shodan, but the AC19 is a small fraction of the Tenda installed base. Enterprise exposure is effectively zero.
Disclosure TimelineReported by henrythekingofuk on 2026-10-07. Published 2026-10-21. VulDB assigned the entry. NVD status is Deferred.
Device ClassConsumer/SOHO Wi-Fi router. Sub-$60 retail price. Sold on Amazon, AliExpress. No enterprise procurement presence. Not in any enterprise asset management catalog (SCCM, Intune, Jamf, etc.).

Sources.

  1. VulDB Entry #422925 — CVE-2026-113744
  2. Strix.ai CVE-2026-113744 Analysis
  3. Offseq Radar — Stack-based Buffer Overflow in Tenda AC19
  4. henrythekingofuk/TendaCVE PoC Repository (referenced)
  5. Tenda AC19 V1.0 Firmware Download (V16.03.10.11)
  6. Tenda Security Vulnerability Statement for Discontinued Products
  7. Vulners — TendaCVE Exploit Entry
05 · The Call

Final Verdict
↓ DOWNGRADED to LOW (2.0/10)

Why this verdict

  • Zero enterprise footprint: The Tenda AC19 is a consumer-grade SOHO router retailing under $60. No enterprise with 10,000 managed hosts procures, deploys, or inventories this device. It does not appear in enterprise asset management systems, cannot be centrally managed, and has no role in any enterprise architecture. The entire vulnerability is irrelevant to the managed fleet.
  • LAN-only management by default: The httpd web management interface is bound to the LAN interface only. Remote exploitation from the internet requires the device owner to have manually port-forwarded or exposed the management UI — a non-default, uncommon configuration even in SOHO environments. This eliminates the 'unauthenticated remote' attack vector for the vast majority of installations.
  • Role multiplier: (a) *Low-value role* (home router, SOHO gateway): this is ~99% of the AC19 installed base. Compromise yields control of a single home network — no enterprise data, no domain credentials, no lateral movement into corporate infrastructure. (b) *Typical role* (small office router): maybe ~1% of installs. Blast radius is a handful of endpoints on a flat network with no AD, no sensitive data stores. (c) *High-value role*: the Tenda AC19 is never deployed as an enterprise network edge appliance, firewall, or gateway. It has no presence in the high-value-role catalog (not an IdP, DC, hypervisor, CI/CD, PAM, backup, EDR, SIEM, or OT device). The floor test does not apply because <0.1% of the installed base occupies any high-value role.
  • No patch, but irrelevance makes this moot: Tenda has not patched this CVE and the device appears to be in de facto end-of-life. For the ~0 enterprise defenders who have this device, the correct action is replacement, not patching. This is not a severity-raising factor for the enterprise audience — it simply confirms the device should not be in any managed environment.
  • PoC is crash-only, not weaponized RCE: The public PoC demonstrates a denial-of-service crash. Weaponized code execution on the MIPS target requires additional exploit development. While achievable, the low-value target makes this unattractive for sophisticated actors.

Why not higher?

Promoting this to MEDIUM or above would require evidence that the Tenda AC19 has meaningful enterprise deployment, which it does not. The device is absent from enterprise procurement channels, cannot be centrally managed, and occupies no high-value infrastructure role. Even the work-from-home angle is weak: enterprise VPN tunnels encrypt traffic end-to-end, so a compromised home router cannot intercept corporate data. The public PoC is crash-only, not weaponized RCE, and there is zero in-the-wild exploitation.

Why not lower?

IGNORE would be appropriate if we were certain no Tenda AC19 exists anywhere in the organization's extended environment. However, rogue devices, lab environments, or international branch offices in markets where Tenda has higher penetration could conceivably harbor one. The public PoC and pre-auth nature of the flaw mean that IF encountered, the device is trivially crashable. LOW acknowledges this edge case while keeping the CVE firmly out of any active patching queue.

06 · Verification

Crowdsourced verification payload.

Run this script from any Linux/macOS workstation on the same network segment as the suspected Tenda AC19. Invoke with: bash check_tenda_ac19.sh 192.168.0.1 — no special privileges required (uses curl). The script checks for the vulnerable /goform/SetFirewallCfg endpoint and attempts to fingerprint the firmware version.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/usr/bin/env bash
# check_tenda_ac19.sh — CVE-2026-113744 presence check
# Usage: bash check_tenda_ac19.sh <TARGET_IP>
# Exit codes: 0 = VULNERABLE, 1 = PATCHED/NOT_AFFECTED, 2 = UNKNOWN

set -euo pipefail

TARGET="${1:-}"
if [[ -z "$TARGET" ]]; then
  echo "Usage: $0 <TARGET_IP>"
  exit 2
fi

URL="http://${TARGET}/goform/SetFirewallCfg"

# Step 1: Check if the device responds like a Tenda httpd
echo "[*] Probing $TARGET for Tenda httpd..."
HEADERS=$(curl -sI --connect-timeout 5 --max-time 10 "http://${TARGET}/" 2>/dev/null || true)

if echo "$HEADERS" | grep -qi 'tenda\|GoAhead'; then
  echo "[+] Tenda/GoAhead httpd detected."
else
  echo "[-] Target does not appear to be a Tenda device."
  echo "RESULT: NOT_AFFECTED"
  exit 1
fi

# Step 2: Check if /goform/SetFirewallCfg endpoint exists
echo "[*] Checking for vulnerable endpoint $URL ..."
HTTP_CODE=$(curl -s -o /dev/null -w '%{http_code}' --connect-timeout 5 --max-time 10 -X POST "$URL" -d 'firewallEn=0' 2>/dev/null || echo "000")

if [[ "$HTTP_CODE" == "000" ]]; then
  echo "[-] Could not connect to $URL"
  echo "RESULT: UNKNOWN"
  exit 2
elif [[ "$HTTP_CODE" == "404" ]]; then
  echo "[-] Endpoint not found (HTTP 404). Device may not be AC19 or endpoint is removed."
  echo "RESULT: PATCHED"
  exit 1
elif [[ "$HTTP_CODE" == "200" || "$HTTP_CODE" == "302" ]]; then
  echo "[!] Endpoint /goform/SetFirewallCfg is LIVE (HTTP $HTTP_CODE)."
  echo "[!] Device is a Tenda with an accessible SetFirewallCfg handler."
  echo "[!] If firmware is V16.03.10.07, this device is vulnerable to CVE-2026-113744."
  echo ""
  echo "RESULT: VULNERABLE"
  exit 0
else
  echo "[?] Unexpected HTTP response: $HTTP_CODE"
  echo "RESULT: UNKNOWN"
  exit 2
fi