CVE-2026-26020 — AutoGPT Authenticated Remote Code Execution via Disabled Block Bypass
CVE Identifier: CVE-2026-26020
Product: AutoGPT (autogpt-platform-beta)
CVSS v4 Score: 9.4 (Critical)
Severity: Critical
Exploitability: Low complexity — requires authenticated access
Exploit Availability: Publicly reproducible behavior — no formal exploit kit published
Overview
CVE-2026-26020 is a serious vulnerability in the AutoGPT project affecting versions prior to v0.6.48. The flaw exists because one of the internal building blocks — a development block capable of writing and importing code — was unintentionally usable by attackers when embedded in workflow graphs. Even though this block was marked as disabled in normal UI execution paths, it was not blocked at the validation stage when included in user-defined workflows.
If an authenticated user includes this disabled block inside an agent graph, the backend service writes attacker-controlled Python files to disk and loads them dynamically. This leads directly to arbitrary code execution as the service process, which means the attacker gains control of the host environment, database connections, and all resources the service can access.
How the Vulnerability Works
AutoGPT workflows consist of modular blocks that perform tasks when the workflow runs. Developers sometimes include powerful blocks for development or internal use only. One such block could:
- write arbitrary
.pyfiles into the backend file system - attempt to import dynamically generated Python modules
- execute the imported code in the backend process context
That block was deliberately marked as disabled for normal use. However, the logic that checks whether a graph is safe did not prevent disabled blocks from being included in an agent graph. During workflow execution, the system treated nodes in the graph as executable regardless of the disabled flag.
An attacker with a valid account (no admin rights required) could therefore:
- Create or modify an agent graph.
- Insert the “disabled” block into the graph and control its input.
- Execute the graph using the API or UI.
- Cause the backend service to write and import a crafted Python file.
Once executed, the malicious code runs with the privileges of the AutoGPT backend process. That includes access to environment variables, the application database, filesystem locations, API keys stored on the host, and network access permitted by the host.
This is not a theoretical flaw — the behavior was reproducible and verified against vulnerable versions.
Impact
Successful exploitation can produce full server compromise. Attackers can:
- read environment variables and configuration files
- access or dump databases connected to the AutoGPT instance
- create persistent backdoors
- launch additional processes and network connections
- move laterally from the AutoGPT host
Because the attacker needs a valid login but not elevated permissions, any exposed AutoGPT instance with public signing or weak account controls is at risk.
Detection Strategy
Detecting exploitation requires correlating application state changes with backend and host artifacts.
Detection Targets
- Presence of Disabled Block in Graphs
- Unexpected Files in Backend Blocks Directory
- Suspicious API Activity Related to Graphs
- Unusual Backend Process Behavior
Detection Rules and Queries
Detect Graphs Referencing the Disabled Block
The core vector is agent graphs that include the vulnerable disabled block. Review your application database for such graphs. In most deployments, this is a Postgres database.
PostgreSQL Query
SELECT
ag.id,
ag.userId,
ag.createdAt,
ag.updatedAt,
ag.name
FROM
"AgentNode" an
JOIN
"AgentGraph" ag
ON
an."agentGraphId" = ag."id"
AND an."agentGraphVersion" = ag."version"
WHERE
an."agentBlockId" = '45e78db5-03e9-447f-9395-308d712f5f08';
If any graph appears in the results, it means the disabled block was referenced in an agent graph — a clear indicator of exploitation or attempted misuse.
Detect Unexpected Python Files in Backend Blocks Folder
When exploited, the disabled block writes attacker files into the blocks directory.
Shell Command
ls -l /path/to/backend/blocks/*.py
Look for:
- files with unexpected names
- unusually recent modification times
- files from days/hours when suspicious activity occurred
If you have host logging or EDR enabled, search for file create events targeting the backend blocks location.
Detect Suspicious Graph Creation / Execution API Calls
Monitor API logs for graph creation or run commands that include unusual patterns:
Search Terms / Log Filters
POST /api/graphs
POST /api/graphs/{id}/execute
agentBlockId
Look for entries where:
- the API body references the disabled block’s ID
- an authenticated user with low privilege triggers graph execution
- there are spikes outside normal usage patterns
Detect Anomalous Backend Behavior
Once exploited, the backend process might:
- spawn unexpected subprocesses
- open external network connections
- open or read unexpected configuration files
If your host monitoring or EDR records:
File Events
Look for backend process reading secrets or configuration files.
Process Events
Look for unexpected child processes of the AutoGPT server process.
Network Events
Review outbound connections from the AutoGPT host around time of suspicious graph execution.
Malicious Payload Behavior (Example)
A typical attacker module written by this vulnerability could:
- import Python standard libraries (
os,subprocess) - read environment variables (database URLs, API keys)
- write output to a remote server
- execute OS commands like shell or reverse shell
Example modules often start with:
import os
import socket
…
exfiltrate = os.environ.get('DATABASE_URL')
Real payloads vary, but all share the property of reading sensitive data and acting on it.
Proof-of-Concept (PoC) Status
There is no formal exploit packaged for widespread use, but the core steps are easy enough to reproduce:
- Create a workflow graph
- Insert the vulnerable disabled block
- Provide malicious input
- Trigger execution
Repeated tests against vulnerable versions have shown this leads to arbitrary code execution.
Mitigation and Response
Patch Immediately
Upgrade all AutoGPT instances to v0.6.48 or later. This release blocks disabled blocks from being executed and fixes the validation logic.
Apply the official upgrade here:
🔗 https://github.com/Significant-Gravitas/AutoGPT/security/advisories/GHSA-4crw-9p35-9×54
Compensating Controls (if patching is delayed)
While waiting for an upgrade:
- Restrict access to the AutoGPT UI and APIs behind VPN/firewall
- Enforce strong authentication (MFA/enterprise SSO)
- Limit user registration and disable public sign-ups
- Restrict outbound network traffic from AutoGPT backends to limit exfiltration
Incident Response Steps
If you suspect exploitation:
- Run the disabled block graph detection query immediately.
- Examine backend blocks folder for unauthorized files.
- Review API logs for suspicious graph creation.
- Check host logs / EDR data for unexpected process or network events.
- Treat the host as potentially compromised.
- Rotate any credentials that backend services could have accessed.
- Rebuild the host/container from a trusted image.
Final Takeaway
CVE-2026-26020 is a powerful remote code execution flaw in AutoGPT due to insufficient validation of disabled blocks in agent graphs. It allows an authenticated user to force the backend to load arbitrary code. The impact is total compromise of the backend environment.
The vulnerability is fixed in AutoGPT v0.6.48. Patch immediately and apply detection methods above to find or prevent exploitation.
