← Back to Feed CACHED · 2026-10-15 04:42:51 · CACHE_KEY CVE-2026-110536
CVE-2026-110536 · CWE-77 · Disclosed 2026-10-14

D-Link DIR-868L HNAP SOAPACTION Pre-Auth OS Command Injection

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

A ten-year-old consumer router that will never see a patch just got handed a skeleton key

CVE-2026-110536 is a pre-authentication OS command injection in the HNAP CGI handler (/htdocs/cgibin) on D-Link DIR-868L revision B1 running firmware 2.01b05 (built January 2015). The SOAPACTION HTTP header undergoes an unanchored substring match — the authentication check looks for http://purenetworks.com/HNAP1/GetDeviceSettings anywhere in the header rather than at a fixed prefix. An attacker appends shell metacharacters after the last / in the header value, and the router passes that string unsanitized into sprintf → system(), executing arbitrary commands as root (uid=0) with full output read-back in the HTTP response. No credentials, no user interaction, one HTTP request to full device takeover. Affected: DIR-868L B1 firmware ≤2.01b05. Other revisions (A, A-ES) carry the same HNAP codebase and are likely vulnerable.

The vendor-assigned CVSS 10.0 with Scope:Changed is technically unjustified — the command injection runs on the router's own OS, not escaping into a downstream component. The researcher's own scoring (CVSS 9.8, Scope:Unchanged) is more accurate. But the real issue for an enterprise patching team isn't the score — it's relevance. The DIR-868L reached End of Life in November 2016. D-Link has explicitly stated no firmware updates or security remediation will be provided. This is a consumer Wi-Fi router from the Obama administration. A CVSS 10.0 on a device that will never be patched and sits in zero enterprise racks is alarm fatigue, not a crisis. For the handful of units lurking in home offices or forgotten branch closets, the action is replace the hardware, not patch it.

"Unpatched forever: EOL consumer router with root RCE has no enterprise footprint to patch."
02 · The Attack Path

4 steps from start to impact.

STEP 01

Identify exposed DIR-868L HNAP endpoint

The attacker scans for HTTP services responding on port 80/8080 with the HNAP discovery signature. The DIR-868L advertises itself via the HNAP1 endpoint at /HNAP1/. Shodan and FOFA historically index these devices by their Server header and HNAP response. Scanning is trivial at scale — Mirai-derivative botnets already do this continuously.
Conditions required:
  • Target DIR-868L has HTTP management reachable (LAN default, WAN if remote admin enabled)
Where this breaks in practice:
  • Remote administration is disabled by default; LAN-only exposure limits attack to internal/adjacent networks
  • Device is EOL since 2016 — shrinking installed base year over year
Detection/coverage: Shodan/Censys/FOFA dorks for D-Link HNAP responses; internal asset inventory flagging DIR-868L MAC OUIs (00:18:E7, 28:10:7B, etc.)
STEP 02

Send crafted SOAPACTION header to bypass authentication

The attacker sends a GET or POST to /HNAP1/ with a SOAPACTION header containing the magic substring http://purenetworks.com/HNAP1/GetDeviceSettings followed by /<shell_command>. The unanchored substring match passes the authentication check because the expected string is present, while the action-name extractor takes everything after the last / — the injected command. No credentials needed.
Conditions required:
  • HTTP connectivity to the HNAP endpoint
Where this breaks in practice:
  • None if the endpoint is reachable — zero-click, zero-auth
Detection/coverage: WAF/IDS rules matching HNAP SOAPACTION with shell metacharacters (;, |, $(), backticks) — Snort SID 37171 covers older HNAP injection variants
STEP 03

Execute arbitrary commands as root

The extracted action name is passed into sprintf(s, "sh /var/run/%s.sh > /dev/console", action); system(s);. The attacker's payload executes as uid=0 on the router's embedded Linux. Command output is captured and returned in the HTTP response body when the payload includes CGI header output. This gives full read/write/execute on the device — credential extraction, traffic interception, firmware modification, botnet enrollment.
Conditions required:
  • Steps 1-2 completed
Where this breaks in practice:
  • None — exploitation is a single HTTP request with immediate root shell
Detection/coverage: Difficult on the device itself (no EDR on embedded Linux). Network-level: monitor for anomalous outbound connections from known router IPs, DNS beaconing, or wget/curl to external C2 infrastructure
STEP 04

Post-exploitation: botnet enrollment or lateral pivot

Compromised DIR-868L units are typically enrolled in IoT botnets (Mirai, Evooo1Bot, Mozi). The attacker can also use the router as a SOCKS proxy or traffic interceptor, capturing DNS queries, HTTP traffic, and potentially VPN credentials transiting the device. Lateral movement into the LAN behind the router is possible via ARP spoofing or DNS hijacking from the gateway position.
Conditions required:
  • Root shell on the router (Step 3)
Where this breaks in practice:
  • Enterprise VPN tunnels are encrypted end-to-end, limiting MitM value
  • Modern endpoints with EDR would detect lateral movement attempts from the gateway
  • The router's MIPS/ARM CPU and limited RAM constrain the attacker's tooling
Detection/coverage: GreyNoise tags for known D-Link botnet C2 infrastructure; DNS anomaly detection for compromised gateways; network flow analysis showing router IP initiating outbound connections to non-NTP/DNS destinations
03 · Compensating Control

1
MEDIUM 4.5→IGNORE 0.0
SEVERITY REDUCED
Asset-discover and decommission all DIR-868L units — Run network scans (Nmap HNAP probes, MAC OUI matching for D-Link prefixes 00:18:E7, 28:10:7B, 1C:7E:E5) across all managed subnets, VPN pools, and branch networks. Any DIR-868L found should be immediately isolated and replaced with a currently-supported router. No mitigation SLA applies at MEDIUM — go straight to the 365-day noisgate remediation window, though replacement is operationally simpler than waiting.
2
MEDIUM 4.5→LOW 2.5
SEVERITY REDUCED
Block HNAP traffic at network boundaries — If DIR-868L units cannot be immediately replaced (e.g., remote worker homes), deploy IDS/IPS rules blocking HTTP requests containing SOAPACTION headers with shell metacharacters targeting /HNAP1/. Snort signature SID 37171 covers older HNAP injection variants and can be adapted. This stops remote exploitation but does not fix the underlying vulnerability.
3
MEDIUM 4.5→LOW 3.0
SEVERITY REDUCED
Disable remote administration on any remaining units — If replacement is delayed, ensure remote administration (WAN-side HTTP management) is disabled on all DIR-868L units. This restricts the HNAP attack surface to LAN-only, requiring the attacker to already be on the local network segment. Verify via port scan from the WAN side.
4
MEDIUM 4.5→MEDIUM 4.0
Monitor for botnet indicators from router IPs — Add known DIR-868L IP addresses to enhanced monitoring in your SIEM/NDR. Alert on outbound connections to known Mirai/Evooo1Bot C2 infrastructure, unusual DNS beaconing, or the router initiating connections to non-standard ports. This doesn't prevent compromise but enables rapid detection.
What doesn't work
  • Firmware patching — no patch exists and none will be released. D-Link confirmed EOL with no security remediation. Do not waste cycles searching for firmware updates.
  • Router-level firewall rules — the DIR-868L's built-in firewall cannot block requests to its own management interface. The HNAP handler runs before any user-configurable ACLs.
  • MAC filtering or WPA3 hardening — these protect wireless client access but do not restrict HTTP management interface access from wired LAN or WAN (if remote admin is on). The attack is HTTP-based, not wireless.
04 · Intelligence Metadata

The supporting signals.

In-the-wild exploitationNo confirmed exploitation of CVE-2026-110536 specifically. However, Evooo1Bot (Mirai derivative, active since July 2026) targets the same device model via CVE-2025-55583, and Mirai campaigns actively exploit EOL D-Link routers via HNAP vectors. Weaponization of this CVE is a matter of when, not if.
Proof of conceptPublic. Walnut1337/Command-Injection-DIR-868L — includes 4 PoC implementations: poc_hnap_injection.py (standalone), hnap_http_poc.sh (FirmAE), hnap_qemu_root.sh (QEMU ARM), verify_hnap_pigw.py (Unicorn emulation). Full weaponization-ready with output read-back.
EPSS scoreNot yet scored (CVE published 2026-10-14, EPSS typically populates within 30 days). Comparable D-Link HNAP CVEs score 0.5–0.85 EPSS historically.
CISA KEV statusNot listed. D-Link SOHO router CVEs rarely make KEV unless tied to active APT campaigns.
CVSS vectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H (vendor: 10.0). Researcher assessment: AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H = 9.8. Scope:Changed is unjustified — the injection executes on the router's own OS, not a separate security domain.
Affected versionsDIR-868L B1 firmware 2.01b05 confirmed. Rev A and A-ES share the same HNAP codebase and are likely vulnerable. No firmware newer than 2.01b05 exists for any revision.
Fixed versionsNone. Will never exist. Device EOL since November 2016. D-Link explicitly states no firmware updates or security remediation for EOL products.
Scanning/exposureHistorical Shodan data (~2016) showed ~10,000 DIR-868L units with remote administration enabled. Current exposure is substantially lower due to natural hardware attrition over 10 years. HNAP endpoint is LAN-only by default.
Disclosure date2026-10-14 (public). Researcher (Walnut1337) discovered September 2026.
Reporting researcherWalnut1337 — independent researcher. D-Link PSIRT notification was planned per the advisory.

Sources.

  1. Walnut1337 PoC Repository
  2. VulDB Entry — CVE-2026-110536
  3. Strix AI — CVE-2026-110536 Analysis
  4. D-Link EOL/EOS Notice — DIR-868L
  5. D-Link DIR-868L End of Support PDF
  6. Fortinet — Evooo1Bot Botnet Targeting D-Link Routers
  7. Offseq Radar — CVE-2026-110536
  8. Exploit-DB — D-Link HNAP SOAPAction RCE (Historical)
05 · The Call

Final Verdict
↓ DOWNGRADED to MEDIUM (4.5/10)

Why this verdict

  • S:C is unjustified, true base is 9.8: The command injection executes on the router's own Linux OS — no sandbox escape, no cross-component impact. Scope:Unchanged (S:U) drops the base from 10.0 to 9.8. This is the correct technical baseline.
  • Near-zero enterprise installed base: The DIR-868L is a consumer SOHO Wi-Fi router discontinued in 2016. An enterprise managing 10,000 hosts does not procure, deploy, or manage DIR-868L units. They may exist in remote worker home networks or forgotten branch closets, but these are unmanaged assets outside the patching program's scope. Estimated enterprise fleet presence: <0.1%.
  • No patch exists or ever will: D-Link confirmed no firmware updates for EOL products. This is not a 'patch now vs. patch later' decision — it's a 'find and replace hardware' decision, which changes the operational calculus entirely.
  • LAN-only by default limits remote attack surface: The HNAP endpoint is exposed on the LAN interface by default. Remote exploitation requires the owner to have enabled remote administration — a non-default configuration that further narrows the reachable population.
  • Role multiplier: The DIR-868L occupies no high-value enterprise role. It is not a network edge appliance in the enterprise sense (not F5, FortiGate, PAN-OS, Cisco ASA). It is not an identity provider, hypervisor, CI/CD system, backup target, or domain controller. Its blast radius is limited to (a) the device itself and (b) traffic transiting a single consumer router segment. Compromise of a home router could theoretically enable traffic interception of a remote worker's VPN handshake, but modern split-tunnel VPN with certificate pinning limits this. The worst realistic outcome is botnet enrollment of a single SOHO device — not domain takeover, not fleet compromise, not supply-chain pivot.
  • Active botnet ecosystem is a floor-setter: Evooo1Bot and Mirai campaigns actively target the DIR-868L model family. While CVE-2026-110536 specifically hasn't been observed in the wild yet, the public PoC and active targeting of the same device make exploitation imminent. This prevents dropping below MEDIUM.

Why not higher?

The vulnerability is technically severe (unauth RCE as root, single HTTP request, public PoC). In a vacuum, this would be CRITICAL. But the affected device is a consumer SOHO router EOL since 2016 with near-zero enterprise deployment. It occupies no high-value role — it's not protecting enterprise infrastructure, not holding enterprise secrets, not part of the managed fleet. There is no high-value-role floor to enforce. Upgrading to HIGH would require evidence that a meaningful fraction of the enterprise's 10,000 hosts depend on DIR-868L for connectivity or security, which is implausible.

Why not lower?

Active botnet campaigns (Evooo1Bot, Mirai) are already targeting the DIR-868L model family via adjacent CVEs. The public PoC is weaponization-ready with output read-back. Compromised home routers can serve as proxy infrastructure, traffic interceptors, or pivot points into home-office LANs. Dropping to LOW would understate the risk for organizations with remote/hybrid workforces where unmanaged consumer routers are the de facto network edge. The imminent exploitation timeline keeps this at MEDIUM.

06 · Verification

Crowdsourced verification payload.

Run this from any Linux/macOS auditor workstation that has HTTP connectivity to the target router's management IP. Usage: bash check_dir868l.sh 192.168.0.1. No special privileges needed — it sends a benign HNAP discovery request and checks the device model and firmware version. It does not send an exploit payload.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/usr/bin/env bash
# check_dir868l.sh — CVE-2026-110536 exposure checker
# Checks if a target IP is a D-Link DIR-868L running vulnerable firmware.
# Safe: sends only a standard HNAP GetDeviceSettings request.
# Exit codes: 0=VULNERABLE, 1=PATCHED, 2=UNKNOWN

set -euo pipefail

if [ $# -lt 1 ]; then
  echo "Usage: $0 <router-ip> [port]"
  echo "Example: $0 192.168.0.1 80"
  exit 2
fi

TARGET="$1"
PORT="${2:-80}"
TIMEOUT=10
URL="http://${TARGET}:${PORT}/HNAP1/"

echo "[*] Probing ${URL} for HNAP endpoint..."

# Send a legitimate HNAP GetDeviceSettings request (no injection)
RESPONSE=$(curl -s -m "$TIMEOUT" \
  -H 'SOAPACTION: "http://purenetworks.com/HNAP1/GetDeviceSettings"' \
  -H 'Content-Type: text/xml' \
  "$URL" 2>/dev/null || true)

if [ -z "$RESPONSE" ]; then
  echo "[?] UNKNOWN — No response from ${TARGET}:${PORT}. Host may be down or HNAP not exposed."
  exit 2
fi

# Check if response contains DIR-868L model identifier
if echo "$RESPONSE" | grep -qi 'DIR-868L'; then
  echo "[!] DIR-868L detected at ${TARGET}:${PORT}"
  
  # Try to extract firmware version
  FW_VER=$(echo "$RESPONSE" | grep -oiP '(?<=<FirmwareVersion>)[^<]+' || true)
  MODEL=$(echo "$RESPONSE" | grep -oiP '(?<=<ModelName>)[^<]+' || true)
  HW_VER=$(echo "$RESPONSE" | grep -oiP '(?<=<HardwareVersion>)[^<]+' || true)
  
  echo "    Model:    ${MODEL:-unknown}"
  echo "    Firmware: ${FW_VER:-unknown}"
  echo "    Hardware: ${HW_VER:-unknown}"
  
  # DIR-868L is EOL with no patches — ALL firmware versions are vulnerable
  echo ""
  echo "[!] VULNERABLE — DIR-868L is End-of-Life (since 2016) with no security patches."
  echo "    CVE-2026-110536: Pre-auth command injection via HNAP SOAPACTION header."
  echo "    ACTION: Replace this device immediately. No firmware fix will ever be released."
  exit 0
else
  # Check if it's a different D-Link model with HNAP
  if echo "$RESPONSE" | grep -qi 'HNAP\|purenetworks'; then
    echo "[*] HNAP endpoint detected but device is NOT a DIR-868L."
    echo "    (Other D-Link models may have separate HNAP vulnerabilities.)"
    echo "[-] PATCHED — Not affected by CVE-2026-110536 (wrong model)."
    exit 1
  else
    echo "[?] UNKNOWN — Response received but no HNAP/DIR-868L signature found."
    exit 2
  fi
fi