CVE-2024-21634

7.5 HIGH

📋 TL;DR

CVE-2024-21634 is a denial-of-service vulnerability in Amazon Ion's Java library (ion-java) where specially crafted Ion data can cause a StackOverflowError during deserialization. This affects applications that use ion-java to process Ion text or binary data from untrusted sources. The vulnerability allows attackers to crash applications by exhausting stack memory.

💻 Affected Systems

Products:
  • Amazon Ion Java library (ion-java)
Versions: All versions prior to 1.10.5
Operating Systems: All operating systems running Java applications using ion-java
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects applications that deserialize Ion data using the vulnerable library methods. Applications not processing Ion data are not affected.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete application crash leading to service unavailability, potentially affecting multiple dependent services in a chain reaction.

🟠

Likely Case

Targeted application crashes causing temporary denial of service until restarted, with possible data loss for in-flight transactions.

🟢

If Mitigated

No impact if proper input validation and patching are implemented, or if only trusted data sources are used.

🌐 Internet-Facing: HIGH - Applications accepting Ion data from external sources are directly exploitable without authentication.
🏢 Internal Only: MEDIUM - Internal applications processing Ion data could be exploited by malicious insiders or through compromised internal systems.

🎯 Exploit Status

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

Exploitation requires sending specially crafted Ion data to vulnerable applications. The advisory provides enough technical detail for attackers to craft payloads.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.10.5

Vendor Advisory: https://github.com/amazon-ion/ion-java/security/advisories/GHSA-264p-99wq-f4j6

Restart Required: Yes

Instructions:

1. Update ion-java dependency to version 1.10.5 or later in your project's build configuration (Maven pom.xml or Gradle build.gradle). 2. Rebuild and redeploy your application. 3. Restart affected services.

🔧 Temporary Workarounds

Input validation and source restriction

all

Do not load Ion data from untrusted sources or data that could have been tampered with. Implement strict input validation for all Ion data processing.

🧯 If You Can't Patch

  • Implement strict network filtering to block or limit Ion data from untrusted sources
  • Deploy application-level rate limiting and monitoring for StackOverflowError patterns

🔍 How to Verify

Check if Vulnerable:

Check your project's dependency management file (pom.xml or build.gradle) for ion-java version. If version is below 1.10.5, you are vulnerable.

Check Version:

For Maven: mvn dependency:tree | grep ion-java; For Gradle: gradle dependencies | grep ion-java

Verify Fix Applied:

Verify that ion-java version 1.10.5 or higher is listed in your dependencies after updating. Test with known malicious Ion payloads to confirm the application no longer crashes.

📡 Detection & Monitoring

Log Indicators:

  • StackOverflowError in ion-java stack traces
  • Application crashes with OutOfMemoryError patterns
  • Increased error rates in Ion data processing endpoints

Network Indicators:

  • Unusual volume of Ion data requests to vulnerable endpoints
  • Requests containing malformed or deeply nested Ion structures

SIEM Query:

source="application.logs" AND ("StackOverflowError" AND "ion-java") OR ("OutOfMemoryError" AND "IonValue")

🔗 References

📤 Share & Export