CVE-2024-21004
Low · 2.5CVSS
2.5
EPSS
0.4%
Published
Apr 16, 2024
CISA due date
—
Cloudanix analysis
A hard-to-reach flaw in certain older Java setups could let someone who already has access to a computer trick another user into changing a small amount of data inside a protected Java program.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- High
- Impact
- Data Tampering
- Component
- Library
- Class
- Authorization Bypass
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The flaw permits unauthorized modification (insert/update/delete) of a limited subset of accessible data within sandboxed JavaFX applications or applets that process untrusted code from the network; it requires local infrastructure access, high attack complexity, and interaction from a non-attacker user.
Why it matters to the business
Organizations running older Java desktop or client deployments that load untrusted code face a low-risk chance of limited data tampering, with minimal operational disruption but potential compliance or integrity concerns in client-facing applications.
How an attack unfolds
An attacker with logon access to a system running affected Java versions crafts or hosts malicious JavaFX content, then relies on social engineering to have another user load that content in a sandboxed applet or Web Start application, resulting in unauthorized data changes without further privilege escalation.
How to fix it
Upgrade Oracle Java SE beyond 8u401 and GraalVM Enterprise Edition beyond 20.3.13 / 21.3.9 to the latest vendor-released versions; restrict Java deployments to server-side trusted code only where possible and avoid loading untrusted network content in client sandboxes.
How to confirm the fix worked
Inventory all Java runtimes and confirm versions exceed the affected releases; test sandboxed applets/Web Start applications with untrusted code samples to verify absence of unauthorized data modification behavior.
Typical attack path
- Obtain local logon to a workstation or server executing the vulnerable Java runtime
- Prepare or host untrusted JavaFX code designed to trigger the integrity flaw
- Induce a separate user to launch the malicious content inside a sandboxed Java environment
- Achieve limited unauthorized data modification within the application's accessible scope
How to detect it
Examine system and application logs for unexpected data changes originating from sandboxed Java processes; review audit trails around JavaFX component activity on systems with the listed affected versions.
What your security team should do
- Prioritize patching client Java installations that execute sandboxed untrusted code
- Review and minimize use of Java Web Start or applets that accept external content
- Monitor EPSS and KEV status for any future increase in exploit activity
The record
Vulnerability in the Oracle Java SE, Oracle GraalVM Enterprise Edition product of Oracle Java SE (component: JavaFX). Supported versions that are affected are Oracle Java SE: 8u401; Oracle GraalVM Enterprise Edition: 20.3.13 and 21.3.9. Difficult to exploit vulnerability allows unauthenticated attacker with logon to the infrastructure where Oracle Java SE, Oracle GraalVM Enterprise Edition executes to compromise Oracle Java SE, Oracle GraalVM Enterprise Edition. Successful attacks require human interaction from a person other than the attacker. Successful attacks of this vulnerability can result in unauthorized update, insert or delete access to some of Oracle Java SE, Oracle GraalVM Enterprise Edition accessible data. 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 2.5 (Integrity impacts). CVSS Vector: (CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:N).
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Chainguard | openjdk-11-openj9 | 0 | 0.53.0-r0 |
| Chainguard | openjdk-11-openj9-dbg | 0 | 0.53.0-r0 |
| Chainguard | openjdk-11-openj9-default-jdk | 0 | 0.53.0-r0 |
| Chainguard | openjdk-11-openj9-default-jvm | 0 | 0.53.0-r0 |
| Chainguard | openjdk-11-openj9-default-policy | 0 | 0.53.0-r0 |
| Chainguard | openjdk-11-openj9-doc | 0 | 0.53.0-r0 |
| Chainguard | openjdk-11-openj9-jmods | 0 | 0.53.0-r0 |
| Chainguard | openjdk-11-openj9-jre | 0 | 0.53.0-r0 |
| Chainguard | openjdk-17-openj9 | 0 | 0.53.0-r0 |
| Chainguard | openjdk-17-openj9-dbg | 0 | 0.53.0-r0 |
| Chainguard | openjdk-17-openj9-default-jdk | 0 | 0.53.0-r0 |
| Chainguard | openjdk-17-openj9-default-jvm | 0 | 0.53.0-r0 |
| Chainguard | openjdk-17-openj9-default-policy | 0 | 0.53.0-r0 |
| Chainguard | openjdk-17-openj9-doc | 0 | 0.53.0-r0 |
| Chainguard | openjdk-17-openj9-jmods | 0 | 0.53.0-r0 |
| Chainguard | openjdk-17-openj9-jre | 0 | 0.53.0-r0 |
| Chainguard | openjdk-21-openj9 | 0 | 0.48.0-r2 |
| Chainguard | openjdk-21-openj9-dbg | 0 | 0.48.0-r2 |
| Chainguard | openjdk-21-openj9-default-jdk | 0 | 0.48.0-r2 |
| Chainguard | openjdk-21-openj9-default-jvm | 0 | 0.48.0-r2 |
| Chainguard | openjdk-21-openj9-default-policy | 0 | 0.48.0-r2 |
| Chainguard | openjdk-21-openj9-doc | 0 | 0.48.0-r2 |
| Chainguard | openjdk-21-openj9-jmods | 0 | 0.48.0-r2 |
| Chainguard | openjdk-21-openj9-jre | 0 | 0.48.0-r2 |
| Chainguard | openjdk-8 | 0 | 8.412.08-r0 |
| Chainguard | openjdk-8-dbg | 0 | 8.412.08-r0 |
| Chainguard | openjdk-8-default-jdk | 0 | 8.412.08-r0 |
| Chainguard | openjdk-8-default-jvm | 0 | 8.412.08-r0 |
| Chainguard | openjdk-8-demos | 0 | 8.412.08-r0 |
| Chainguard | openjdk-8-doc | 0 | 8.412.08-r0 |
| Chainguard | openjdk-8-jre | 0 | 8.412.08-r0 |
| Chainguard | openjdk-8-jre-base | 0 | 8.412.08-r0 |
| Chainguard | openjdk-8-jre-lib | 0 | 8.412.08-r0 |
| Chainguard | openjdk-8-openj9 | 0 | 0.53.0-r1 |
| Chainguard | openjdk-8-openj9-dbg | 0 | 0.53.0-r1 |
| Chainguard | openjdk-8-openj9-default-jdk | 0 | 0.53.0-r1 |
| Chainguard | openjdk-8-openj9-default-jvm | 0 | 0.53.0-r1 |
| Chainguard | openjdk-8-openj9-doc | 0 | 0.53.0-r1 |
| Chainguard | openjdk-8-openj9-jre | 0 | 0.53.0-r1 |
| Ubuntu:16.04:LTS | openjdk-9 | 0 | No fix |
| Ubuntu:20.04:LTS | openjdk-13 | 0 | No fix |
| Ubuntu:20.04:LTS | openjdk-16 | 0 | No fix |
| Ubuntu:22.04:LTS | openjdk-18 | 0 | No fix |
| Ubuntu:22.04:LTS | openjdk-19 | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | openjdk-9 | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | openjdk-13 | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | openjdk-16 | 0 | No fix |
| Ubuntu:Pro:22.04:LTS | openjdk-18 | 0 | No fix |
| Wolfi | openjdk-8 | 0 | 8.412.08-r0 |
| Wolfi | openjdk-8-dbg | 0 | 8.412.08-r0 |
| Wolfi | openjdk-8-default-jdk | 0 | 8.412.08-r0 |
| Wolfi | openjdk-8-default-jvm | 0 | 8.412.08-r0 |
| Wolfi | openjdk-8-demos | 0 | 8.412.08-r0 |
| Wolfi | openjdk-8-doc | 0 | 8.412.08-r0 |
| Wolfi | openjdk-8-jre | 0 | 8.412.08-r0 |
| Wolfi | openjdk-8-jre-base | 0 | 8.412.08-r0 |
| Wolfi | openjdk-8-jre-lib | 0 | 8.412.08-r0 |
Related vulnerabilities
- CVE-2026-21945 Vulnerability in the Oracle Java SE, Oracle GraalVM for JDK, Oracle GraalVM Enterprise… Also affects openjdk-11-openj9
- CVE-2026-21932 Vulnerability in the Oracle Java SE, Oracle GraalVM for JDK, Oracle GraalVM Enterprise… Also affects openjdk-11-openj9
- CVE-2026-21933 Vulnerability in the Oracle Java SE, Oracle GraalVM for JDK, Oracle GraalVM Enterprise… Also affects openjdk-11-openj9
- CVE-2026-21925 Vulnerability in the Oracle Java SE, Oracle GraalVM for JDK, Oracle GraalVM Enterprise… Also affects openjdk-11-openj9
- CVE-2025-0509 Sparkle Signing Checks Bypass Also affects openjdk-11-openj9
- CVE-2025-21502 Vulnerability in the Oracle Java SE, Oracle GraalVM for JDK, Oracle GraalVM Enterprise… Also affects openjdk-11-openj9
- CVE-2024-40896 In libxml2 2.11 before 2.11.9, 2.12 before 2.12.9, and 2.13 before 2.13.3, the SAX parser… Also affects openjdk-11-openj9
- CVE-2024-54534 The issue was addressed with improved memory handling. Also affects openjdk-11-openj9