← Back to Feed CACHED · 2026-06-29 11:59:39 · CACHE_KEY CVE-2026-13545
CVE-2026-13545 · CWE-77 · Disclosed 2026-06-29

A vulnerability has been found in D-Link DCS-935L 1

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

A command injection in a discontinued home baby-monitor camera that D-Link will never patch

CVE-2026-13545 is a command injection (CWE-77) in the D-Link DCS-935L cloud-connected day/night Wi-Fi camera, firmware 1.10.01, inside the function sub_400E40. The CVSS 3.1 vector AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H says network-reachable, low-complexity, requires *authenticated low-privilege access* — so a logged-in user (typically the configured camera owner or anyone with HTTP basic-auth credentials) can inject shell metacharacters into a parameter that ultimately lands in a system()/popen() call, yielding code execution as the embedded web daemon — typically root on these MIPS/ARM SOHO cameras.

D-Link's HIGH (8.8) rating is *technically defensible* — it's an authenticated network RCE that gives root on the device. But it ignores deployment reality: the DCS-935L is a consumer baby-monitor camera, end-of-life since the mydlink Home cloud shutdown on 2022-12-30, almost never deployed in enterprise networks, and the prerequisite of valid credentials means the attacker either already owns the camera account or is brute-forcing default admin/admin. For an enterprise fleet of 10,000 hosts, this CVE is a MEDIUM at best — and only because some shadow-IT employee may have plugged one into a corporate VLAN.

"Authenticated RCE on an EOL consumer cloud camera — no patch coming, but it's not a fleet-scale event. Rip them out."
02 · The Attack Path

4 steps from start to impact.

STEP 01

Locate a DCS-935L on a reachable network

The attacker enumerates cameras on the LAN, on a port-forwarded WAN interface, or via the (now-defunct) mydlink relay. Shodan/Censys fingerprints the DCS-935L by its Server: header and /HNAP1/ SOAP endpoint. In enterprise environments these almost never appear on managed segments — they show up on guest Wi-Fi or shadow IoT VLANs.
Conditions required:
  • Network reachability to the camera's HTTP(S) interface
  • Camera powered on and online despite the 2022 cloud shutdown
Where this breaks in practice:
  • mydlink cloud relay was killed Dec 2022 — remote pivot is gone
  • Enterprise NACs (Cisco ISE, Aruba ClearPass) flag unmanaged IoT MACs
  • Not present in legitimate enterprise asset inventories
Detection/coverage: Nessus, Qualys, Rapid7 fingerprint D-Link cameras via HNAP banner; any IoT discovery tool (Armis, Claroty, Forescout) flags by OUI
STEP 02

Acquire valid credentials

PR:L means the attacker needs a working login. Options: (a) default admin with blank or admin password, (b) credential reuse from prior breaches, (c) brute force against the HNAP basic-auth endpoint — no rate-limiting on these firmwares. Most home users never change the default password.
Conditions required:
  • Working HTTP basic-auth credential to /HNAP1/ or web UI
Where this breaks in practice:
  • Owners who set strong passwords block this step entirely
  • Brute force generates noisy 401s visible to any IDS
  • No SSO/MFA on consumer cameras, but also no account lockout
Detection/coverage: Suricata/Snort have signatures for HNAP brute-force; Zeek http.log shows repeated 401s
STEP 03

Inject shell metacharacters into the vulnerable parameter handled by sub_400E40

The attacker sends a crafted POST to the HNAP/CGI endpoint reaching sub_400E40, embedding ;, |, or backticks in a field that is concatenated into a shell command. The unsanitized argument flows into system() and executes as the web daemon's UID — root on stock D-Link firmware.
Conditions required:
  • Step 2 credentials
  • Knowledge of the vulnerable parameter (trivial from the binary or PoC)
Where this breaks in practice:
  • None on an unpatched device — there is no patch
Detection/coverage: WAF/IPS rules for shell-metacharacter injection on /HNAP1/ catch the payload; D-Link camera traffic is rarely WAF'd
STEP 04

Establish persistence / pivot

Drop a Mirai/Mozi/Aisuru-class loader, join an IoT botnet, sniff the LAN, or use the camera as a low-and-slow internal recon foothold. The camera has a useful position — always-on, never patched, often on the same VLAN as employee laptops in small-office deployments.
Conditions required:
  • Outbound internet from the camera (typical)
  • Persistence across reboot (write to /etc or NVRAM)
Where this breaks in practice:
  • Egress filtering / IoT VLAN isolation kills C2
  • Camera reboots wipe tmpfs-only payloads
Detection/coverage: NetFlow anomalies (camera talking to non-mydlink IPs), EDR on adjacent hosts seeing scans from the camera IP
03 · Intelligence Metadata

The supporting signals.

In-the-wild exploitationNo public reports of CVE-2026-13545 exploitation as of 2026-06-29 disclosure date. Mirai/Aisuru variants do exploit D-Link camera RCEs generically.
KEV statusNot listed in CISA KEV. Predecessor D-Link DSL router RCEs are KEV-listed (Jan 2026 active exploitation campaign).
Public PoCVulDB entry typically published with disclosure; no widely-mirrored Metasploit module yet. Sister CVE-2026-12174 (format string, same device) has public writeup at thehackerwire.com.
EPSSExpected <1% at disclosure (typical for fresh, authenticated-RCE consumer IoT bugs)
CVSS 3.1 vectorAV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H8.8 HIGH. The PR:L is the decisive friction — attacker needs creds first.
Affected versionsD-Link DCS-935L firmware 1.10.01 (latest available). All earlier firmwares presumed vulnerable.
Fixed versionNone — and none coming. Device is end-of-life; mydlink Home cloud terminated 2022-12-30. D-Link advisory will direct users to retire the device.
Installed base / exposureConsumer baby monitor; Shodan shows a few thousand directly-exposed DCS-935L units globally, dropping since cloud EOL. Near-zero in enterprise inventories.
Disclosed2026-06-29 via VulDB-coordinated researcher submission
CWECWE-77 — Improper Neutralization of Special Elements used in a Command ('Command Injection')
04 · The Call

noisgate verdict.

Final Verdict
DOWNGRADED to MEDIUM (5.4/10)

Downgraded from HIGH (8.8) to MEDIUM (5.4) because the single most decisive factor is the deployment role: the DCS-935L is a discontinued consumer baby-monitor camera with near-zero enterprise installed base, and the chain requires valid credentials (PR:L) on a device that an enterprise should not own in the first place. Even successful exploitation yields root on an isolated IoT endpoint — blast radius is the single camera plus whatever bot-net pivot the attacker contrives, not domain or fleet compromise.

HIGH vulnerability mechanics and affected version
HIGH EOL status and absence of patch
MEDIUM presence in enterprise environments (depends on shadow-IT discipline)

Why this verdict

  • Authentication required (PR:L) — attacker needs valid camera credentials, knocking out drive-by mass exploitation. Default-credential carelessness is the only realistic credential source.
  • Role multiplier — low-value endpoint: the DCS-935L is canonically a consumer device. On a workstation-equivalent IoT role the chain ends at *root on one camera*. There is no high-value-role variant (no DC, no hypervisor, no IdP analog) — installed-base share in high-value enterprise roles is effectively 0%. Floor stays at MEDIUM.
  • End-of-life device, no patch path — D-Link has already retired the cloud service (2022-12-30); there will be no firmware fix. This is a *replace-the-device* problem, not a patch problem.
  • Negligible enterprise exposure — DCS-935L rarely appears in corporate asset inventories; when it does, it is shadow IoT on guest/IoT VLANs.
  • No active exploitation, no KEV listing, EPSS <1% at disclosure.

Why not higher?

HIGH would require either fleet-scale blast radius or active exploitation. Neither applies: the device is a single-tenant consumer endpoint, no campaign is targeting CVE-2026-13545 specifically, and the authentication prerequisite blocks worm-scale propagation that the related unauthenticated D-Link DSL router CVEs enabled in early 2026.

Why not lower?

LOW or IGNORE would be wrong because the device runs as root, the bug is a genuine unauthenticated-equivalent in practice when default creds are unchanged (which is the realistic owner-population), and a compromised camera makes an excellent internal pivot and DDoS botnet node. Any organization that actually has one of these on its network needs to act.

05 · Compensating Control

What to do — in priority order.

  1. Inventory and physically retire all DCS-935L devices — There is no patch and there will never be one. Treat this as an asset-removal exercise — find them via DHCP logs (D-Link OUIs 00:0F:3D, 28:10:7B, 90:8D:78, B0:C5:54), NAC quarantine, and physical sweep, then unplug. Per the noisgate MEDIUM SLA, no formal mitigation deadline applies — this rolls into the 365-day remediation window, but in practice complete removal within 30 days is achievable and recommended.
  2. Force network isolation on any DCS-935L that cannot be immediately removed — Put the device on a dedicated IoT VLAN with no east-west reach to corporate subnets and outbound egress restricted to a deny-all default. This neutralizes both the post-exploit pivot and Mirai-class C2.
  3. Rotate camera credentials and disable WAN exposure — If any DCS-935L is internet-reachable via port forwarding, kill the forward immediately. Set a long unique password on the camera's web UI to block the default-credential path that turns PR:L into effectively PR:N.
  4. Add IDS coverage for HNAP brute force and shell-metacharacter injection — Deploy Suricata/Snort rules targeting /HNAP1/ POSTs containing ;, |, ` `, $(` in parameter values. Cheap signal for a low-noise endpoint class.
What doesn't work
  • Patching — there is no vendor patch and there will not be one. D-Link's official guidance for EOL cameras is replacement.
  • Antivirus / EDR on the camera — the device is a closed embedded Linux appliance; you cannot install endpoint protection on it.
  • WAF in front of the camera — almost no one fronts a consumer camera with a WAF, and the management plane is the attack surface, not a web app.
  • MFA — the firmware does not support it; nothing to enable.
06 · Verification

Crowdsourced verification payload.

Run on an auditor workstation with network reach to the candidate device. Invocation: ./check.sh 192.168.1.50 — supply the camera IP. Requires curl; no special privileges. Returns VULNERABLE if the device fingerprints as a DCS-935L on firmware 1.10.01 (or any version, since none are patched), PATCHED is never returned (no patch exists), UNKNOWN if unreachable or fingerprint inconclusive.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/usr/bin/env bash
# noisgate check for CVE-2026-13545 — D-Link DCS-935L command injection
# Usage: ./check.sh <camera-ip>
# Exit: 0=VULNERABLE, 1=UNKNOWN, 2=PATCHED (will never return — no patch exists)
set -u
TARGET="${1:-}"
if [ -z "$TARGET" ]; then
  echo "Usage: $0 <camera-ip>" >&2
  exit 1
fi

# Fingerprint via HNAP1 SOAP action — DCS-935L responds with model+firmware
RESP=$(curl -sS -m 5 -o - -H 'SOAPAction: "http://purenetworks.com/HNAP1/GetDeviceSettings"' \
  -X POST "http://${TARGET}/HNAP1/" 2>/dev/null)

if [ -z "$RESP" ]; then
  # Try HTTPS as fallback
  RESP=$(curl -skS -m 5 -H 'SOAPAction: "http://purenetworks.com/HNAP1/GetDeviceSettings"' \
    -X POST "https://${TARGET}/HNAP1/" 2>/dev/null)
fi

if [ -z "$RESP" ]; then
  echo "UNKNOWN — host unreachable or not speaking HNAP"
  exit 1
fi

if echo "$RESP" | grep -qi 'DCS-935L'; then
  FW=$(echo "$RESP" | grep -oiE '1\.[0-9]+\.[0-9]+' | head -n1)
  echo "VULNERABLE — DCS-935L detected (firmware: ${FW:-unknown}). No patch exists. RETIRE THE DEVICE."
  exit 0
fi

echo "UNKNOWN — device did not identify as DCS-935L"
exit 1
07 · Bottom Line

If you remember one thing.

TL;DR
Monday morning: pull a DHCP/NAC report filtered on D-Link OUIs and any host whose hostname or fingerprint matches DCS-935L. There is no patch and no patch is coming — D-Link killed the mydlink Home cloud in December 2022 and the device is end-of-life. Per the noisgate mitigation SLA for MEDIUM there is no mitigation deadline (go straight to remediation), and the noisgate remediation SLA gives you ≤ 365 days to fully remove the device from the environment — but in practice, isolate within 30 days (kill any WAN port-forward, dump them onto a deny-all IoT VLAN, rotate the admin password) and physically retire and replace within 90 days. If you find one on a corporate user VLAN, treat the host as already compromised and triage from there.

Sources

  1. GitHub Advisory Database — CVE-2026-13545
  2. CVE.report — D-Link DCS-935L
  3. OpenCVE — DCS-935L vulnerabilities
  4. CVE Details — DCS-935L firmware version list
  5. TheHackerWire — sister CVE-2026-12174 DCS-935L format string
  6. D-Link End of Life Policy
  7. D-Link mydlink Home EOL announcement (Dec 2022)
  8. The Hacker News — Jan 2026 D-Link DSL router active exploitation context
Peer Review

What defenders are saying.

Submit a review attribution: handle + country only
0 flags selected · stored anonymously
Validation Results

Crowdsourced verification outputs.

Results submitted by users who ran the verification payload against their environment.