CVE-2024-12215

8.8 HIGH

📋 TL;DR

This vulnerability in kedro 0.19.8 allows remote code execution when users download micro packages via the pull_package() API. Attackers can craft malicious tar files containing setup.py scripts that execute arbitrary commands on the victim's machine. Anyone using the vulnerable kedro version with internet access to download packages is affected.

💻 Affected Systems

Products:
  • kedro
Versions: 0.19.8
Operating Systems: All platforms running Python
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects systems using the pull_package() API function. The vulnerability is present in the default configuration when this functionality is used.

⚠️ 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 victim's machine, allowing data theft, ransomware deployment, or lateral movement within the network.

🟠

Likely Case

Attacker executes arbitrary commands to steal sensitive data, install backdoors, or use the compromised system for further attacks.

🟢

If Mitigated

Limited impact if proper network segmentation and least privilege principles are enforced, potentially containing the damage to isolated environments.

🌐 Internet-Facing: HIGH - The vulnerability requires downloading packages from the internet, making internet-facing systems particularly vulnerable to exploitation.
🏢 Internal Only: MEDIUM - Internal systems could still be vulnerable if they download packages from internal repositories that could be compromised.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: MEDIUM

Exploitation requires the attacker to control or compromise a package repository that the victim downloads from, or trick the victim into downloading a malicious package.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 0.19.9 or later

Vendor Advisory: https://github.com/kedro-org/kedro/security/advisories/GHSA-xxxx-xxxx-xxxx

Restart Required: No

Instructions:

1. Update kedro using pip: pip install --upgrade kedro>=0.19.9
2. Verify the update completed successfully
3. No restart required as this is a Python library update

🔧 Temporary Workarounds

Disable pull_package functionality

all

Temporarily disable or restrict access to the pull_package() API function until patching is possible.

# Review codebase for pull_package() usage and comment out or remove calls

Use trusted package sources only

all

Configure kedro to only download packages from trusted, verified repositories.

# Configure kedro settings to restrict package sources to internal/trusted repositories

🧯 If You Can't Patch

  • Implement strict network controls to prevent downloading packages from untrusted sources
  • Run kedro in isolated containers or sandboxed environments with minimal privileges

🔍 How to Verify

Check if Vulnerable:

Check kedro version: python -c "import kedro; print(kedro.__version__)" and verify if it's 0.19.8

Check Version:

python -c "import kedro; print(kedro.__version__)"

Verify Fix Applied:

After updating, verify version is 0.19.9 or higher: python -c "import kedro; print(kedro.__version__)"

📡 Detection & Monitoring

Log Indicators:

  • Unusual process execution following package downloads
  • Suspicious commands in setup.py execution logs
  • Failed or abnormal package extraction attempts

Network Indicators:

  • Downloads from unusual or untrusted package repositories
  • Unexpected outbound connections following package downloads

SIEM Query:

process.name: 'python' AND process.args: 'setup.py' AND event.action: 'execute' AND package.source NOT IN ['trusted-repo1', 'trusted-repo2']

🔗 References

📤 Share & Export