PraisonAI is a multi-agent teams system. Prior to version 4.6.40, PraisonAI's first-party A2A server example exposes an unauthenticated A2A JSON-RPC endpoint and registers a calculate(expression) tool implemented with Python eval(). The example also binds to 0.0.0.0. A remote unauthenticated attacker can send message/send to /a2a; the request reaches agent.chat(), and a real LLM can invoke the registered calculate tool. In testing with gemini/gemini-2.5-flash-lite, this resulted in arbitrary Python execution in the server process, confirmed by creation of a marker file from an unauthenticated HTTP request. The issue affects deployments following the official A2A example or similar unauthenticated public A2A deployments with unsafe tools. The default unauthenticated A2A surface also exposes task history and task cancellation APIs, increasing confidentiality and integrity impact. Version 4.6.40 patches the issue.
CVE-2026-47391
This critical-severity CVE scores 9.8 under the CNA's CVSS (NVD's own analysis pending). EPSS exploit probability: 0.1%, top 75% of all CVEs by exploit prediction. GitHub Security Advisory data not yet ingested — confidence will rise once GHSA publishes (typical lag: hours to days for open-source ecosystem CVEs; never for infrastructure-only CVEs).
- High severity, but no confirmed exploitation yet
No vendor fix yet — apply a workaround or compensating control (WAF / firewall / segmentation) and watch for a patch.
- CVSS v3
- 9.8
- EG Score
- 9.8(low)
- EPSS
- 52.1%
- KEV
- Not listed
Published
May 29, 2026
Last Modified
July 21, 2026
Advisory Details (3)
Auto-updated Jul 22, 2026Unauthenticated A2A official example can reach real LLM-driven `eval()` tool execution · Advisory · MervinPraison/PraisonAI · GitHub
https://github.com/MervinPraison/PraisonAI/security/advisories/GHSA-vg22-4gmj-prxwfix: harden JWT secret defaults and replace eval() in examples (GHSA-3qg8-5g3r-79v5, GHSA-vg22-4gmj-prxw)
Patch available: MervinPraison/PraisonAI v4.6.126 (PR #1793 merged 2026-06-02)
https://github.com/MervinPraison/PraisonAI/pull/1793commit e0fb8e7dd1ee (MervinPraison/PraisonAI)
Patch available: MervinPraison/PraisonAI v4.6.126 (contains commit e0fb8e7dd1ee)
https://github.com/MervinPraison/PraisonAI/commit/e0fb8e7dd1ee6759c18ed07f436c21dbd9c20747Vendor Advisories for CVE-2026-47391(1)
These vendors published their own advisory mentioning this CVE — often with vendor-specific remediation steps + affected product lists not in NVD.
Affected Packages
(1 across 1 ecosystem)
PyPI(1)
| Package | Vulnerable range | Fixed in | Dependents |
|---|---|---|---|
| praisonai | 0.0.1 ... 4.6.9 (731 versions) | 4.6.40 | — |
Weakness Classification(2)
MITRE Common Weakness Enumeration — the root-cause categories this CVE belongs to.
Data Freshness Timeline
(refreshed 1× in last 7d / 1× in last 30d)
Each row is a source pipeline that fetched or updated this CVE on that date, with what changed. For example, "NVD update" means NVD published or revised its analysis for this CVE; "MITRE cvelistV5" means we ingested or refreshed it from the CNA feed. Most recent first.
- 2026-07-22 14:08 UTCEPSS rescore
- 2026-06-14 23:18 UTCEPSS rescore
- 2026-06-13 23:00 UTCEPSS rescore
- 2026-06-12 23:12 UTCEPSS rescore
- 2026-05-29 23:13 UTCEG score recompute
Related CVEs(same CWE)
Same CWE
10 shownCWE-306 · CWE-95
- CVE-2011-10013EG 10.0CRITICAL
- CVE-2013-10070EG 10.0CRITICAL
- CVE-2014-125124EG 10.0CRITICAL
- CVE-2017-2637EG 10.0EPSS 91%CRITICAL
- CVE-2010-5326EG 10.0 KEVEPSS 97%CRITICAL
- CVE-2018-25134EG 9.8CRITICAL
- CVE-2012-10030EG 9.8CRITICAL
- CVE-2013-10051EG 9.8CRITICAL
- CVE-2018-21132EG 9.8CRITICAL
- CVE-2014-3449EG 9.8CRITICAL
Frequently asked(5)
What is CVE-2026-47391?
When was CVE-2026-47391 disclosed?
Is CVE-2026-47391 actively exploited?
What is the CVSS score of CVE-2026-47391?
How do I remediate CVE-2026-47391?
Dependency Blast Radius
See which npm, PyPI, Go, and Maven packages are affected by CVE-2026-47391
Is Your Infrastructure Affected by CVE-2026-47391?
EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.