ZeroHour

CVE-2026-57148

niche

Hardcoded JWT Dev Secret Allows Unauthenticated Impersonation in PraisonAI Platform

CVSS 3.1
9.8 critical
EPSS
Published
()
Modified
AI analysis

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.

Affected
praisonai-platformall versions prior to 0.1.6
Estimated exposure
nicheunknown; plausibly hundreds to low thousands of self-hosted instances — PraisonAI is a relatively niche open-source developer framework whose platform component is typically self-hosted in private development environments, and no active-install counts or public scan data are available, so the true count of…

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 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 news

No ingested article mentions this CVE yet.