Someone left a spare key under the mat of a house that was condemned eight years ago
CVE-2026-118579 is a hidden maintenance backdoor (CWE-912) in the D-Link DIR-505 A1 portable travel router, specifically in firmware version 1.10B02. The backdoor lives in the main function of /secmark1524.cgi (aliased via lighttpd to my_cgi.cgi). An unauthenticated attacker who can reach the web management interface on TCP/80 can submit hardcoded values to the accu/pass/code/hash/cmds parameters, bypassing authentication entirely. On success, the device starts a TFTP daemon (tftpd) as root on UDP/69, enabling arbitrary file read — including /etc/shadow. Firmware 1.06 is confirmed not affected per the researcher's binary diff; only 1.10B02 carries the backdoor code. The PoC by researcher Walnut1337 is published on GitHub and demonstrates read-only file retrieval. No weaponized exploit exists.
The vendor CVSS of 9.8 Critical is technically defensible in a vacuum — the vector is unauthenticated, remote, low-complexity, with high CIA impact. But the score is divorced from reality. The researcher who found the bug rated it CVSS 7.5 High, correctly noting the demonstrated impact is confidentiality-only file read (the TFTP write path is unanalyzed). More importantly, the D-Link DIR-505 is a pocket-sized 802.11n travel router released in 2012, discontinued circa 2018, with no successor model and no firmware updates forthcoming. D-Link has a documented pattern of refusing patches for EOL hardware. For an enterprise fleet of 10,000 hosts, the probability of having a DIR-505 in production is negligible. The vendor's 9.8 treats this like a perimeter firewall RCE; it's closer to a defect in a novelty keychain.
4 steps from start to impact.
Locate a DIR-505 on the network
- A DIR-505 running firmware 1.10B02 exists on an accessible network segment
- The web management interface (TCP/80) is reachable from the attacker's position
- The DIR-505 was released in 2012 and discontinued ~2018 — finding one in an enterprise is exceptionally unlikely
- The management interface is LAN-facing by default; external exposure requires deliberate misconfiguration or port forwarding
- Even Shodan/Censys show no meaningful population of internet-facing DIR-505 devices
-sV will fingerprint the lighttpd/D-Link banner. Asset inventory tools (Rumble, Lansweeper) will identify the device by OUI and HTTP response.Send crafted request to backdoor CGI
/secmark1524.cgi endpoint with specific hardcoded values in the accu, pass, code, hash, and cmds parameters. The CGI's main function checks these values against compiled-in constants and, on match, bypasses all authentication. The PoC trigger_backdoor.sh script from Walnut1337's GitHub repo automates this step. No credentials, session tokens, or user interaction are required.- Network reachability to the management interface (step 1 complete)
- Knowledge of the hardcoded parameter values (published in the PoC)
- The hardcoded values are specific to firmware 1.10B02 — any other firmware version will reject the request
- The backdoor CGI path is non-standard and not discoverable via typical web crawling without prior knowledge
/secmark1524.cgi or the specific parameter names. HTTP access logs on the device echo to /dev/console but are not forwarded to SIEM by default.TFTP daemon starts as root
tftpd listening on UDP/69 with root privileges. The HTTP response returns an XML ok confirmation. The TFTP service is now available to the attacker for arbitrary file retrieval from the device's filesystem.- Successful backdoor trigger (step 2 complete)
- UDP/69 reachability from the attacker to the DIR-505
- UDP/69 may be blocked by upstream firewalls or ACLs in managed networks
- The TFTP service only runs until the device is rebooted or the service is manually stopped
Arbitrary file read as root
tftp_client.py) to retrieve sensitive files: /etc/passwd, /etc/shadow, device configuration files, and the CGI binary itself. Password hashes can be cracked offline. The demonstrated impact is confidentiality compromise of the device. Full RCE via TFTP write operations is theoretically possible but unanalyzed by the researcher.- TFTP daemon running (step 3 complete)
- TFTP reachability (UDP/69)
- The device stores only its own credentials and configuration — no enterprise secrets, AD hashes, or business data
- Cracked device credentials provide admin access to a travel router, not lateral movement into enterprise infrastructure
- The device has no domain join, no agent, and no trust relationship with enterprise identity systems
- Firmware update — no patch exists and none will be issued. D-Link does not support EOL hardware. Do not waste time checking for updates.
- OpenWrt reflash — while OpenWrt technically supports the DIR-505 hardware, current builds have known issues (USB not detected on 21.02.3+) and flashing third-party firmware on a travel router to mitigate a backdoor is not a defensible enterprise strategy.
- Web management password change — the backdoor bypasses authentication entirely; changing the admin password has zero effect on this attack path.
The supporting signals.
| In-the-Wild Exploitation | No evidence. Not listed in CISA KEV. No campaigns or threat actor usage reported. OffSeq Radar Mirage shows no attack traffic as of 2026-10-28. |
|---|---|
| Proof-of-Concept | Public PoC available. GitHub repo Walnut1337/DIR-505_backdoor contains trigger_backdoor.sh, poc_arbitrary_read.sh, tftp_client.py, and raw_http_request.txt. The researcher describes it as read-only file retrieval with no weaponized code. No Metasploit module, no Nuclei template, no ExploitDB entry indexed. |
| EPSS | Not yet scored. FIRST EPSS API returns empty results — the CVE was published 2026-10-28, too recent for EPSS model ingestion. |
| KEV Status | Not listed. No CISA KEV entry. Given the product's EOL status and negligible deployment, KEV listing is unlikely. |
| CVSS Vector | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H (9.8 Critical) per VulDB CNA. CVSS 4.0 score is 8.9. Researcher's own assessment was CVSS 7.5 High (confidentiality-only impact demonstrated). The 9.8 assumes full CIA impact which is unproven — only file read is demonstrated. |
| Affected Versions | D-Link DIR-505 A1, firmware 1.10B02 (DIR-505_A1_FW110B02.bin) only. Firmware 1.06 is NOT affected per binary diff analysis by the researcher. |
| Fixed Version | None. No patch will be issued. The DIR-505 is end-of-life. D-Link has a documented pattern of refusing patches for EOL hardware. The only remediation is device retirement. |
| Scanning/Exposure | Negligible internet exposure. No Shodan or Censys results for DIR-505 devices. The device is a pocket-sized 802.11n travel router from 2012; internet-facing deployment is not a realistic scenario. eBay listings show the product as sold out. |
| Disclosure Timeline | 2026-10-28: CVE reserved, advisory published, VulDB entry created, PoC published — all on the same day. Coordinated disclosure status is unclear; no D-Link advisory exists. |
| Researcher | Walnut1337 (VulDB user, Switzerland). Reproduced via FirmAE full-system emulation (Linux 4.1.17 MIPS). Also authored a separate DIR-505 filename RCE repo. |
Sources.
Why this verdict
- Dead product, zero enterprise footprint: The DIR-505 is a pocket-sized 802.11n travel router released in 2012 and discontinued circa 2018. The probability of finding one in a managed enterprise fleet of 10,000 hosts is effectively zero. Even shadow IT instances are implausible in 2026 — the device predates modern Wi-Fi standards by two generations.
- No high-value role applies: The DIR-505 is not a network edge appliance, identity provider, hypervisor, CI/CD system, backup target, or any other high-value-role component. It is a consumer travel gadget. The blast radius of full compromise is limited to the device itself and traffic transiting it — there are no domain trusts, no stored enterprise credentials, no lateral movement paths.
- Role multiplier: low-value role only. The DIR-505 occupies exclusively the lowest deployment role (personal travel accessory / hotel room Wi-Fi extender). The chain succeeds trivially on the device if reachable, but the outcome is 'root on a travel router' — host-scoped impact with no domain, fleet, or supply-chain escalation path. This does not trigger any severity floor.
- Demonstrated impact is confidentiality-only: The researcher's PoC demonstrates read-only file retrieval. The vendor's 9.8 assumes full integrity and availability impact (I:H, A:H) which is unproven. The researcher's own CVSS assessment of 7.5 is more accurate for the demonstrated attack.
- LAN-facing management interface: The web management service runs on TCP/80 on the LAN side by default. Internet exposure requires deliberate port forwarding on an upstream device — not a realistic enterprise configuration for a travel router.
Why not higher?
The vulnerability is a genuine pre-auth backdoor with a public PoC, which normally warrants HIGH or CRITICAL. However, no severity floor is triggered because the DIR-505 is exclusively a consumer travel router — it does not occupy any high-value deployment role in any enterprise topology. There is no identity-scale, fleet-scale, or supply-chain blast radius. Bumping to MEDIUM would overstate the risk to an enterprise team that almost certainly has zero instances of this 14-year-old consumer device.
Why not lower?
Despite the negligible enterprise footprint, the vulnerability is a real, confirmed backdoor with a working PoC. IGNORE would be appropriate only if the CVE were disputed or the product literally could not exist in any network. Shadow IT is theoretically possible, and the backdoor does grant root-level file read without authentication. A LOW rating correctly signals 'check your asset inventory and retire if found' without consuming patch-cycle resources.
Crowdsourced verification payload.
Run this script from any Linux/macOS workstation on the same network segment as the suspected DIR-505. Pass the target IP as the first argument: bash check_dir505_cve2026118579.sh 192.168.0.1. No elevated privileges required — it uses only curl and grep.
#!/usr/bin/env bash
# check_dir505_cve2026118579.sh
# Checks whether a host is a D-Link DIR-505 running vulnerable firmware 1.10B02
# Does NOT trigger the backdoor — only fingerprints the device.
# Exit codes: 0 = VULNERABLE, 1 = PATCHED/NOT-AFFECTED, 2 = UNKNOWN
set -euo pipefail
if [[ $# -lt 1 ]]; then
echo "Usage: $0 <target-ip>"
exit 2
fi
TARGET="$1"
TIMEOUT=5
echo "[*] Probing http://${TARGET}/ for D-Link DIR-505 fingerprint..."
# Grab the main page and headers
RESPONSE=$(curl -sk --max-time "$TIMEOUT" -D - "http://${TARGET}/" 2>/dev/null) || {
echo "[!] Could not connect to http://${TARGET}/"
echo "UNKNOWN"
exit 2
}
# Check for DIR-505 in response body or headers
if echo "$RESPONSE" | grep -qi 'DIR-505'; then
echo "[+] Device identifies as DIR-505"
else
echo "[-] Device does not appear to be a DIR-505"
echo "PATCHED"
exit 1
fi
# Try to extract firmware version from common D-Link status pages
for PATH_CHECK in "/Status/wan_info.asp" "/info_firmware.asp" "/status.htm" "/" ; do
PAGE=$(curl -sk --max-time "$TIMEOUT" "http://${TARGET}${PATH_CHECK}" 2>/dev/null) || continue
if echo "$PAGE" | grep -qoE '1\.10B02'; then
echo "[!] Firmware version 1.10B02 detected — VULNERABLE to CVE-2026-118579"
echo "VULNERABLE"
exit 0
fi
if echo "$PAGE" | grep -qoE '1\.06'; then
echo "[-] Firmware version 1.06 detected — NOT affected per researcher binary diff"
echo "PATCHED"
exit 1
fi
done
# Check if the backdoor CGI endpoint exists (HEAD request only, does not trigger)
HTTP_CODE=$(curl -sk --max-time "$TIMEOUT" -o /dev/null -w '%{http_code}' -I "http://${TARGET}/secmark1524.cgi" 2>/dev/null) || HTTP_CODE="000"
if [[ "$HTTP_CODE" == "200" || "$HTTP_CODE" == "405" ]]; then
echo "[!] Backdoor CGI endpoint /secmark1524.cgi responds (HTTP $HTTP_CODE) — likely VULNERABLE"
echo "VULNERABLE"
exit 0
elif [[ "$HTTP_CODE" == "404" ]]; then
echo "[-] Backdoor CGI endpoint not found (HTTP 404) — likely not affected"
echo "PATCHED"
exit 1
fi
echo "[?] DIR-505 detected but could not confirm firmware version or backdoor endpoint"
echo "UNKNOWN"
exit 2