A critical vulnerability has been identified in the Java HotSpot Virtual Machine that allows remote attackers to execute arbitrary code in the context of the Java process. The vulnerability exists in the JIT compiler's handling of certain bytecode sequences during optimization passes.
An attacker can exploit this vulnerability by crafting a malicious serialized Java object that, when deserialized by a vulnerable application, triggers a type confusion error in the JIT compiler. This leads to memory corruption that can be leveraged to achieve arbitrary code execution.
The vulnerability is particularly severe because it can be exploited remotely without authentication through any Java application that processes untrusted serialized data, including web applications using common frameworks such as Apache Struts, Spring Framework, and Oracle WebLogic Server.
The root cause is an incorrect bounds check elimination in the C2 JIT compiler when processing nested array access patterns within try-catch blocks. Under specific conditions, the compiler incorrectly determines that an array index is within bounds, leading to an out-of-bounds memory write. The attacker can control the offset and value written, enabling a reliable exploit chain.
The vulnerability has been assigned a CVSS v3.1 Base Score of 9.8 (Critical). Network-based exploitation requires no privileges or user interaction.
| Product | Versions | Platform | Status |
|---|---|---|---|
| Java SE Development Kit | 8u411, 8u412, 8u420 | All | Vulnerable |
| Java SE Development Kit | 11.0.24, 11.0.25 | All | Vulnerable |
| Java SE Development Kit | 17.0.12, 17.0.13 | All | Vulnerable |
| Java SE Development Kit | 21.0.4, 21.0.5 | All | Partially |
| Java SE Runtime Environment | 8u411 - 8u420 | All | Vulnerable |
| GraalVM Enterprise | 21.3.x, 22.3.x | All | Under Review |
| Java SE Development Kit | 8u421+ | All | Patched |
Successful exploitation of this vulnerability could allow an attacker to take complete control of the affected system. The attacker could install programs, view/change/delete data, or create new accounts with full user rights. Systems running Java applications that process untrusted input (e.g., web servers, application servers, middleware) are at highest risk.
8u421 or later.11.0.26 or later.17.0.14 or later.21.0.6 or later.| Attack Vector | Network |
| Attack Complexity | Low |
| Privileges Required | None |
| User Interaction | None |
| Scope | Unchanged |
| Confidentiality | High |
| Integrity | High |
| Availability | High |
Vector: AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H