CVE-2026-91001
Executive Summary
CVE-2026-91001 is a stack-based buffer overflow in the DDNS Configuration component of the D-Link DI-8400 router running firmware version 16.07. The vulnerability resides in the ddns_asp function handling the /ddns.asp endpoint and is triggered by manipulating one of several arguments (serv, user, host, wild, mx, bmx, cust, or ip). With a CVSS score of 9.9, remote attackers with low-level privileges can achieve full confidentiality, integrity, and availability impact across the device's security scope. A public exploit has been released, making active exploitation likely; no patch is currently available.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Technical Analysis
CVE-2026-91001 is classified under CWE-119 (Improper Restriction of Operations within the Bounds of a Memory Buffer), with the specific manifestation being a stack-based buffer overflow. The vulnerable attack surface is the DDNS (Dynamic DNS) configuration endpoint at /ddns.asp, which is handled by the ddns_asp function within the DI-8400 firmware (version 16.07).
The flaw is triggered when user-supplied input is passed through one or more of the following arguments: serv, user, host, wild, mx, bmx, cust, or ip. These parameters correspond to DDNS configuration fields (server, username, hostname, wildcard, MX record, backup MX, custom, and IP address). Because the firmware fails to validate input length before copying the data onto a fixed-size stack buffer, an attacker can supply oversized values for any of these fields, overwriting adjacent stack memory.
The CVSS vector AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H indicates:
- AV:N — Exploitable remotely over the network.
- AC:L — No special access conditions or race conditions required.
- PR:L — The attacker must possess low-level privileges (likely an authenticated or semi-authenticated session on the router's web interface, or access to the DDNS configuration panel).
- UI:N — No user interaction needed.
- S:C — The overflow can affect resources beyond the vulnerable component's security scope (e.g., escalation from the web interface to the underlying OS).
- C/I/A:H — Complete loss of confidentiality, integrity, and availability.
The specific overflow mechanics (exact buffer size, overwrite offset, and control-flow hijack method) are not detailed in the public advisory. However, the class is well-understood: an oversized argument causes a stack smash, potentially enabling arbitrary code execution or denial of service. Because the exploit is public, attackers can adapt existing techniques for this device family.
No patch, workaround, or vendor fix is available from tracked sources as of the report date.
Exploitation Scenarios
1) Reconnaissance/Target Identification: The attacker scans the internet for D-Link DI-8400 routers, potentially using Shodan or similar services with queries such as http.html:"D-Link", http.title:"DI-8400", or directly searching for the /ddns.asp endpoint. Devices exposing the web management interface to the WAN or on internal networks reachable from a compromised host are primary targets.
2) Triggering the Flaw: The attacker sends a crafted HTTP request to /ddns.asp with an oversized value in any of the serv, user, host, wild, mx, bmx, cust, or ip parameters. The request likely requires a valid session or low-privileged authentication (PR:L). The input exceeds the buffer size in ddns_asp, causing a stack-based buffer overflow.
3) Payload/Execution Method: At the vulnerability-class level, the oversized input overwrites the return address or other stack-resident control structures. The attacker may inject shellcode or ROP chains, depending on architecture and memory protections. Because the exploit is public, a weaponized payload may already exist that achieves code execution or a crash. Note: No public PoC code is included in this report; the attack chain is inferred from the vulnerability class and NVD description.
4) Post-Exploitation Impact: Successful exploitation can lead to full device compromise. The attacker can execute arbitrary code with the privileges of the web service (often root on embedded devices), manipulate network traffic, pivot into the internal network, install persistence, or cause a denial of service. The CVSS scope change (S:C) indicates the attacker may escape the web application context and affect the underlying operating system.
Impact Assessment
The CVSS score of 9.9 (Critical) reflects a severe, remotely exploitable flaw with low attack complexity. The scope change (S:C) indicates that exploitation can affect resources beyond the vulnerable component, potentially allowing the attacker to compromise the entire device and use it as a pivot point into the internal network. Confidentiality, integrity, and availability impacts are all High, meaning sensitive data (e.g., credentials, network configurations) can be exfiltrated, system files modified, and services disrupted.
Affected systems are D-Link DI-8400 routers running firmware 16.07. Given that the product is end-of-life or lacks vendor support, the blast radius includes small office/home office (SOHO) networks, branch offices, and any environment where these devices are deployed. The public availability of an exploit increases the likelihood of widespread scanning and opportunistic attacks. No CISA KEV listing exists, but the EPSS score (0.00484, 40.4th percentile) suggests a moderate probability of exploitation in the wild, which may rise as the exploit matures.
Detection Guidance
Sigma Rule
title: D-Link DI-8400 DDNS Buffer Overflow Attempt
id: 6a4f8b2e-3c1d-4f7a-9e2b-8d1f3a5c7e9b
status: experimental
description: Detects HTTP requests to /ddns.asp with excessively long parameters, indicating exploitation of CVE-2026-91001.
author: Valters IT Threat Intelligence
date: 2026-05-15
logsource:
category: webserver
product: dlink
detection:
selection_uri:
cs-uri-stem|contains: '/ddns.asp'
selection_params:
cs-uri-query|contains:
- 'serv='
- 'user='
- 'host='
- 'wild='
- 'mx='
- 'bmx='
- 'cust='
- 'ip='
condition: selection_uri and selection_params
# Additional logic to flag long parameter values (e.g., > 256 chars) should be applied via correlation or field length checks.
falsepositives:
- Legitimate DDNS configuration with long hostnames or usernames (rare)
level: high
YARA Rule
rule CVE_2026_91001_DLink_DDNS_Overflow
{
meta:
description = "Detects HTTP requests targeting D-Link DI-8400 /ddns.asp with long DDNS parameters"
author = "Valters IT Threat Intelligence"
date = "2026-05-15"
reference = "CVE-2026-91001"
severity = "critical"
strings:
$uri = "/ddns.asp" ascii wide nocase
$p1 = "serv=" ascii wide nocase
$p2 = "user=" ascii wide nocase
$p3 = "host=" ascii wide nocase
$p4 = "wild=" ascii wide nocase
$p5 = "mx=" ascii wide nocase
$p6 = "bmx=" ascii wide nocase
$p7 = "cust=" ascii wide nocase
$p8 = "ip=" ascii wide nocase
condition:
$uri and any of ($p*)
}
Suricata IDS Rule
alert http any any -> any any (msg:"CVE-2026-91001 D-Link DI-8400 DDNS Buffer Overflow Attempt"; flow:to_server,established; content:"/ddns.asp"; http_uri; nocase; pcre:"/(serv|user|host|wild|mx|bmx|cust|ip)=.{256,}/Ui"; reference:cve,2026-91001; classtype:attempted-admin; sid:100091001; rev:1;)
Elastic Detection
sequence by host.id with maxspan=5s
[network where network.protocol == "http" and url.path == "/ddns.asp" and http.request.method == "POST"]
[network where network.protocol == "http" and url.path == "/ddns.asp" and http.request.body.bytes > 512]
Splunk SPL Query
index=web sourcetype=access_combined
| where match(uri, "(?i)/ddns\.asp")
| eval param_len = len(uri) - len(replace(uri, "(serv|user|host|wild|mx|bmx|cust|ip)=[^&]+", ""))
| where param_len > 256
| table _time, src_ip, uri, status, param_len
Wazuh OSSEC Rule
<group name="web,cve-2026-91001,">
<rule id="100910" level="10">
<if_sid>31100</if_sid>
<match>/ddns.asp</match>
<regex>(serv|user|host|wild|mx|bmx|cust|ip)=.{256,}</regex>
<description>CVE-2026-91001: D-Link DI-8400 DDNS buffer overflow attempt detected</description>
<mitre>
<id>T1190</id>
</mitre>
</rule>
</group>
Mitigation & Patch Guidance
Immediate Mitigations:
- Disable or restrict access to the DDNS configuration interface — block inbound access to
/ddns.aspfrom untrusted networks. If DDNS is not required, disable the feature entirely. - Network segmentation and firewall rules — ensure router management interfaces are not exposed to the WAN; restrict administrative access to a dedicated management VLAN or VPN.
- Authentication hardening — enforce strong, unique credentials for the router web interface to mitigate the low-privilege requirement (PR:L).
- Monitor for exploitation attempts — deploy the detection rules above to identify scanning and attack traffic.
Patch/Upgrade Steps:
- No patch is currently available (patch confidence 0/4). Monitor D-Link's security advisory page for firmware updates. If the DI-8400 reaches end-of-life without a fix, consider replacing the device with a supported model.
Long-Term Hardening:
- Deploy network-based detection (Suricata, Zeek) and host-based monitoring (Wazuh) for embedded devices.
- Implement a vulnerability management program that tracks CVEs for all network infrastructure, including SOHO routers.
- Replace end-of-life hardware proactively to avoid unpatchable vulnerabilities.
- Limit the attack surface by disabling unused services (DDNS, UPnP, remote management).
References
- NVD – CVE-2026-91001: https://nvd.nist.gov/vuln/detail/CVE-2026-91001
- D-Link Security Advisories: https://www.dlink.com/en/security-bulletin (no specific advisory currently available)
- CISA Known Exploited Vulnerabilities Catalog: https://www.cisa.gov/known-exploited-vulnerabilities-catalog (CVE-2026-91001 not listed)
- EPSS Score – CVE-2026-91001: https://www.first.org/epss/ (0.00484, 40.4th percentile)
Exploit-in-the-wild evidence: The NVD description states the exploit has been released publicly and may be used for attacks. No specific threat actor campaigns or active exploitation reports are currently available.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.