CVE-2024-47821
📋 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
- pyLoad
📦 What is this software?
Pyload by Pyload
⚠️ 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.
🎯 Exploit Status
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
allLimit 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
linuxMake 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")