CVE-2024-47821

9.1 CRITICAL

📋 TL;DR

This vulnerability in pyLoad allows remote code execution by downloading executable files to the /.pyload/scripts folder and triggering script execution. Attackers with access to change settings on a pyLoad server can completely compromise the system. Affects pyLoad versions prior to 0.5.0b3.dev87.

💻 Affected Systems

Products:
  • pyLoad
Versions: All versions prior to 0.5.0b3.dev87
Operating Systems: All operating systems running pyLoad
Default Config Vulnerable: ⚠️ Yes
Notes: Requires attacker to have access to change pyLoad settings, which typically requires authentication to the pyLoad web interface or API.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete system compromise with attacker gaining full control over the server, potentially leading to data theft, ransomware deployment, or use as a foothold for lateral movement.

🟠

Likely Case

Remote code execution leading to installation of malware, cryptocurrency miners, or backdoors on the pyLoad server.

🟢

If Mitigated

Limited impact if proper network segmentation and access controls prevent unauthorized access to pyLoad settings.

🌐 Internet-Facing: HIGH - pyLoad servers exposed to the internet are directly vulnerable to attackers who can access the web interface.
🏢 Internal Only: MEDIUM - Internal attackers or compromised internal systems could exploit this if they have access to pyLoad settings.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires authenticated access to change settings, but the attack chain is straightforward once access is obtained.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 0.5.0b3.dev87

Vendor Advisory: https://github.com/pyload/pyload/security/advisories/GHSA-w7hq-f2pj-c53g

Restart Required: Yes

Instructions:

1. Stop pyLoad service. 2. Update to version 0.5.0b3.dev87 or later. 3. Restart pyLoad service. 4. Verify the update was successful.

🔧 Temporary Workarounds

Restrict access to pyLoad interface

all

Limit network access to pyLoad web interface and API to trusted IP addresses only.

Use firewall rules to restrict access (e.g., iptables -A INPUT -p tcp --dport [pyLoad-port] -s [trusted-ip] -j ACCEPT)

Remove write permissions from scripts folder

linux

Make the /.pyload/scripts directory read-only to prevent file downloads.

chmod -R 444 /.pyload/scripts
chown root:root /.pyload/scripts

🧯 If You Can't Patch

  • Implement strict access controls to prevent unauthorized users from accessing pyLoad settings
  • Monitor the /.pyload/scripts directory for unauthorized file creation and alert on suspicious activity

🔍 How to Verify

Check if Vulnerable:

Check pyLoad version: if version is earlier than 0.5.0b3.dev87, system is vulnerable.

Check Version:

Check pyLoad web interface settings or run: python -c "import pyload; print(pyload.__version__)" if available

Verify Fix Applied:

Verify pyLoad version is 0.5.0b3.dev87 or later and test that files cannot be downloaded to /.pyload/scripts via the flashgot API.

📡 Detection & Monitoring

Log Indicators:

  • Unauthorized access to pyLoad settings
  • File downloads to /.pyload/scripts directory
  • Execution of unexpected scripts from scripts folder

Network Indicators:

  • Unusual outbound connections from pyLoad server
  • Traffic to/from pyLoad API from unauthorized sources

SIEM Query:

source="pyload.log" AND ("settings changed" OR "flashgot" OR "/.pyload/scripts")

🔗 References

📤 Share & Export