CVE-2024-21005
Low · 3.1CVSS
3.1
EPSS
0.9%
Published
Apr 16, 2024
CISA due date
—
Cloudanix analysis
A problem in Java's graphics handling could let someone change a small amount of data if users run untrusted programs downloaded from the internet.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- High
- Impact
- Data Tampering
- Component
- Library
- Class
- Improper Input Validation
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The flaw permits unauthorized modification of a limited subset of accessible data through improper input validation in the JavaFX component when untrusted code executes inside a Java sandbox.
Why it matters to the business
Organizations running client-side Java applications may experience limited data tampering that affects integrity of user-facing operations, increasing the need for rapid patching on widely deployed Java runtimes.
How an attack unfolds
An attacker hosts or delivers a malicious JavaFX payload over the network; a victim must load and interact with the untrusted content in a sandboxed applet or Web Start application, after which the flaw allows the attacker to perform unauthorized data updates, inserts, or deletes.
How to fix it
Apply the latest Oracle Critical Patch Update that supersedes the affected Java SE 8u401 and GraalVM Enterprise Edition 20.3.13 / 21.3.9 releases; disable Java Web Start and applets where feasible; enforce strict allow-listing of trusted code only.
How to confirm the fix worked
Verify that Java runtime versions have been updated beyond the listed affected releases; confirm Java sandbox policies block untrusted code; retest with the vendor-supplied proof-of-concept or equivalent validation harness if available.
Typical attack path
- Attacker prepares malicious JavaFX content that targets the input validation weakness
- Victim is tricked into loading the content via network protocols in a sandboxed client environment
- User interaction triggers the vulnerable code path
- Attacker achieves limited unauthorized modification of accessible data
How to detect it
Review web proxy, browser, and Java console logs for unexpected loading of JavaFX content from untrusted domains; correlate with user reports of data anomalies in Java-based client applications; no public exploit artifacts are known at this time.
What your security team should do
- Prioritize deployment of the next Oracle CPU across all client Java installations within 30 days
- Audit environments for any remaining use of sandboxed Java applets or Web Start applications
- Disable or remove JavaFX support on systems that do not require it
- Monitor Oracle release notes for back-port fixes to older update trains
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 network access via multiple protocols 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 3.1 (Integrity impacts). CVSS Vector: (CVSS:3.1/AV:N/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