Summary
CVE-2026-57127 is a critical missing-authentication vulnerability in PraisonAI’s "recipe serve" feature. When an operator configures API key or JWT authentication in the recipe YAML but does not provide the corresponding secret, the authentication middleware silently disables itself and allows unauthenticated access to recipe execution endpoints. The flaw carries a CVSS v3.1 base score of 9.8 (Critical).
Technical details
- Root cause: In
praisonai/recipe/serve.py, theAPIKeyAuthMiddlewareandJWTAuthMiddlewareclasses check whether an expected API key or JWT secret is configured before enforcing authentication. IfPRAISONAI_API_KEYorPRAISONAI_JWT_SECRET(or the equivalent recipe configuration) is absent, the middleware’s dispatch logic takes a fail-open path (e.g.,if not expected_key: return await call_next(request)) and forwards the request instead of rejecting it. - Trigger conditions: An operator enables
auth: api-keyorauth: jwtfor a served recipe but does not set the corresponding secret via configuration or environment variable — a plausible and easy-to-make misconfiguration since authentication appears to be "on." - Attack vector: Network-based, no authentication or user interaction required, low attack complexity — any remote party able to reach the exposed
recipe serveHTTP endpoint can send requests directly. - Impact: Attackers can trigger arbitrary recipe executions with attacker-controlled inputs, read the inputs and outputs of in-flight recipes, and potentially achieve remote code execution if the recipe pipeline is wired to system tools, shells, or other connected integrations.
Affected software
- Product: PraisonAI (
praisonaipackage on PyPI), maintained by MervinPraison - Affected versions: All versions up to and including 4.6.48 (confirmed tested on 4.6.48; no earlier "introduced" version is specified, so all prior releases should be treated as affected)
- Fixed version: 4.6.59 and later
Severity
- CVSS v3.1 Base Score: 9.8 (Critical)
- Vector:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Mitigation and recommended actions
- Immediate: Upgrade PraisonAI to version 4.6.59 or later, where the authentication middleware correctly rejects requests when no secret is configured.
- If immediate patching is not possible:
- Explicitly set
PRAISONAI_API_KEYorPRAISONAI_JWT_SECRET(as appropriate) for any deployment usingrecipe servewithauth: api-keyorauth: jwtenabled, and verify the secret is actually loaded at runtime. - Restrict network exposure of
recipe serveendpoints to trusted internal networks or behind a properly authenticated reverse proxy/VPN until patched. - Audit recipe configurations to confirm authentication is actually being enforced (e.g., test with no credentials to verify requests are rejected) rather than assuming configuration alone provides protection.
- Review logs for recipe execution requests from unexpected or unauthenticated sources.
- Explicitly set

