CVE-2024-20932

7.5 HIGH

📋 TL;DR

This vulnerability in Oracle Java SE and GraalVM allows unauthenticated attackers with network access to modify critical data in Java deployments that run untrusted code, such as sandboxed Java Web Start applications or applets. It primarily affects client-side Java deployments that rely on the Java sandbox for security, not server deployments running only trusted code. The vulnerability has a CVSS score of 7.5 with high integrity impact.

💻 Affected Systems

Products:
  • Oracle Java SE
  • Oracle GraalVM for JDK
  • Oracle GraalVM Enterprise Edition
Versions: Oracle Java SE: 17.0.9; Oracle GraalVM for JDK: 17.0.9; Oracle GraalVM Enterprise Edition: 21.3.8 and 22.3.4
Operating Systems: All platforms running affected Java versions
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects deployments that load and run untrusted code (e.g., sandboxed Java Web Start applications or applets). Does not affect server deployments running only trusted code.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could create, delete, or modify all accessible data in vulnerable Java deployments, potentially leading to data corruption, unauthorized changes, or compromise of client systems running untrusted Java applications.

🟠

Likely Case

Attackers exploiting web-based Java applications could modify application data or configuration, potentially leading to client-side compromise or manipulation of Java application behavior.

🟢

If Mitigated

If only trusted code is executed (typical server deployments) or if vulnerable versions are not used, the risk is eliminated. Proper network segmentation and application whitelisting also reduce risk.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

The vulnerability is described as 'easily exploitable' with network access via multiple protocols, suggesting straightforward exploitation.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Update to versions beyond those listed as affected (check Oracle advisory for specific patched versions)

Vendor Advisory: https://www.oracle.com/security-alerts/cpujan2024.html

Restart Required: Yes

Instructions:

1. Download the latest Java SE or GraalVM update from Oracle. 2. Install the update following Oracle's installation instructions. 3. Restart all Java applications and services. 4. Verify the update was successful.

🔧 Temporary Workarounds

Disable Java Web Start and Applets

all

Prevent execution of untrusted Java code by disabling Java Web Start and applets in browser and system settings.

For browsers: Disable Java plugin/add-on
For systems: Configure Java Control Panel to disable Java content in browser

Network Segmentation

all

Restrict network access to systems running vulnerable Java deployments using firewalls or network policies.

Configure firewall rules to limit inbound connections to Java applications
Implement network segmentation for Java application environments

🧯 If You Can't Patch

  • Disable or remove Java Web Start and applet functionality entirely
  • Implement strict application whitelisting to prevent execution of untrusted Java code

🔍 How to Verify

Check if Vulnerable:

Check Java version using 'java -version' command and compare against affected versions: 17.0.9 for Java SE/GraalVM for JDK, 21.3.8 and 22.3.4 for GraalVM Enterprise Edition.

Check Version:

java -version

Verify Fix Applied:

After updating, run 'java -version' to confirm version is no longer in the affected range. Verify Java applications function correctly post-update.

📡 Detection & Monitoring

Log Indicators:

  • Unexpected Java process crashes or errors
  • Unauthorized file modifications in Java application directories
  • Suspicious network connections to Java applications

Network Indicators:

  • Unusual network traffic patterns to/from Java applications
  • Multiple protocol attempts to Java services

SIEM Query:

source="java.log" AND (error OR crash OR "unauthorized modification") OR dest_port IN (common_java_ports)

🔗 References

📤 Share & Export