Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessDiscover externally-bound PraisonAI Recipe server
-
DeliveryConfirm auth mode set without corresponding secret
-
ExploitSend unauthenticated POST /v1/recipes/run
-
ExecutionExecute arbitrary multi-agent recipe on server
-
ImpactAccess internal tools or data via agent runtime
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Authentication mechanism validation
MITRE ATT&CK
2 techniques across 2 tactics: Defense Evasion, Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires three concurrent conditions: (1) The Recipe server is started with --auth api-key or --auth jwt (i.e., the operator intends to enforce authentication), (2) the corresponding secret is absent - neither the --api-key CLI argument nor PRAISONAI_API_KEY environment variable is set for api-key mode, or neither --jwt-secret nor PRAISONAI_JWT_SECRET is set for JWT mode, AND (3) the server is bound to a non-localhost interface (e.g., --host 0.0.0.0), making it reachable from the network. Deployments where the secret IS correctly supplied are not affected. The CVSS PR:N reflects that the attacker requires no credentials; however, the vulnerable state itself is operator-introduced via misconfiguration, not the default out-of-box state. Local-only deployments (127.0.0.1 binding) are not remotely exploitable even when misconfigured. |
| Impact | The CVSS 3.1 vector AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N scores 8.2, reflecting network-reachable, zero-complexity, unauthenticated exploitation with high integrity impact - consistent with the ability to trigger arbitrary multi-agent recipe execution. However, real-world risk is conditional: only deployments where the operator has set an auth mode but omitted the corresponding secret are exploitable; instances that correctly supply PRAISONAI_API_KEY or PRAISONAI_JWT_SECRET are unaffected regardless of version. No CISA KEV listing and no EPSS data were provided in the input, and no public exploit code is documented. Risk is therefore highest in automated or containerized deployments where auth is configured via CLI flags without environment variable secrets - a plausible DevOps misconfiguration. The high I:H score is credible given recipe endpoints control multi-agent task execution. The low C:L component reflects possible incidental data exposure through recipe outputs rather than direct credential theft. |
| Exploit ScenarioDerived | An attacker scans for PraisonAI Recipe servers listening on non-localhost interfaces (e.g., port 8080 exposed via cloud security group misconfiguration). They confirm the server is running with --auth api-key but no PRAISONAI_API_KEY by sending an unauthenticated POST /v1/recipes/run with a crafted recipe payload and observing a 200 response rather than a 401. With unauthenticated execution access, they submit recipes that invoke internal tools or exfiltrate data accessible to the agent runtime. No public POC is documented, but the exploit path is fully described in the vendor's own security advisory. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 25, 2026
Authentication fail-open in PraisonAI's Recipe HTTP server allows unauthenticated remote attackers to invoke recipe execution endpoints despite authentication being nominally enabled. Versions prior to 4.6.58 of the pip package are affected: when the server is started with --auth api-key or --auth jwt but the corresponding PRAISONAI_API_KEY or PRAISONAI_JWT_SECRET environment variable is absent, create_auth_middleware() silently bypasses all authentication checks. The CLI safety check that blocks external binding only verifies auth mode is not 'none', failing to detect this secret-absent misconfiguration, leaving POST /v1/recipes/run, /v1/recipes/stream, and /v1/recipes endpoints fully open to unauthenticated callers. No active exploitation is confirmed (not in CISA KEV); vendor-released patch is available in v4.6.58.
RemediationAI
Upgrade to PraisonAI v4.6.58 or later via pip install --upgrade praisonai>=4.6.58; this is the vendor-confirmed fix (https://github.com/MervinPraison/PraisonAI/releases/tag/v4.6.58, patch commit https://github.com/MervinPraison/PraisonAI/commit/2f9677abb2ea68eab864ee8b6a828fd0141612e1). Until patching is possible, two compensating controls reduce exposure: (1) Ensure PRAISONAI_API_KEY (for api-key mode) or PRAISONAI_JWT_SECRET (for JWT mode) is explicitly set in the environment before starting the Recipe server - this prevents the fail-open path from triggering, though it does not fix the underlying code defect. (2) Restrict the Recipe server to localhost binding (--host 127.0.0.1) and place it behind an authenticated reverse proxy for any external access; this eliminates remote unauthenticated reachability. Note that control (1) alone is fragile if the environment variable is later unset or cleared by deployment automation.
Affected VersionsENISA
Affected Packages
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 (CPE: cpe:2.3:a:mervinpraison:praisonai:*:*:*:*:*:*:*:*) is a Python-based multi-agent orchestration framework exposing a Recipe HTTP server via src/praisonai/praisonai/recipe/serve.py. The root cause is CWE-287 (Improper Authentication): the create_auth_middleware() function resolves the expected API key as api_key or os.environ.get('PRAISONAI_API_KEY') and the JWT secret similarly; if neither config nor environment supplies a value, the middleware executes return await call_next(request) - a classic fail-open pattern. The middleware is still attached to the server when auth_type is not 'none', giving operators a false sense that authentication is enforced. The CLI path (cmd_serve in cli/features/recipe.py) only guards against --host 0.0.0.0 --auth none, so an operator starting the server with --host 0.0.0.0 --auth api-key but no key passes the safety check and exposes the server unauthenticated to any network caller.
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
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N
AV:N and PR:N confirmed by network-reachable unauthenticated endpoint; AC:L because exploitation is trivially simple once the misconfigured target is found; I:H for arbitrary recipe execution capability; C:L for incidental data exposure via recipe outputs; A:N as no availability impact is described.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
PraisonAI is a multi-agent teams system. Prior to praisonai 4.6.58, create_auth_middleware() allows requests when auth=api-key lacks PRAISONAI_API_KEY or JWT authentication lacks PRAISONAI_JWT_SECRET. An externally bound Recipe server can therefore accept unauthenticated POST /v1/recipes/run requests despite authentication being enabled. This issue is fixed in version 4.6.58.
Executive ViewAI
PraisonAI's Recipe HTTP server (versions prior to 4.6.58) contains an authentication bypass vulnerability allowing unauthenticated remote attackers to execute recipes when authentication flags are enabled but required secrets are absent. Organizations using API key or JWT authentication may have their recipe endpoints fully exposed to unauthorized invocation, creating risk of unauthorized workflow execution and potential data compromise.
Apply vendor patch: upgrade to v4.6.58 or later.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
PraisonAI's TypeScript MCP server (npm package `praisonai`, versions 1.5.0 through 1.7.1) exposes an HTTP JSON-RPC trans
WebSocket origin-validation bypass in PraisonAI's Browser Server (praisonai/browser/server.py) before 4.6.58 lets an att
PraisonAI's `praisonai serve` subsystem (agents and unified modes) accepts an `--api-key` CLI flag that is parsed but ne
Unauthenticated remote agent invocation in PraisonAI versions 4.6.34 through 4.6.57 allows any network-reachable caller
SSRF protection bypass in PraisonAI's praisonaiagents library (all versions before 1.6.58) lets low-privileged users rou
Authentication bypass in PraisonAI's AgentServer component exposes all routes - /publish, /events, /info, /health - to u
Arbitrary Python code execution in PraisonAI's workflow include feature allows an attacker who controls a local recipe d
Server-side request forgery in PraisonAI's web_crawl() function (versions 1.5.128-1.6.57) allows an attacker who can inf
Cross-site request forgery against the PraisonAI MCP HTTP-stream transport allows unauthenticated remote attackers to ex
Remote unauthenticated access to PraisonAI's legacy Flask API server allows attackers to execute configured agent workfl
Path traversal in praisonaiagents prior to 1.6.58 allows a low-privileged caller to write arbitrary JSON files to any pr
Server-Side Request Forgery in PraisonAI before version 4.6.58 allows unauthenticated remote attackers to force the appl
EUVD-2026-65523
GHSA-gfq8-hmph-9gjv
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB