CVE-2026-57147
nicheHardcoded JWT Secret Enables Unauthenticated Auth Bypass in PraisonAI Platform <0.1.6
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.
| praisonai-platform | < 0.1.6 |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
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 news0 stories
No ingested article mentions this CVE yet.