Vulnerability  ·  2026-09-16

PraisonAI platform — hardcoded default JWT secret allows universal token forgery

VulnerabilityHigh impactGlobalCVE-2026-57147
PraisonAI's platform authentication service ships a hardcoded, publicly known default JWT signing secret and a broken production guard that fails to activate unless an operator explicitly opts out of the 'dev' default — meaning most real-world deployments run exposed with a secret anyone can read from the open-source repository.
This is a complete authentication bypass by design default: an unauthenticated remote attacker who simply reads the public GitHub repository can forge valid session tokens for any user — including administrators — on any unpatched PraisonAI platform deployment, with no exploitation skill required beyond copying a known string.
auth_service.py falls back to the public literal string 'dev-secret-change-me' as the JWT_SECRET whenever PLATFORM_JWT_SECRET is unset. The production safety-check only fires when PLATFORM_ENV is explicitly set to a non-'dev' value — but PLATFORM_ENV defaults to 'dev' — so a standard deployment (pip install + uvicorn) silently runs with the publicly known secret. Anyone who reads the public source can mint an HS256 JWT with an arbitrary sub/email and impersonate any user, including workspace owners and admins, across every authenticated API route.
praisonai-platform (PyPI), versions <= 0.1.4
Upgrade praisonai-platform to 0.1.6 or later, which fixes the guard to fail closed regardless of PLATFORM_ENV. Operators on any earlier version should treat all issued sessions as compromised and rotate PLATFORM_JWT_SECRET immediately.
NVDGitHub Security Advisory GHSA-3qg8-5g3r-79v5Miggo Vulnerability Database
See this in the live feed Explore related AI security and governance findings — updated every morning.
Open the feed →