CVE-2024-1881
📋 TL;DR
AutoGPT versions v0.5.0 through v5.0.x contain an OS command injection vulnerability due to improper shell command validation. Attackers can bypass allowlist/denylist restrictions by crafting malicious commands, potentially leading to arbitrary command execution. This affects all users running vulnerable AutoGPT versions.
💻 Affected Systems
- AutoGPT (significant-gravitas/autogpt)
📦 What is this software?
⚠️ Risk & Real-World Impact
Worst Case
Full system compromise allowing attacker to execute arbitrary commands with the privileges of the AutoGPT process, potentially leading to data theft, ransomware deployment, or complete system takeover.
Likely Case
Limited command execution within the application's context, potentially allowing file system access, data exfiltration, or lateral movement within the network.
If Mitigated
No impact if proper input validation and command restrictions are implemented, or if the system is isolated with minimal privileges.
🎯 Exploit Status
Exploitation requires ability to submit commands to AutoGPT's shell command functionality. The vulnerability is well-documented with public proof-of-concept available.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: v5.1.0 and later
Vendor Advisory: https://github.com/significant-gravitas/autogpt/commit/26324f29849967fa72c207da929af612f1740669
Restart Required: Yes
Instructions:
1. Update AutoGPT to version v5.1.0 or later. 2. Stop the AutoGPT service. 3. Pull the latest version from the repository. 4. Restart the AutoGPT service.
🔧 Temporary Workarounds
Disable Shell Command Execution
allTemporarily disable AutoGPT's ability to execute shell commands until patching is complete.
Modify AutoGPT configuration to set shell command execution to false or remove shell command permissions
Implement Network Segmentation
allIsolate AutoGPT instances from sensitive systems and limit outbound network access.
🧯 If You Can't Patch
- Run AutoGPT with minimal privileges using a non-root user account.
- Implement strict input validation and command filtering at the application layer.
🔍 How to Verify
Check if Vulnerable:
Check AutoGPT version. If version is between v0.5.0 and v5.0.x inclusive, the system is vulnerable.
Check Version:
Check the AutoGPT version in the application interface or configuration files.
Verify Fix Applied:
Verify AutoGPT version is v5.1.0 or later and test that shell command validation properly checks entire commands, not just first words.
📡 Detection & Monitoring
Log Indicators:
- Unusual shell command execution patterns
- Commands containing special characters or multiple arguments
- Commands not in the expected allowlist
Network Indicators:
- Unexpected outbound connections from AutoGPT process
- Network traffic to unusual destinations
SIEM Query:
Process execution logs where parent process is AutoGPT and command contains suspicious patterns like ';', '&&', '||', or '|'
🔗 References
- https://github.com/significant-gravitas/autogpt/commit/26324f29849967fa72c207da929af612f1740669
- https://huntr.com/bounties/416c4a8b-36ba-4bbc-850a-a2f978b0fac8
- https://github.com/significant-gravitas/autogpt/commit/26324f29849967fa72c207da929af612f1740669
- https://huntr.com/bounties/416c4a8b-36ba-4bbc-850a-a2f978b0fac8