CVE-2026-47395 json
PraisonAI CLI automatically resolves @url mentions in prompt text and can read loopback URLs into model context
published 2026-05-29 5 mo ago modified 2026-07-21 3 mo ago also EUVD-2026-46303 , GHSA-5cxw-77wg-jrf3 , PYSEC-2026-2903 , PYSEC-2026-2942
- cvss
- 5.5
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 7%
- 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, PraisonAI's direct-prompt CLI automatically expands `@url:` mentions in raw prompt text before agent execution begins. If a prompt contains `@url:<http-or-https-url>`, the CLI calls `MentionsParser.process(...)`. The `@url:` handler then performs a direct `urllib.request.urlopen()` request to the attacker-controlled URL and returns the response body. That response body is prepended to the final model prompt context. There is no loopback/private-address restriction, no metadata-service restriction, and no approval gate before the fetch. As a result, attacker-influenced prompt text can cause the operator's machine to fetch localhost-only HTTP resources and inject the response into model context. PraisonAI version 4.6.40 and praisonaiagents version 1.6.40 contain a 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
- partial
- Assessed
- 3 mo ago
Exploit prediction
0.18% chance of exploitation in the next 30 days, higher than 7% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/MervinPraison/PraisonAI/security/advisories/GHSA-5cxw-77wg-jrf3 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 5.5 | CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N |
| GitHub | 3.1 | 5.5 | CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N |
| OSV | 3.1 | 5.5 | CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N |
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 praisonaiagents
Classification
- Weakness
-
- CWE-200 Exposure of Sensitive Information to an Unauthorized Actor
References
- github.com /MervinPraison/PraisonAI/pull/1684
- github.com /MervinPraison/PraisonAI/commit/b0d8f777528f3253a0cfb0a3ef65455da6ae32f6
-
github.com
/MervinPraison/PraisonAI/security/advisories/GHSA-5cxw-77wg-jrf3
exploit, web
-
github.com
/MervinPraison/PraisonAI
package
-
pypi.org
/project/praisonai
package
-
github.com
/advisories/GHSA-5cxw-77wg-jrf3
advisory
-
nvd.nist.gov
/vuln/detail/CVE-2026-47395
advisory
-
pypi.org
/project/praisonaiagents
package
Sources
- CVE List CVE-2026-47395
- GitHub Advisory GHSA-5cxw-77wg-jrf3
- NVD CVE-2026-47395
- OSV PYSEC-2026-2903
- OSV PYSEC-2026-2942
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.