CVE-2026-47211 json
Ouroboros: Remote Code Execution via Untrusted Project-Directory .env
published 2026-05-29 5 mo ago modified 2026-10-23 16 d ago also GHSA-c4m7-2gwp-vw76 , PYSEC-2026-2857 , EUVD-2026-52425
- cvss
- 8.4
- version 4.0, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 8%
- public exploits
- 0
- none known
Summary
Ouroboros is a local-first runtime for AI coding agents that records their actions and applies user-defined policies to constrain behavior. In versions prior to 0.39.0, if a user clones a malicious repository and runs Ouroboros commands within that directory, it can lead to arbitrary code execution and potential system takeover. The vulnerability stems from Ouroboros loading the .env file from the current working directory. Execution-affecting environment variables such as OUROBOROS_CLI_PATH, OPENCODE_CLI_PATH, and other backend selectors are accepted directly from this local .env. An attacker can include a malicious script in the repository and point the CLI path variable to it (e.g., OUROBOROS_CLI_PATH=./malicious_script.sh). When the user executes a command like ouroboros init or any command that instantiates the adapter, the malicious script is executed instead of the intended CLI. This issue has been fixed in version 0.39.0.
Patch / fix
- pypi ouroboros-ai 0.39.0
- github.com/Q00/ouroboros@4e70b76 commit
- github.com/Q00/ouroboros#1078 pull request
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- total
- Assessed
- 3 mo ago
Exploit prediction
0.19% chance of exploitation in the next 30 days, higher than 8% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 8.4 | CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N |
| CNA | 4.0 | 8.4 | CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | ouroboros-ai | <0.39.0 |
0.39.0 |
Affected products
- Q00 ouroboros
Classification
- Weakness
-
- CWE-426 Untrusted Search Path
References
-
github.com
/Q00/ouroboros/pull/1078
web
-
github.com
/Q00/ouroboros/commit/4e70b760b4eb157469b58645339ba831f6513d37
web
-
github.com
/Q00/ouroboros/security/advisories/GHSA-c4m7-2gwp-vw76
web
-
github.com
/Q00/ouroboros
package
-
pypi.org
/project/ouroboros-ai
package
-
github.com
/advisories/GHSA-c4m7-2gwp-vw76
advisory
-
nvd.nist.gov
/vuln/detail/CVE-2026-47211
advisory
Sources
- CVE List CVE-2026-47211
- GitHub Advisory GHSA-c4m7-2gwp-vw76
- NVD CVE-2026-47211
- OSV PYSEC-2026-2857
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.