Skip to main content

PraisonAI CVE-2026-57127

| EUVDEUVD-2026-77615 CRITICAL
Missing Authentication for Critical Function (CWE-306)
2026-09-14 GitHub_M GHSA-j4hj-7hfh-g2f4 PYSEC-2026-3513
9.8
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Discover exposed recipe serve endpoint
  2. Delivery
    Send request with no API key/JWT
  3. Exploit
    Middleware fail-open forwards to recipe route
  4. Execution
    Reach recipe execution/input/output surfaces
  5. Impact
    Trigger connected agent tools

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Authentication required for critical functions
MITRE ATT&CK

1 technique across 1 tactic: 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 a specific operator misconfiguration of praisonai recipe serve: the operator must (1) select auth: api-key or auth: jwt in the recipe YAML, AND (2) omit the corresponding api_key:/jwt_secret: value in that YAML, AND (3) not export PRAISONAI_API_KEY / PRAISONAI_JWT_SECRET in the environment. When the secret resolves to None, APIKeyAuthMiddleware/JWTAuthMiddleware take a if not expected_key/secret: return await call_next(request) fail-open branch and forward all requests unauthenticated. Limiting factors: the endpoint must be network-reachable to the attacker, and the vulnerable state does NOT occur in a correctly-configured deployment (secret set) nor when auth was never enabled - so it is a mis-deploy of an auth-enabling operator, not a universal default. Impact is bounded by which recipe execution surfaces and connected tools are exposed.

Impact

The raw CVSS 3.1 base score is 9.8 (AV:N/AC:L/PR:N/UI:N, C:H/I:H/A:H), which on its face reads as a critical remote-unauthenticated compromise, but the description qualifies this heavily: the fail-open only manifests when an operator explicitly selects api-key or JWT auth in the recipe YAML yet fails to supply the corresponding secret both in YAML (api_key:/jwt_secret:) AND in the environment (PRAISONAI_API_KEY/PRAISONAI_JWT_SECRET). That is a specific misconfiguration precondition, so real-world exposure is narrower than PR:N/AC:L implies - I assess AC:H because the vulnerable state requires an operator to enable-but-not-fully-configure auth. Secondary signals are moderate: EPSS is 0.90% (58th percentile), there is NO CISA KEV listing, and SSVC records Exploitation:poc / Automatable:yes / Technical Impact:total - meaning proof-of-concept-level exploitability (the SnailSploit researcher demonstrated it) but no confirmed active in-the-wild exploitation. Net: this is a genuine authentication-bypass-by-fail-open with high technical impact where present, but exploitability is gated by a deployment mistake rather than being a universal default-config RCE, so it is a real priority for operators who enabled auth on recipe serve, not a blanket internet-wide emergency. Note the impact ceiling (C:H/I:H/A:H) depends on which tools the exposed recipe is wired to.

Exploit ScenarioDerived

An operator deploys praisonai recipe serve with auth: api-key set in the recipe YAML, believing that line alone locks down the endpoint, but never sets api_key: nor exports PRAISONAI_API_KEY. The APIKeyAuthMiddleware hits its if not expected_key: return await call_next(request) branch and silently forwards every unauthenticated request to the recipe-execution, input, and output routes; a remote attacker who discovers the exposed listener simply sends requests with no credentials and drives recipe execution and any connected tools. Proof-of-concept exploitability is established (SSVC Exploitation:poc; researcher-published GHSA), though no weaponized in-the-wild use is confirmed.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.9% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 16, 2026

Authentication bypass in PraisonAI's recipe serve command: when an operator selects auth: api-key or auth: jwt in a recipe YAML but omits the matching api_key:/jwt_secret: value and does not export PRAISONAI_API_KEY or PRAISONAI_JWT_SECRET, APIKeyAuthMiddleware and JWTAuthMiddleware take a fail-open branch and forward every non-/health request unauthenticated to the recipe execution, input, and output surfaces, potentially triggering connected tools. Remote unauthenticated attackers who can reach an exposed recipe-serve endpoint (CVSS:3.1/AV:N/PR:N/UI:N) can therefore act as if authenticated, though independent analysis raises attack complexity to AC:H because the rawe 9.8 vendor score only manifests under a specific operator mis-deployment - the fail-open does not occur when the secret is set or when authentication was never enabled. Publicly available exploit code exists per the SSVC exploitation signal (poc), EPSS is 0.90% (58th percentile), and the issue is not listed in CISA KEV; it is fixed in 4.6.58.

RemediationAI

Vendor-released patch: upgrade praisonai to 4.6.58 (or the newer 4.6.59 build referenced in the advisory's version data) via pip install --upgrade praisonai, per the release at https://github.com/MervinPraison/PraisonAI/releases/tag/v4.6.58 and advisory GHSA-j4hj-7hfh-g2f4. After upgrading, verify the change actually took effect: if you intend auth to be on, explicitly set BOTH the YAML api_key:/jwt_secret: value AND the PRAISONAI_API_KEY/PRAISONAI_JWT_SECRET environment variable, then confirm an unauthenticated request to a recipe route returns 401/403 - the fail-open condition is a silent no-op, so a successful curl without credentials means you are still exposed. If you cannot patch immediately, the effective compensating controls are: set the secret (this alone closes the bypass, at the cost of distributing and rotating a credential), or, if auth cannot be configured, bind recipe serve to 127.0.0.1 or place it behind an authenticating reverse proxy/firewall allowlist and block the recipe ports from untrusted networks - noting that /health remains intentionally unauthenticated in the middleware and must not be used as proof that auth is active. Be aware that recipe execution surfaces can invoke connected tools, so restricting who can reach the endpoint is the highest-value temporary mitigation; also secure the separate jobs API, which the advisory reports has no authentication of its own, and do not rely on the default configuration to protect an internet-exposed instance.

Affected VersionsENISA

PraisonAI < 4.6.48

Affected Packages

pypi praisonai fix: 4.6.48, 4.6.59

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 (CPE cpe:2.3:a:mervinpraison:praisonai:*:*:*:*:*:*:*:*), and recipe serve launches an HTTP service exposing recipe execution endpoints. The root cause is CWE-306 (Missing Authentication for Critical Function), implemented as a classic fail-open pattern in praisonai/recipe/serve.py: both APIKeyAuthMiddleware.dispatch and JWTAuthMiddleware.dispatch compute expected_key = api_key or os.environ.get("PRAISONAI_API_KEY") (or the JWT secret equivalent) and, when that value is absent, execute return await call_next(request) - silently forwarding the request with no log entry and leaving request.state.user unset, so downstream recipe routes treat the caller as authenticated. The realistic trigger is a deployment where the YAML enables auth: api-key/auth: jwt but supplies no secret in YAML and no environment variable, i.e. the operator believes a single config line locked the surface down. The referenced upstream commit (2f9677abb2ea68eab864ee8b6a828fd0141612e1) is a broader hardening changeset that, beyond auth handling in praisonaiagents/server/server.py (adding _authorise_request bearer/X-Auth-Token checks returning 401), also adds SSRF validation and redirect re-validation to web crawl and spider tools, path-separator sanitization for FileMemory.user_id to block path traversal, and require_approval(risk_level="high") gating on ast_grep_search - useful context that this release family addressed several agent-tool risks simultaneously. The GHSA researcher also notes the adjacent jobs API lacks authentication entirely, meaning operators must separately secure that surface.

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 9.8 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 8.1 HIGH

Network-reachable and unauthenticated (PR:N), but the fail-open only occurs under a non-default operator misconfiguration (auth enabled, secret omitted), so AC:H; full recipe/tool execution yields C:H/I:H/A:H.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/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
High
Availability
High

Lifecycle Timeline

2
Patch available
Sep 14, 2026 - 18:03 EUVD
CVE Published
Sep 14, 2026 - 15:01 cve.org
CRITICAL 9.8

DescriptionCVE.org

PraisonAI is a multi-agent teams system. Prior to 4.6.58, recipe serve installs APIKeyAuthMiddleware or JWTAuthMiddleware when an operator selects api-key or JWT authentication, but each middleware forwards requests when PRAISONAI_API_KEY or PRAISONAI_JWT_SECRET and the corresponding recipe value are absent. Unauthenticated clients can then reach recipe execution, input, and output surfaces and may trigger connected tools despite the operator explicitly enabling authentication. This issue is fixed in 4.6.58.

Technical POC Analysis

CWE-306 (Missing Authentication for Critical Function), compounded by CWE-1188 (insecure default init).

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 recipe serve feature can grant unauthenticated network users access to recipe execution and connected tools when a specific deployment setting is misconfigured. Organizations using this feature in exposed environments face unauthorized use of AI-driven workflows and potential downstream automation risks, with publicly available exploit code existing. Leadership should prioritize exposure assessment and patching to protect sensitive operations.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.9%
Top 42% exploitable
Prevalence
Low
niche open-source multi-agent AI framework, limited production footprint
Data Quality
6 sources
Confidence: High

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 CRITICAL
CISA KEV No
Public POC No
EPSS 0.9%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
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
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Total

Priority Score

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

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

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