← Back to Feed CACHED · 2026-10-29 00:44:03 · CACHE_KEY CVE-2026-118579
CVE-2026-118579 · CWE-912 · Disclosed 2026-10-28

D-Link DIR-505 Web Management CGI hidden maintenance backdoor via secmark1524.cgi

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

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.

"Real backdoor, dead product. Replace the DIR-505; do not waste a patch cycle on a 2012 travel router."
02 · The Attack Path

4 steps from start to impact.

STEP 01

Locate a DIR-505 on the network

The attacker must discover a D-Link DIR-505 with its web management interface reachable. The default management port is TCP/80 on the LAN side. The device is a small portable travel router typically used in hotel rooms or as a personal hotspot — it is not rack-mounted infrastructure. Scanning for the device's HTTP banner or D-Link OUI on the local subnet is the likely approach.
Conditions required:
  • 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
Where this breaks in practice:
  • 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
Detection/coverage: Nmap service scan with -sV will fingerprint the lighttpd/D-Link banner. Asset inventory tools (Rumble, Lansweeper) will identify the device by OUI and HTTP response.
STEP 02

Send crafted request to backdoor CGI

The attacker sends an HTTP request to the hidden /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.
Conditions required:
  • Network reachability to the management interface (step 1 complete)
  • Knowledge of the hardcoded parameter values (published in the PoC)
Where this breaks in practice:
  • 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
Detection/coverage: WAF or IDS rules matching the CGI path /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.
STEP 03

TFTP daemon starts as root

Upon successful authentication bypass, the CGI signals the device's system manager process, which starts 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.
Conditions required:
  • Successful backdoor trigger (step 2 complete)
  • UDP/69 reachability from the attacker to the DIR-505
Where this breaks in practice:
  • 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
Detection/coverage: Network monitoring for unexpected UDP/69 traffic. IDS signatures for TFTP file transfers from router management IPs.
STEP 04

Arbitrary file read as root

The attacker uses any TFTP client (the PoC includes 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.
Conditions required:
  • TFTP daemon running (step 3 complete)
  • TFTP reachability (UDP/69)
Where this breaks in practice:
  • 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
Detection/coverage: TFTP file transfer logs if captured by network tap. Anomalous outbound UDP/69 from a known device IP.
03 · Compensating Control

1
LOW 3.0→IGNORE 0.0
SEVERITY REDUCED
Run an asset discovery scan for DIR-505 devices and retire any found — Use Rumble, Lansweeper, or Nmap OUI-based scanning to identify any DIR-505 devices by D-Link MAC prefix (28:10:7B, 1C:7E:E5, etc.) and HTTP banner. Any discovered units should be powered off and replaced with a supported device. As a LOW-severity finding, there is no noisgate mitigation SLA — treat as backlog hygiene with retirement during the next hardware refresh cycle.
2
LOW 3.0→IGNORE 0.0
SEVERITY REDUCED
Block TCP/80 and UDP/69 to any known DIR-505 IPs at the network edge and internal firewalls — If immediate retirement is not possible, ACLs preventing any traffic to the device's management interface (TCP/80) and TFTP port (UDP/69) will prevent exploitation entirely. This breaks both the trigger and the file-retrieval steps of the attack chain. Apply during normal change-window cadence.
3
LOW 3.0→LOW 2.0
Segment guest/travel-router networks from production VLANs — If DIR-505 devices are used in conference rooms or guest networks, ensure they are on isolated VLANs with no route to production subnets. This limits blast radius even if the device is compromised. Standard network hygiene that should already be in place.
What doesn't work
  • 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.
04 · Intelligence Metadata

The supporting signals.

In-the-Wild ExploitationNo 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-ConceptPublic 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.
EPSSNot yet scored. FIRST EPSS API returns empty results — the CVE was published 2026-10-28, too recent for EPSS model ingestion.
KEV StatusNot listed. No CISA KEV entry. Given the product's EOL status and negligible deployment, KEV listing is unlikely.
CVSS VectorCVSS: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 VersionsD-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 VersionNone. 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/ExposureNegligible 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 Timeline2026-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.
ResearcherWalnut1337 (VulDB user, Switzerland). Reproduced via FirmAE full-system emulation (Linux 4.1.17 MIPS). Also authored a separate DIR-505 filename RCE repo.

Sources.

  1. VulDB Entry VDB-428018
  2. OffSeq Radar — CVE-2026-118579
  3. Walnut1337 PoC Repository
  4. Strix.ai CVE Detail
  5. ThreatInt CVE Detail
  6. D-Link DIR-505L EOL Status
  7. OpenWrt DIR-505 Hardware Page
  8. SmallNetBuilder DIR-505 Review
05 · The Call

Final Verdict
↓ DOWNGRADED to LOW (3.0/10)

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.

06 · Verification

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.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/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