CVE-2019-12017

9.8 CRITICAL

📋 TL;DR

This CVE describes a remote code execution vulnerability in MapR CLDB code where an attacker can exploit JSON deserialization to execute arbitrary code on the MapR CLDB server. The vulnerability allows complete takeover of the MapR cluster by forcing the system to load and execute malicious Java classes. This affects the entire MapR core platform.

💻 Affected Systems

Products:
  • MapR Core Platform
Versions: All versions prior to the fix
Operating Systems: All platforms running MapR CLDB
Default Config Vulnerable: ⚠️ Yes
Notes: Affects the CLDB (Container Location Database) component which is critical to MapR cluster operations.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete compromise of the MapR cluster, allowing attacker to execute arbitrary code with CLDB privileges, potentially leading to data theft, destruction, or lateral movement within the environment.

🟠

Likely Case

Remote code execution leading to cluster compromise, data exfiltration, and potential ransomware deployment.

🟢

If Mitigated

Limited impact if proper network segmentation and access controls prevent external access to CLDB services.

🌐 Internet-Facing: HIGH - The vulnerability is remotely exploitable without authentication and has a CVSS score of 9.8.
🏢 Internal Only: HIGH - Even internally, the vulnerability allows complete cluster compromise if an attacker gains network access to CLDB services.

🎯 Exploit Status

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

The vulnerability is in JSON deserialization which is a common attack vector with known exploitation patterns.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Versions with Jackson library upgrade and proper JSON deserialization controls

Vendor Advisory: https://mapr.com/support/s/article/Remote-code-execution-vulnerability-in-MapR-MFS-CLDB?language=en_US

Restart Required: Yes

Instructions:

1. Apply MapR security patches for CVE-2019-12017. 2. Upgrade to versions using Jackson library with proper deserialization controls. 3. Restart CLDB services. 4. Verify the fix by checking version and testing JSON handling.

🔧 Temporary Workarounds

Network Access Restriction

linux

Restrict network access to CLDB services to only trusted management networks

iptables -A INPUT -p tcp --dport [CLDB_PORT] -s [TRUSTED_NETWORK] -j ACCEPT
iptables -A INPUT -p tcp --dport [CLDB_PORT] -j DROP

🧯 If You Can't Patch

  • Implement strict network segmentation to isolate CLDB services from untrusted networks
  • Deploy web application firewall (WAF) rules to block malicious JSON payloads targeting the 'class' property

🔍 How to Verify

Check if Vulnerable:

Check MapR version and verify if JSON deserialization uses vulnerable libraries. Review CLDB configuration for Jackson library usage.

Check Version:

maprcli node list -columns hostname,svc,version

Verify Fix Applied:

Verify MapR version is patched, test JSON requests with 'class' property to ensure they are rejected or properly handled.

📡 Detection & Monitoring

Log Indicators:

  • Unusual JSON requests to CLDB endpoints
  • Failed authentication attempts with malformed JSON
  • Unexpected Java class loading in CLDB logs

Network Indicators:

  • HTTP/HTTPS requests to CLDB ports containing 'class' property in JSON payloads
  • Outbound connections from CLDB to unexpected remote hosts

SIEM Query:

source="mapr_cldb.log" AND ("class" OR "JSON deserialization" OR "URLClassLoader")

🔗 References

📤 Share & Export