ZeroHour

CVE-2026-57147

niche

Hardcoded JWT Secret Enables Unauthenticated Auth Bypass in PraisonAI Platform <0.1.6

CVSS 3.1
9.8 critical
EPSS
Published
()
Modified
AI analysis

PraisonAI Platform, the self-hosted web component of the PraisonAI multi-agent framework, ships with a hardcoded fallback JWT signing secret ('dev-secret-change-me') in auth_service.py that is used whenever PLATFORM_JWT_SECRET is unset. Because the production safety guard also does not trigger when PLATFORM_ENV is unset (it defaults to dev), deployments that never configured these variables silently sign and verify tokens with a publicly known key. A remote, unauthenticated attacker can craft an HS256 JWT with an arbitrary 'sub' and 'email' claim, which AuthService._verify_token() and the get_current_user dependency accept on all protected API routes, yielding full authentication bypass with high impact to confidentiality, integrity, and availability (CVSS 9.8). The flaw affects praisonai-platform versions prior to 0.1.6 and is fixed in 0.1.6. No public proof-of-concept or in-the-wild exploitation is known at this time.

What to do: Upgrade praisonai-platform to version 0.1.6 or later immediately. For all versions, explicitly set PLATFORM_JWT_SECRET to a long, unique, randomly generated value and set PLATFORM_ENV=production so the dev-default guard is enforced. If the platform ever ran with the default secret, rotate the JWT secret (invalidating all existing tokens), review API access logs for anomalous authenticated requests, and check agent data and configurations for unauthorized modification.

Affected
praisonai-platform< 0.1.6
Estimated exposure
nichelikely on the order of hundreds of self-hosted instances (clearly an estimate; no install counts available) — PraisonAI is an open-source, self-hosted framework deployed by individual developers and small teams rather than a mass-market SaaS, and no active-install counts or public internet-scan figures exist for the platform component, so exposure…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

PraisonAI is a multi-agent teams system. Prior to 0.1.6, praisonai_platform/services/auth_service.py assigns the public dev-secret-change-me value to JWT_SECRET when PLATFORM_JWT_SECRET is unset, and its production guard does not run when PLATFORM_ENV is also unset because that setting defaults to dev. A remote unauthenticated attacker can mint an HS256 token with an arbitrary sub and email, and the platform's AuthService._verify_token() and get_current_user dependency accept the forged identity for protected API routes. This vulnerability is fixed in praisonai-platform 0.1.6.

Weakness
CWE-798, CWE-1188
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

In the news

No ingested article mentions this CVE yet.