Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify CrewAI deployment using CodeInterpreterTool without Docker
-
DeliveryDeliver prompt injection payload to agent input
-
ExploitLLM generates Python escape code using ctypes or object graph traversal
-
ExecutionRestricted sandbox executes code, import blocklist bypassed
-
PersistArbitrary OS commands run as host process user
-
ImpactExfiltrate credentials or establish persistent access
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Alternate path protection
|
| Exploitation Conditions | Exploitation requires two concurrent conditions: first, the target deployment must use CodeInterpreterTool without Docker available, which in pre-fix versions triggered the now-removed restricted Python sandbox fallback - post-fix deployments raise a RuntimeError and refuse execution entirely in this scenario; second, the attacker must be able to influence the Python code submitted to the sandbox, either by having direct access to the code execution API or by successfully injecting a payload into the agent's prompt pipeline (prompt injection). What limits exploitation: Docker availability fully prevents the fallback path and is the primary control; the post-fix |
| Impact | The NVD CVSS vector AV:L/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:L scores 8.1 and captures the scope-change (sandbox to host) and high integrity/confidentiality impacts well, but AV:L is a partial mismatch: in practice the CrewAI agent is typically accessed over a network API, and the attacker's influence over executed code arrives through prompt injection or the agent's API surface rather than local login. AC:H is justified because exploitation requires Docker to be absent from the deployment. PR:N is debatable since agent API access often requires at minimum API-key authentication, though prompt injection from unprivileged user input is a realistic vector. The 'Information Disclosure' tag from NVD/MITRE significantly understates the impact - the primary concern is arbitrary code execution (I:H), not disclosure. No EPSS score was provided in the source data. KEV status is not confirmed. The researcher advisory (yerangamage.com) and commit diff both confirm the technique publicly, but no standalone POC repository was referenced, so this is best characterized as no public standalone exploit code identified. Even a mid-sized municipal IT team in zabrze running CrewAI automation agents without Docker should treat this as urgent, since a single successful prompt injection through an exposed agent endpoint translates directly to host shell access. The post-fix fail-closed behavior (RuntimeError on missing Docker) eliminates the attack surface cleanly for updated deployments. |
| Exploit ScenarioDerived | An attacker crafts a prompt-injection payload targeting a CrewAI-powered assistant whose CodeInterpreterTool is operating without Docker, causing the LLM to generate code containing |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 13, 2026
Sandbox escape in CrewAI's CodeInterpreterTool allows untrusted Python code to break out of the in-process restricted execution environment and execute arbitrary commands on the host system. Pre-fix versions implemented import-time module name blocking as the sole security boundary, which is bypassable because Python's complete object graph remains accessible - for example, ctypes.CDLL(None) loads the C standard library via the dynamic linker without invoking any import machinery, and __class__.__mro__ traversal can recover the original __import__ built-in. All crewai-tools deployments using CodeInterpreterTool without Docker (triggering the now-removed fallback sandbox) are affected. No public exploit code or KEV confirmation exists at time of analysis, though the researcher advisory and vendor commit both describe the escape technique explicitly.
RemediationAI
Upstream fix is available via commit fb2323b3deb3ec62b3965526857e77a2264e4cd0 (https://github.com/crewAIInc/crewAI/commit/fb2323b3deb3ec62b3965526857e77a2264e4cd0); a tagged release version incorporating this commit has not been independently confirmed from the available data, so users should verify the installed crewai-tools version includes this commit or upgrade to the latest available release. The fix makes Docker a hard requirement: without Docker, CodeInterpreterTool now raises a RuntimeError and refuses to execute code rather than falling back to the insecure sandbox. Install Docker (https://docs.docker.com/get-docker/) and ensure the CodeInterpreterTool can reach the Docker daemon. If Docker is genuinely unavailable and the code source is fully trusted (e.g., only internally-authored code), the updated tool exposes an explicit unsafe_mode=True parameter that bypasses all isolation with clear warnings - this trades security for compatibility and should not be used with user-controlled or LLM-generated code from untrusted inputs. As an immediate compensating control prior to patching, disable or remove CodeInterpreterTool from agent configurations where Docker is absent.
Affected VersionsENISA
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The affected component is the CodeInterpreterTool within the crewai-tools package (CPE: cpe:2.3:a:crewai:crewai:*:*:*:*:*:*:*:*), which gives AI agents the ability to generate and execute Python code at runtime. Pre-fix versions provided a 'restricted sandbox' fallback (_RestrictedPython class) when Docker was not installed, which blocked dangerous module names at import time via a blocklist. CWE-424 (Improper Protection of Alternate Path) correctly classifies the root cause: Python exposes multiple non-import paths to dangerous capabilities. ctypes.CDLL(None) loads libc directly through the OS dynamic linker with no import statement required; the Python object introspection graph allows recovering the unpatched __import__ via [].__class__.__mro__[1].__subclasses__() traversal; and os.system equivalents remain accessible via __builtins__. This is a well-characterized class of Python in-process sandbox escape. The fix at commit fb2323b removes the restricted sandbox entirely, making Docker a hard dependency and raising RuntimeError when Docker is absent rather than falling back to the insecure path.
Know when Crewai gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:L/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:L
Network vector because agent API is typically remote; AC:H for required Docker absence; PR:L because agent access generally requires at minimum API authentication; S:C for sandbox-to-host scope change.
Primary rating from Vendor (mitre).
CVSS VectorVendor: mitre
DescriptionCVE.org
CrewAI before fb2323b offers a Python blocklist approach that operates at the wrong level of abstraction, a different vulnerability than CVE-2026-2275. Import-time blocking of module names does not address the availability of Python's complete object graph. For example, calling ctypes.CDLL(None) loads the C library without relying in any import statements. In other words, a within-process sandbox cannot merely account for the import system and instead must account for the complete runtime of the Python interpreter.
Technical POC Analysis
Evidence base: the vendor/researcher advisory text supplied plus the GitHub gist CTI summary.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Latest POC
1 PoC candidate from github (unverified)
Sign in to open the public PoC links collected for this CVE.
Executive ViewAI
CrewAI's CodeInterpreterTool contains a sandbox escape vulnerability (CVSS 8.1) allowing untrusted Python code to execute arbitrary commands on the host system. Organizations deploying this tool without Docker containerization face immediate risk of system compromise. With no vendor patch available, remediation requires urgent deployment architecture changes.
Deploy CrewAI CodeInterpreterTool exclusively within Docker containers to isolate code execution. Restrict network access and file system permissions for any processes invoking the tool. Discontinue use of CodeInterpreterTool in non-containerized deployments pending vendor patch release. No vendor-released patch identified at time of analysis.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Server-side request forgery in CrewAI's scraping tools before version 1.15.1 lets remote attackers reach internal servic
CrewAI fails to validate Docker runtime availability during execution and silently reverts to an insecure sandbox mode,
Server-side request forgery in CrewAI's RAG search tools allows remote attackers to access internal and cloud services b
Unsafe reflection in CrewAI's load_agent_from_repository function enables unauthenticated remote code execution when a v
CrewAI's JSON loader tool fails to validate file paths before reading, allowing arbitrary local file access that exposes
EUVD-2026-77111
GHSA-2q68-3cp7-72v9
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB