Skip to main content

PraisonAI EUVDEUVD-2026-108900

| CVE-2026-57146 HIGH
Information Exposure (CWE-200)
2026-10-23 GitHub_M GHSA-jxcw-qp4h-6jfq PYSEC-2026-3515
7.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Locate A2U server bound to network interface
  2. Exploit
    Send unauthenticated /a2u/subscribe request
  3. Execution
    Receive stream URL for events
  4. Impact
    Read agent responses, tool calls and metadata

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Data exposure prevention
MITRE ATT&CK

2 techniques across 2 tactics: Collection, Discovery

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires the operator to launch the dedicated A2U server via the CLI ('praisonai serve a2u') with the A2U_AUTH_TOKEN environment variable unset - in that state _authenticate_request() returns None and treats auth as disabled, because the A2U CLI path does not call _install_api_key_middleware() nor generate a bearer token, unlike the unified server path. Remote reachability additionally requires binding to an external interface (e.g. --host 0.0.0.0); a default loopback bind limits exposure to the local host. The exposed endpoints are /a2u/info, /a2u/subscribe, /a2u/events/{stream_name}, /a2u/events/sub/{id}, and /a2u/health. The key limiting factor is that pre-setting A2U_AUTH_TOKEN before startup enables the route-level token check (the PoV shows 401 with a token configured), so this is a config-dependent default-off authentication gap rather than an unconditionally reachable flaw.

Impact

This is a genuine but conditional exposure rather than a mass-exploitation emergency. The supplied CVSS:3.1 vector (AV:N/AC:L/PR:N/UI:N/C:H/I:N/A:N, 7.5) describes unauthenticated network access with confidentiality-only impact, which is consistent with the advisory: anyone who can reach a running A2U server can subscribe to agent event streams without credentials. The vuln.today decision label is 'this_week' (not act_now/emergency), it is NOT listed in CISA KEV, and no EPSS score was provided, so there is no signal of active or widespread exploitation. The caveat that tempers the raw 7.5 is operator-dependent reachability: the flaw only becomes network-exploitable when the operator starts 'praisonai serve a2u' bound to an external interface (e.g. --host 0.0.0.0) AND without the A2U_AUTH_TOKEN environment variable set - the CLI neither generates a token nor installs the API-key middleware by default. A public PoV reference exists in the advisory but it is a local-only reproduction (a Starlette shim), so it demonstrates the missing auth check rather than a verified remote weaponized exploit. Net: a real priority for anyone exposing A2U on a network, but the PR:N network vector presumes an externally bound deployment that is not the secure-by-default posture the project documents elsewhere.

Exploit ScenarioDerived

An operator runs 'praisonai serve a2u --host 0.0.0.0 --port 8002' believing the published A2U fix (GHSA-f292-66h9-fpmf, 4.5.115) and the secure-by-default documentation protect it, but A2U_AUTH_TOKEN is unset so authentication is silently disabled. A remote attacker who can reach the port issues an unauthenticated POST to /a2u/subscribe and GETs the returned event stream, reading agent responses, tool calls, thinking/progress events, and stream metadata. A local-only PoV in the advisory confirms /a2u/info, /a2u/subscribe, and /a2u/health return 200 without a token on current head.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.5% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 23, 2026

The A2U agent event-stream server shipped with PraisonAI exposes unauthenticated endpoints for any operator who starts the documented praisonai serve a2u CLI entrypoint without first setting the A2U_AUTH_TOKEN environment variable, and this gap persists across versions 4.5.115 through 4.6.60 despite the earlier GHSA-f292-66h9-fpmf advisory claiming the unauthenticated-stream issue was fixed in 4.5.115. Remote unauthenticated attackers (CVSS PR:N) who can reach the service - which requires binding to an external interface such as --host 0.0.0.0, since the default loopback bind limits exposure to the local host - can subscribe to live agent event streams and read stream metadata, agent responses, tool calls and thinking/progress events, for a confidentiality-only impact rated 7.5. A public local-only PoV script and reproduction output exist in the advisory; that PoV is a harness shim rather than verified working exploit code against a live deployment, and there is no CISA KEV listing or other confirmation of active exploitation. The decisive mitigating control is that pre-setting A2U_AUTH_TOKEN before startup enables the route-level token check and returns 401, making this a config-dependent, default-off authentication gap rather than an unconditionally reachable flaw.

RemediationAI

Vendor-released patch: upgrade pip package praisonai to 4.6.61 or later, which is the version the project lists as fixed for the range >= 4.5.115, < 4.6.61; consult https://github.com/MervinPraison/PraisonAI/security/advisories/GHSA-jxcw-qp4h-6jfq for the authoritative fixed-version statement. If upgrading is not immediately possible, the effective compensating control is to set the A2U_AUTH_TOKEN environment variable to a strong random value before launching praisonai serve a2u, because that alone flips the route-level check from permissive to enforcing and returns 401 on unauthenticated /a2u/info and /a2u/subscribe (the advisory's PoV demonstrates exactly this) - the trade-off is that operators must distribute the token to legitimate clients and the CLI will not generate or print one for them. Additionally, keep the A2U server bound to the default loopback address rather than passing --host 0.0.0.0, which removes remote reachability entirely at the cost of local-only access, or otherwise restrict network access to the A2U port (8002 in the documented example) via firewall or ingress rules. Note that the unauthenticated /a2u/health endpoint still returns subscription and stream counts even in the hardening path described in the advisory, so treat that metadata as disclosable until a fixed release removes it.

Affected VersionsENISA

PraisonAI 4.5.115, < 4.6.61

Affected Packages

pypi praisonai fix: 4.6.61

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in pypi

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

PraisonAI is a Python multi-agent framework distributed on PyPI as praisonai; its A2U (Agent-to-User) component streams agent activity to clients over FastAPI/Starlette routes. The root cause class is CWE-200 information exposure compounded by CWE-306 missing authentication for a critical function: authentication in create_a2u_routes() is strictly opt-in, reading A2U_AUTH_TOKEN from the environment and, if absent, having _authenticate_request() return None with the comment that auth is disabled in development mode. The dedicated A2U CLI path is where the incomplete fix lives - the Typer command in src/praisonai/praisonai/cli/commands/serve.py:570-585 accepts only --host and --port, forwards args = ["a2u", "--host", host, "--port", str(port)] to the shared handler in cli/features/serve.py:802-817, and _create_a2u_app() registers the routes directly at cli/features/serve.py:827-853 without ever calling _install_api_key_middleware(app, ...), which is exactly the hardening the unified server path applies. As a result the sensitive routes registered at endpoints/a2u_server.py:391-409 - /a2u/info, /a2u/subscribe, /a2u/events/{stream_name}, /a2u/events/sub/{id} and /a2u/health - remain open, and even the health endpoint leaks subscription and stream counts. The advisory's control experiment shows the route-level token check itself works (401 without a token once A2U_AUTH_TOKEN is configured), so the defect is the CLI wrapper's failure to generate or require a token and its failure to fail closed on external binds, not a broken authentication primitive. Suggested affected range is pip praisonai >= 4.5.115, <= 4.6.58, with the validated checkout at v4.6.57-4-g2f9677ab.

Know when Praisonai gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
vuln.today AI 7.5 HIGH

Once A2U is bound to the network without A2U_AUTH_TOKEN, an attacker needs no privileges or interaction to read event streams (PR:N/UI:N), yielding confidentiality-only impact (C:H, I:N, A:N).

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None

Lifecycle Timeline

2
Patch available
Oct 23, 2026 - 14:02 EUVD
CVE Published
Oct 23, 2026 - 12:08 cve.org
HIGH 7.5

DescriptionCVE.org

PraisonAI is a multi-agent teams system. From version 4.5.115 to before version 4.6.61, the published A2U advisory GHSA-f292-66h9-fpmf says unauthenticated A2U event streaming was fixed in praisonai 4.5.115. Current head still exposes the same A2U subscription and event routes without authentication when the operator starts the documented CLI entrypoint. The current CLI wrapper does not expose --api-key, does not install the common API-key middleware, and does not generate a token for A2U. It calls create_a2u_routes(app) directly. That helper only enforces auth if A2U_AUTH_TOKEN is already present; if the variable is missing, _authenticate_request() returns None and treats auth as disabled. This issue has been patched in version 4.6.61.

Technical POC Analysis

Class: missing authentication for a critical function (CWE-306), reported as CWE-200 because the consequence is unauthenticated disclosure of agent event data.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

PraisonAI's A2U event-stream server, when deployed with an external bind and without authentication, exposes live agent interactions-including tool calls and reasoning-to unauthenticated network observers. This confidentiality gap persists across versions 4.5.115 through 4.6.60 despite a prior advisory claiming a fix, meaning organizations using these versions may have a false sense of security. Leadership should prioritize immediate verification and mitigation to prevent potential leakage of sensitive operational data.

Business Impact: High
Compensating Controls

Set A2U_AUTH_TOKEN to enable authentication; restrict network access to the service (e.g., bind to localhost or use firewall rules).

Threat Intelligence Overview

EPSS Score
0.5%
Top 59% exploitable
Prevalence
Low
emerging niche multi-agent AI framework, limited production footprint
Data Quality
3 sources
Confidence: Low

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.5%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

CVE-2026-61447 CRITICAL POC
10.0 Jul 11

Remote code execution in PraisonAI before 1.6.78 allows attackers to run arbitrary Python on the host by manipulating th

CVE-2026-57139 CRITICAL POC
9.8 Sep 15

PraisonAI's TypeScript MCP server (npm package `praisonai`, versions 1.5.0 through 1.7.1) exposes an HTTP JSON-RPC trans

CVE-2026-55536 CRITICAL POC
9.1 Aug 25

WebSocket origin-validation bypass in PraisonAI's Browser Server (praisonai/browser/server.py) before 4.6.58 lets an att

CVE-2026-55541 HIGH POC
8.8 Aug 25

PraisonAI's `praisonai serve` subsystem (agents and unified modes) accepts an `--api-key` CLI flag that is parsed but ne

CVE-2026-61439 HIGH POC
8.7 Jul 11

System prompt extraction and unauthorized tool invocation in PraisonAI before 4.6.78 arise because the prompt-injection

CVE-2026-55534 HIGH POC
8.6 Aug 25

Unauthenticated remote agent invocation in PraisonAI versions 4.6.34 through 4.6.57 allows any network-reachable caller

CVE-2026-55526 HIGH POC
8.5 Aug 25

SSRF protection bypass in PraisonAI's praisonaiagents library (all versions before 1.6.58) lets low-privileged users rou

CVE-2026-61429 HIGH POC
8.4 Jul 11

Server-side request forgery in PraisonAI's Crawl4AI/Chromium crawling backend (all versions before 1.6.78) lets low-priv

CVE-2026-55533 HIGH POC
8.2 Aug 25

Authentication fail-open in PraisonAI's Recipe HTTP server allows unauthenticated remote attackers to invoke recipe exec

CVE-2026-55528 HIGH POC
8.2 Aug 25

Authentication bypass in PraisonAI's AgentServer component exposes all routes - /publish, /events, /info, /health - to u

CVE-2026-55522 HIGH POC
7.8 Aug 05

Arbitrary Python code execution in PraisonAI's workflow include feature allows an attacker who controls a local recipe d

CVE-2026-55523 HIGH POC
7.7 Aug 05

Server-side request forgery in PraisonAI's web_crawl() function (versions 1.5.128-1.6.57) allows an attacker who can inf

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy