CVE-2026-47392 json
PraisonAI vulnerable to sandbox escape via `print.__self__` builtins module leak in `execute_code` (subprocess mode)
published 2026-05-29 5 mo ago modified 2026-07-21 3 mo ago also EUVD-2026-46282 , GHSA-4mr5-g6f9-cfrh , PYSEC-2026-463 , PYSEC-2026-483
- cvss
- 9.9
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.9%
- EPSS 0.9% chance of exploitation in 30 days, percentile 59%
- public exploits
- 0
- none known
Summary
PraisonAI is a multi-agent teams system. Prior to version 4.6.40 of PraisonAI, corresponding to version 1.6.40 of praisonaiagents, `execute_code()` in `praisonaiagents/tools/python_tools.py` (v1.6.37, subprocess sandbox mode) can be fully bypassed using `print.__self__` to retrieve the real Python `builtins` module, from which `__import__` can be extracted via `vars()` and runtime string construction. This achieves arbitrary OS command execution on the host, completely defeating the sandbox. This is a novel bypass that survives all patches for CVE-2026-39888 (frame traversal), CVE-2026-34938 (str subclass), and CVE-2026-40158 (`type.__getattribute__` trampoline). PraisonAI version 4.6.40 and praisonaiagents version 1.6.40 contain an updated fix.
Patch / fix
- pypi praisonaiagents 1.6.40
- pypi praisonai 4.6.40
- praison praisonai 4.6.40
- praison praisonaiagents 1.6.40
- github.com/MervinPraison/PraisonAI@b0d8f77 commit
- github.com/MervinPraison/PraisonAI#1684 pull request
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- total
- Assessed
- 3 mo ago
Exploit prediction
0.88% chance of exploitation in the next 30 days, higher than 59% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/MervinPraison/PraisonAI/security/advisories/GHSA-4mr5-g6f9-cfrh referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 9.9 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H |
| GitHub | 3.1 | 9.9 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H |
| OSV | 3.1 | 9.9 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | praisonaiagents | <1.6.40 |
1.6.40 |
| pypi | praisonai | <4.6.40 |
4.6.40 |
Affected products
- MervinPraison PraisonAI
- MervinPraison < 1.6.40
Classification
References
- github.com /MervinPraison/PraisonAI/pull/1684
- github.com /MervinPraison/PraisonAI/commit/b0d8f777528f3253a0cfb0a3ef65455da6ae32f6
-
github.com
/MervinPraison/PraisonAI/security/advisories/GHSA-4mr5-g6f9-cfrh
exploit, web
-
github.com
/MervinPraison/PraisonAI
package
-
pypi.org
/project/praisonai
package
-
github.com
/advisories/GHSA-4mr5-g6f9-cfrh
advisory
-
nvd.nist.gov
/vuln/detail/CVE-2026-47392
advisory
-
pypi.org
/project/praisonaiagents
package
Sources
- CVE List CVE-2026-47392
- GitHub Advisory GHSA-4mr5-g6f9-cfrh
- NVD CVE-2026-47392
- OSV PYSEC-2026-463
- OSV PYSEC-2026-483
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.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.