CVE-2026-57148: PraisonAI: hardcoded JWT secret enables auth bypass
CRITICALPoC AVAILABLECISA: ATTENDPraisonAI's platform service falls back to a publicly known HS256 signing key (dev-secret-change-me) when PLATFORM_JWT_SECRET is unset, and its dev-mode guards are disabled by default, so anyone can forge a valid JWT for any user or workspace owner whose identifier they know. The flaw is rated critical (CVSS 9.8) with network access, no privileges and no user interaction needed, and CISA SSVC rates it ATTEND. Exploitation signals are currently low: EPSS is 0.00641 (top 51%), it is not in CISA KEV, and there is no public exploit or Nuclei template. However, forging a token needs only a known secret and a target ID, so weaponization would be trivial. Upgrade praisonai-platform to 0.1.6 or later, and explicitly set a strong random PLATFORM_JWT_SECRET and PLATFORM_ENV=production on every deployment. Rotate all sessions and review authentication logs for unexpected identities, since any instance deployed with defaults must be treated as exposed.
What is the risk?
High to critical for any internet-reachable PraisonAI platform deployed with default environment settings. The attack is unauthenticated, low-complexity and network-based, and it needs only a guessable or known user or workspace identifier. Current exploitation likelihood is low (EPSS 0.64%, no KEV listing, no public PoC), but the secret is public in the source code, so the barrier to exploitation is minimal. Package risk data is unavailable (dependents unknown, OpenSSF N/A), so blast radius is hard to quantify. Exposure is limited to deployments that run the platform service without setting the secret.
How does the attack unfold?
What systems are affected?
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| PraisonAI | pip | — | No patch |
Do you use PraisonAI? You're affected.
How severe is it?
What is the attack surface?
What should I do?
1 step1) Upgrade praisonai-platform to 0.1.6 or later (fixed in PraisonAI release v4.6.51). 2) Set PLATFORM_JWT_SECRET to a long random value and PLATFORM_ENV to a non-dev value so startup guards are enforced. 3) Rotate the signing secret, invalidate all existing sessions and tokens, and rotate API keys and provider credentials stored in affected workspaces. 4) Restrict network exposure of the platform with a VPN, IP allowlist or authenticating reverse proxy until patched. 5) Detection: review logs for JWTs issued outside the normal flow, sessions from unfamiliar IPs, or workspace-owner actions without a corresponding login event. You can test whether tokens signed with the default key are accepted in a controlled check of your own instances.
What does CISA's SSVC say?
Source: CISA Vulnrichment (SSVC v2.0). Decision based on the CISA Coordinator decision tree.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-57148?
PraisonAI's platform service falls back to a publicly known HS256 signing key (dev-secret-change-me) when PLATFORM_JWT_SECRET is unset, and its dev-mode guards are disabled by default, so anyone can forge a valid JWT for any user or workspace owner whose identifier they know. The flaw is rated critical (CVSS 9.8) with network access, no privileges and no user interaction needed, and CISA SSVC rates it ATTEND. Exploitation signals are currently low: EPSS is 0.00641 (top 51%), it is not in CISA KEV, and there is no public exploit or Nuclei template. However, forging a token needs only a known secret and a target ID, so weaponization would be trivial. Upgrade praisonai-platform to 0.1.6 or later, and explicitly set a strong random PLATFORM_JWT_SECRET and PLATFORM_ENV=production on every deployment. Rotate all sessions and review authentication logs for unexpected identities, since any instance deployed with defaults must be treated as exposed.
Is CVE-2026-57148 actively exploited?
Proof-of-concept exploit code is publicly available for CVE-2026-57148, increasing the risk of exploitation.
How to fix CVE-2026-57148?
1) Upgrade praisonai-platform to 0.1.6 or later (fixed in PraisonAI release v4.6.51). 2) Set PLATFORM_JWT_SECRET to a long random value and PLATFORM_ENV to a non-dev value so startup guards are enforced. 3) Rotate the signing secret, invalidate all existing sessions and tokens, and rotate API keys and provider credentials stored in affected workspaces. 4) Restrict network exposure of the platform with a VPN, IP allowlist or authenticating reverse proxy until patched. 5) Detection: review logs for JWTs issued outside the normal flow, sessions from unfamiliar IPs, or workspace-owner actions without a corresponding login event. You can test whether tokens signed with the default key are accepted in a controlled check of your own instances.
What systems are affected by CVE-2026-57148?
This vulnerability affects the following AI/ML architecture patterns: agent frameworks, multi-agent orchestration platforms, agent management APIs.
What is the CVSS score for CVE-2026-57148?
CVE-2026-57148 has a CVSS v3.1 base score of 9.8 (CRITICAL). The EPSS exploitation probability is 0.64%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0012Valid AccountsAML.T0049Exploit Public-Facing ApplicationAML.T0091.000Application Access TokenCompliance Controls Affected
What are the technical details?
Original Advisory
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.
Exploitation Scenario
An attacker finds an internet-exposed PraisonAI platform and learns a workspace owner's user ID from a public repository, shared link, error message or enumeration. The attacker signs an HS256 JWT with the public key dev-secret-change-me and sets the sub claim to the owner's ID. The platform's _verify_token() accepts it, giving full owner-level access. The attacker then exports agent configurations and stored provider API keys, modifies agents to run attacker-controlled tools or exfiltrate data, and abuses the victim's LLM quota.
Weaknesses (CWE)
CWE-1188Initialization of a Resource with an Insecure DefaultPrimaryCWE-287Improper AuthenticationPrimaryCWE-798Use of Hard-coded CredentialsPrimaryCWE-1188Initialization of a Resource with an Insecure DefaultCWE-287Improper AuthenticationCWE-798Use of Hard-coded CredentialsCWE-1188 — Initialization of a Resource with an Insecure Default: The product initializes or sets a resource with a default that is intended to be changed by the product's installer, administrator, or maintainer, but the default is not secure.
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HReferences
Timeline
Related Vulnerabilities
CVE-2026-4816810.0PraisonAI: shell injection in Claude Action enables RCE
Same package: praisonaiCVE-2026-6144710.0PraisonAI: RCE via unsandboxed LLM code execution
Same package: praisonaiCVE-2026-614459.9PraisonAI: AICoder root RCE via unsanitized tool calls
Same package: praisonaiGHSA-vmmj-pfw7-fjwp9.9praisonai: sandbox escape gives RCE via codeMode tool
Same package: praisonaiCVE-2026-473929.9praisonaiagents: RCE via Python sandbox bypass
Same package: praisonai