CVE-2026-57148
nicheHardcoded JWT Dev Secret Allows Unauthenticated Impersonation in PraisonAI Platform
PraisonAI's platform component prior to version 0.1.6 falls back to a hardcoded HS256 JWT signing key ('dev-secret-change-me') in praisonai_platform/services/auth_service.py when the PLATFORM_JWT_SECRET environment variable is unset, while startup and token-issuance safety guards remain disabled because PLATFORM_ENV also defaults to 'dev'. An unauthenticated network attacker who knows (or guesses) a target user or workspace identifier can craft a JWT with an attacker-chosen 'sub' claim, which AuthService._verify_token() accepts as a valid authenticated identity. This enables full account and workspace-owner impersonation, yielding complete compromise of confidentiality, integrity, and availability of data and agent workflows handled by the platform (CVSS 9.8). Any deployment running praisonai-platform before 0.1.6 that has not explicitly set PLATFORM_JWT_SECRET (and PLATFORM_ENV) is affected, particularly instances reachable over a network. No public proof-of-concept or observed in-the-wild exploitation is known, and the flaw is fixed in praisonai-platform 0.1.6.
What to do: Upgrade praisonai-platform to 0.1.6 or later immediately. If upgrading is not immediately possible, explicitly set a strong, unique PLATFORM_JWT_SECRET and a non-dev PLATFORM_ENV in every environment, and restrict network access to the platform's auth endpoints. Operators should review authentication and audit logs for tokens issued with unexpected 'sub' values or access patterns indicating workspace impersonation before the fix was applied.
| praisonai-platform | all versions prior to 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 falls back to the public dev-secret-change-me HS256 signing key when PLATFORM_JWT_SECRET is unset, while the startup and token-issuance guards are disabled because PLATFORM_ENV also defaults to dev. An unauthenticated attacker can sign a JWT containing an attacker-chosen sub value, and AuthService._verify_token() accepts it as an authenticated identity, enabling user or workspace-owner impersonation when a target identifier is known. This vulnerability is fixed in praisonai-platform 0.1.6.
- Weakness
- CWE-287, 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.