CVE-2024-45198

8.8 HIGH

📋 TL;DR

This CVE describes a remote code execution vulnerability in insightsoftware Spark JDBC where attackers can inject malicious parameters into JDBC URLs, triggering JNDI injection during database connection establishment. This affects systems using Spark JDBC 2.6.21 to connect to databases, potentially allowing attackers to execute arbitrary code on vulnerable servers.

💻 Affected Systems

Products:
  • insightsoftware Spark JDBC
Versions: 2.6.21
Operating Systems: All operating systems running Java applications
Default Config Vulnerable: ⚠️ Yes
Notes: Any application using the vulnerable Spark JDBC driver version with user-controlled JDBC URL parameters is affected.

⚠️ Manual Verification Required

This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.

Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).

🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.

Recommended Actions:
  1. Review the CVE details at NVD
  2. Check vendor security advisories for your specific version
  3. Test if the vulnerability is exploitable in your environment
  4. Consider updating to the latest version as a precaution

⚠️ Risk & Real-World Impact

🔴

Worst Case

Full system compromise with attacker gaining complete control over the vulnerable server, data exfiltration, lateral movement, and persistent backdoor installation.

🟠

Likely Case

Remote code execution leading to data theft, service disruption, or cryptocurrency mining malware deployment.

🟢

If Mitigated

Limited impact with proper network segmentation and security controls, potentially only affecting the application service account.

🌐 Internet-Facing: HIGH - If the vulnerable component is exposed to the internet, attackers can directly exploit it without internal access.
🏢 Internal Only: MEDIUM - Internal attackers or compromised internal systems could exploit this vulnerability to escalate privileges or move laterally.

🎯 Exploit Status

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

The vulnerability leverages JNDI injection which has been weaponized in multiple previous vulnerabilities (Log4Shell, etc.). The provided reference shows exploitation details.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.6.22 or later

Vendor Advisory: https://www.insightsoftware.com/security-advisories/

Restart Required: Yes

Instructions:

1. Identify all applications using Spark JDBC 2.6.21. 2. Update to version 2.6.22 or later. 3. Restart all affected applications. 4. Verify the update was successful.

🔧 Temporary Workarounds

Disable JNDI lookups

all

Configure Java security settings to disable JNDI lookups from untrusted sources

Add to JVM arguments: -Dcom.sun.jndi.ldap.object.trustURLCodebase=false
Add to JVM arguments: -Dcom.sun.jndi.rmi.object.trustURLCodebase=false

Network segmentation

all

Restrict outbound network access from affected systems to prevent JNDI callbacks

Configure firewall rules to block outbound LDAP/RMI traffic from application servers

🧯 If You Can't Patch

  • Implement strict input validation on all JDBC URL parameters to prevent injection
  • Deploy network-based intrusion prevention systems to detect and block JNDI exploitation attempts

🔍 How to Verify

Check if Vulnerable:

Check application dependencies for spark-jdbc version 2.6.21 using: mvn dependency:tree | grep spark-jdbc or check pom.xml/gradle files

Check Version:

grep -i spark-jdbc pom.xml build.gradle || find . -name "*.jar" -exec jar tf {} \; | grep spark-jdbc

Verify Fix Applied:

Verify spark-jdbc version is 2.6.22 or later using: java -cp spark-jdbc.jar com.simba.spark.jdbc.Driver --version

📡 Detection & Monitoring

Log Indicators:

  • Unusual JNDI lookup patterns in application logs
  • LDAP/RMI connection attempts from application processes
  • Unexpected process spawning from Java applications

Network Indicators:

  • Outbound LDAP (389/636) or RMI (1099) connections from application servers to unknown external IPs
  • DNS requests for suspicious JNDI URLs

SIEM Query:

source="application.logs" AND ("JNDI" OR "InitialContext" OR "ldap://" OR "rmi://")

🔗 References

📤 Share & Export