CVE-2026-24009

8.1 HIGH

📋 TL;DR

This vulnerability allows remote code execution through malicious YAML input in docling-core library versions 2.21.0 to 2.48.3. Attackers can execute arbitrary code on systems that process untrusted YAML data using the vulnerable load_from_yaml() method. Only applications using PyYAML versions below 5.4 are affected.

💻 Affected Systems

Products:
  • docling-core
Versions: 2.21.0 to 2.48.3
Operating Systems: All platforms running Python
Default Config Vulnerable: ⚠️ Yes
Notes: Only vulnerable when using PyYAML <5.4 AND calling load_from_yaml() with untrusted YAML data.

⚠️ 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

Complete system compromise allowing attackers to execute arbitrary commands, steal data, install malware, or pivot to other systems.

🟠

Likely Case

Limited code execution within application context, potentially leading to data exfiltration or further privilege escalation.

🟢

If Mitigated

No code execution possible; YAML parsing fails safely with proper input validation and updated libraries.

🌐 Internet-Facing: HIGH if application accepts YAML input from external sources without validation.
🏢 Internal Only: MEDIUM if YAML processing is limited to internal systems with controlled input sources.

🎯 Exploit Status

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

Exploitation requires sending malicious YAML payload to vulnerable endpoint. Similar PyYAML RCE exploits are publicly documented.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.48.4

Vendor Advisory: https://github.com/docling-project/docling-core/security/advisories/GHSA-vqxf-v2gg-x3hc

Restart Required: Yes

Instructions:

1. Upgrade docling-core to version 2.48.4 or later using pip install --upgrade docling-core==2.48.4
2. Restart all applications using docling-core
3. Verify PyYAML version is 5.4 or higher with pip show pyyaml

🔧 Temporary Workarounds

Upgrade PyYAML

all

Upgrade PyYAML to version 5.4 or higher which includes SafeLoader by default

pip install --upgrade pyyaml>=5.4

Input Validation

all

Implement strict input validation to reject untrusted YAML data before processing

🧯 If You Can't Patch

  • Disable YAML processing functionality that accepts external input
  • Implement network segmentation to isolate vulnerable systems from untrusted networks

🔍 How to Verify

Check if Vulnerable:

Check docling-core version with pip show docling-core and PyYAML version with pip show pyyaml. Vulnerable if docling-core >=2.21.0 and <2.48.4 AND pyyaml <5.4.

Check Version:

pip show docling-core | grep Version && pip show pyyaml | grep Version

Verify Fix Applied:

Verify docling-core >=2.48.4 and pyyaml >=5.4 using pip show commands. Test with known malicious YAML payload to confirm safe rejection.

📡 Detection & Monitoring

Log Indicators:

  • Unusual process spawns from Python applications
  • YAML parsing errors with suspicious content
  • Unexpected system commands executed

Network Indicators:

  • Large or malformed YAML payloads to document processing endpoints
  • Unusual outbound connections from application servers

SIEM Query:

source="application.logs" AND ("load_from_yaml" OR "yaml.load") AND (process_spawn OR command_execution)

🔗 References

📤 Share & Export