CVE-2026-57148: praisonai-platform 0.1.4 still boots on the hardcoded JWT secret dev-secret-change-me (default-open production guard)

Published Sep 15, 2026
·
Updated

PraisonAI is a multi-agent teams system. Prior to 0.1.6, praisonaiplatform/services/authservice.py falls back to the public dev-secret-change-me HS256 signing key when PLATFORMJWTSECRET is unset, while the startup and token-issuance guards are disabled because PLATFORMENV also defaults to dev. An unauthenticated attacker can sign a JWT containing an attacker-chosen sub value, and AuthService.verifytoken() 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.

Affected Software

1 affected component
PraisonAI praisonai-platform>0.1.0<=0.1.5

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade praisonai-platform to a version that resolves this vulnerability.

    Fixed in 0.1.6
  2. Configuration

    Set PLATFORM_JWT_SECRET so the AuthService does not fall back to the public dev-secret-change-me HS256 signing key when PLATFORM_JWT_SECRET is unset.

    PraisonAI platform AuthService (praisonai_platform/services/auth_service.py) PLATFORM_JWT_SECRET = set to a non-default secret
  3. Configuration

    Set PLATFORM_ENV to a non-dev value so the startup and token-issuance guards are enabled (they are disabled because PLATFORM_ENV defaults to dev when unset).

    PraisonAI platform PLATFORM_ENV = production (non-dev)

Event History

Sep 15, 2026
CVE Published
via MITRE·10:32 AM
Data Sourced
via MITRE·10:32 AM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Which deployments are exposed by the default configuration?

Deployments running versions before 0.1.6 are exposed when PLATFORM_JWT_SECRET is unset. In that condition, the service uses the public dev-secret-change-me signing key, and PLATFORM_ENV defaults to dev, disabling the startup and token-issuance guards.

2

What does an attacker need to exploit this issue?

An attacker does not need authentication or user interaction. They need to create an HS256 JWT signed with the known fallback secret and include an attacker-chosen sub value; impersonating a particular user or workspace owner requires knowing the target identifier.

3

What can an attacker do with a forged token?

AuthService._verify_token() accepts the forged token as an authenticated identity. This can enable impersonation of users or workspace owners and affect confidentiality, integrity, and availability.

4

What should be done if an immediate upgrade is not possible?

Set PLATFORM_JWT_SECRET to a non-public, securely managed value and ensure PLATFORM_ENV is configured appropriately rather than relying on its dev default. Upgrade to praisonai-platform 0.1.6 when possible.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203