PraisonAI Has Unauthenticated SSE Event Stream that Exposes All Agent Activity in A2U ServerGHSA-f292-66h9-fpmf
HIGHGHSA-f292-66h9-fpmf is a high-severity (CVSS 7.5) Information Exposure vulnerability in praisonai. A fix is available for praisonai — see the affected versions and patch details below.
Exploitation Status
No confirmed exploitation observed yet
- CISA assesses this as automatable — exploitation doesn’t require manual, per-target effort, which raises the odds of mass scanning and opportunistic attacks.
- CISA’s own triage has not observed active exploitation or public proof-of-concept code for this CVE as of its last assessment.
Exploitation and automatability from CISA’s SSVC triage for GHSA-f292-66h9-fpmf.
EPSS Exploitation Probability
Probability of exploitation in the next 30 days, from FIRST.org EPSS.
How urgent is this, really
Where this sits among everything scored
Real-World Exposure
praisonaiReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects PyPI packages — download data is not available via public APIs for these ecosystems.
Description
The A2U (Agent-to-User) event stream server in PraisonAI exposes all agent activity without authentication. This is a separate component from the gateway server fixed in CVE-2026-34952.
The create_a2u_routes() function registers the following endpoints with NO authentication checks:
- GET /a2u/info — exposes server info and stream names
- POST /a2u/subscribe — creates event stream subscription
- GET /a2u/events/{stream_name} — streams ALL agent events
- GET /a2u/events/sub/{id} — streams events for subscription
- GET /a2u/health — health check
An unauthenticated attacker can:
- POST /a2u/subscribe → receive subscription_id
- GET /a2u/events/sub/{subscription_id} → receive live SSE stream of all agent events including responses, tool calls, and thinking
This exposes sensitive agent activity including responses, internal reasoning, and tool call arguments to any network attacker.
<img width="1512" height="947" alt="image" src="https://github.com/user-attachments/assets/3438f3ea-75ec-4978-9dd9-d9a6da42c248" /> <img width="1512" height="571" alt="image" src="https://github.com/user-attachments/assets/ee3313f6-f522-48f7-9c06-e5e265c6aeb4" />[1] POST /a2u/subscribe (no auth token) Status: 200 Response: {"subscription_id":"sub-a1ad8a6edd8b","stream_name":"events", "stream_url":"http://testserver/a2u/events/sub-a1ad8a6edd8b"} Got subscription_id: sub-a1ad8a6edd8b
[2] GET /a2u/info (no auth token) Status: 200 Response: {"name":"A2U Event Stream","version":"1.0.0", "streams":["events"],"event_types":["agent.started","agent.thinking", "agent.tool_call","agent.response","agent.completed","agent.error"]}
[3] GET /a2u/health (no auth token)
Status: 200
Response: {"status":"healthy","active_subscriptions":1,"active_streams":1}
Impact: Attacker can subscribe and receive ALL agent events including responses, tool calls, and internal reasoning in real-time
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 🐍PyPI | praisonai | all versions | 4.5.115pip install --upgrade 'praisonai==4.5.115' |
Affected Products
praisonaipraisonDetection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for praisonai, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update praisonai to 4.5.115 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-f292-66h9-fpmf is resolved across your whole dependency graph.
Workarounds
Assume what was exposed is already known: rotate any credential, token or key that the affected component could return, restrict the endpoint to callers that genuinely need it, and strip sensitive fields from responses and error output at the boundary rather than relying on the client not to read them.
Frequently Asked Questions
Is GHSA-f292-66h9-fpmf in your dependencies?
Find it across PyPI, including transitive dependencies.