Skip to main content

PraisonAI Platform EUVDEUVD-2026-78397

| CVE-2026-57147 CRITICAL
Use of Hard-coded Credentials (CWE-798)
2026-09-15 GitHub_M GHSA-cwj8-7gp2-ggcw PYSEC-2026-3524
9.8
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify exposed praisonai-platform API
  2. Delivery
    Forge HS256 JWT with public dev-secret
  3. Exploit
    Set arbitrary sub/email in token
  4. Execution
    Call protected routes as forged user
  5. Impact
    Access/modify agent data and resources

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Credential externalization
MITRE ATT&CK

2 techniques across 2 tactics: Persistence, Credential Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitable when the operator deploys praisonai-platform (< 0.1.6) without setting the PLATFORM_JWT_SECRET environment variable AND without setting PLATFORM_ENV - i.e., leaving both at their defaults, which is the common mis-deploy. In that state JWT_SECRET falls back to the public literal 'dev-secret-change-me' and the production guard never fires because PLATFORM_ENV defaults to 'dev', evaluating the guard's second condition to false. The only real limiting factor is that an operator who explicitly set a strong PLATFORM_JWT_SECRET (or set PLATFORM_ENV to non-dev to trigger the guard) is not affected; no authentication, user interaction, or special platform is otherwise required, and the signing secret is public in source code.

Impact

All signals point to a genuinely high-priority flaw with a well-calibrated score. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/C:H/I:H/A:H = 9.8) is credible rather than inflated: the signing secret 'dev-secret-change-me' is published in the open-source repo, and the broken production guard means the most common deployment (both PLATFORM_JWT_SECRET and PLATFORM_ENV left unset) ships vulnerable BY DEFAULT, so PR:N and AC:L are honest. This is a straightforward cryptographic auth-bypass requiring only knowledge of the public constant and any JWT library. Countervailing signals temper urgency: EPSS is 0.51% (42nd percentile), there is no CISA KEV listing and no public exploit-code flag, indicating no confirmed active exploitation yet. The limiting factor is deployment reality - only instances that never set a strong PLATFORM_JWT_SECRET are exploitable, though because that is the default failure mode, exposure is likely wherever the platform is internet-facing. Net: a real priority for any operator running praisonai-platform in production, not a paper-high CVSS.

Exploit ScenarioDerived

An attacker finds an internet-exposed praisonai-platform instance whose operator deployed without setting PLATFORM_JWT_SECRET (the default mis-deploy). Using the publicly known secret 'dev-secret-change-me', they mint a valid HS256 JWT with an arbitrary sub and email, then present it to protected API routes, which get_current_user accepts as a legitimate (even administrative) user. No public exploit code is flagged, but the technique is fully documented in the GHSA advisory and trivial to reproduce.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.5% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 16, 2026

Authentication bypass in praisonai-platform before 0.1.6 lets any remote unauthenticated attacker mint a valid HS256 JSON Web Token and impersonate arbitrary users against protected API routes. The flaw is a hardcoded fallback signing secret ('dev-secret-change-me') combined with a production guard that never fires when the operator leaves both PLATFORM_JWT_SECRET and PLATFORM_ENV unset - the common mis-deploy - so the platform silently starts signing tokens with a publicly known literal drawn straight from the source code. CVSS 3.1 scores this 9.8 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) and EPSS is 0.51% (42nd percentile); there is no CISA KEV listing and no public exploit identified at time of analysis, though exploitation requires nothing more than a forged token and no authentication whatsoever.

RemediationAI

Vendor-released patch: upgrade praisonai-platform to 0.1.6 or later (PraisonAI v4.6.51 for the parent project), available via PyPI and the GitHub release at https://github.com/MervinPraison/PraisonAI/releases/tag/v4.6.51; the change is associated with PR https://github.com/MervinPraison/PraisonAI/pull/1793 and commit e0fb8e7dd1ee6759c18ed07f436c21dbd9c20747, and details are in advisory GHSA-cwj8-7gp2-ggcw. If upgrading cannot be done immediately, the highest-value compensating control is to explicitly set PLATFORM_JWT_SECRET to a strong random value (for example, output of a CSPRNG) - this removes the hardcoded literal as a valid signing key and defeats token forgery, with the trade-off that all previously issued tokens become invalid and clients must re-authenticate; additionally set PLATFORM_ENV to a non-dev value so the existing production guard fires and fails fast on any future misconfiguration. Because the default signing secret is public, assume any token ever issued by an affected instance is forgeable: rotate the JWT signing secret and, if user identity or sessions were trusted on that basis, review access logs for anomalous sub/email claims and forced API actions - note that the default 30-day token TTL means rotation (not expiry) is what invalidates outstanding tokens. Operators who cannot set a real secret should restrict network access to the platform's protected API routes at the reverse proxy or firewall as a stopgap, accepting that this breaks legitimate remote clients and is not a substitute for the patch.

Affected VersionsENISA

PraisonAI < 4.6.51
praisonai-platform < 0.1.6

Affected Packages

pypi praisonai-platform fix: 0.1.6
euvd praisonai fix: 4.6.51

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in pypi, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The affected component is the Python package praisonai-platform (praisonai_platform/services/auth_service.py), the authentication service backing the PraisonAI multi-agent teams platform distributed via PyPI. The root cause is CWE-798 (Use of Hardcoded Credentials), compounded by CWE-1188 (Insecure Default Initialization of Resource): the module defines _DEFAULT_SECRET = 'dev-secret-change-me' and resolves JWT_SECRET via os.environ.get('PLATFORM_JWT_SECRET', _DEFAULT_SECRET), so an unset environment variable silently falls through to the public literal. The intended production guard is written as a compound condition that only raises RuntimeError when the secret equals the default AND os.environ.get('PLATFORM_ENV', 'dev') != 'dev' - but because PLATFORM_ENV itself defaults to 'dev', leaving both variables unset evaluates the second leg to False and the guard is skipped entirely, giving default-allow rather than default-deny behavior. Tokens are signed with HS256 and a default TTL of 30 days, and the platform's AuthService._verify_token() and get_current_user dependency accept any token whose signature validates against that literal, so an attacker who knows the secret (it is public in the repository) can assert arbitrary sub and email claims. No authentication, user interaction, or unusual network position is required; the only precondition is the operator-side configuration gap described above. The upstream fix flips the polarity so the service refuses to start with the default secret regardless of PLATFORM_ENV.

Know when Praisonai gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 9.8 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 9.8 CRITICAL

Public signing secret plus default-vulnerable deployment gives unauthenticated network forgery (PR:N/AC:L); accepted identity on protected routes yields full impersonation, so C:H/I:H/A:H.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

DescriptionCVE.org

PraisonAI is a multi-agent teams system. Prior to 0.1.6, praisonai_platform/services/auth_service.py assigns the public dev-secret-change-me value to JWT_SECRET when PLATFORM_JWT_SECRET is unset, and its production guard does not run when PLATFORM_ENV is also unset because that setting defaults to dev. A remote unauthenticated attacker can mint an HS256 token with an arbitrary sub and email, and the platform's AuthService._verify_token() and get_current_user dependency accept the forged identity for protected API routes. This vulnerability is fixed in praisonai-platform 0.1.6.

Technical POC Analysis

praisonaiplatform/services/authservice.py in praisonai-platform contains a hard-coded fallback JWT signing key: DEFAULTSECRET = "dev-secret-change-me" and JWTSECRET = os.environ.get("PLATFORMJWTSECRE…

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

praisonai-platform deployments earlier than version 0.1.6 allow any remote, unauthenticated attacker to impersonate arbitrary users - including administrators - against protected API routes, effectively handing over full control of the platform and the data it manages. Because no credentials are needed and the flaw is rated CVSS 9.8 with full confidentiality, integrity and availability impact, any internet-exposed instance should be treated as an open door to customer records, agent configurations and connected data sources. While no public exploit code or active exploitation has been identified at time of analysis, the barrier to abuse is low enough that leadership should assume exposure is possible and act immediately.

Business Impact: Severe
Compensating Controls

Apply vendor patch. Until upgrade to 0.1.6 or later is complete, set PLATFORM_JWT_SECRET to a strong unique value and set PLATFORM_ENV explicitly so the hardcoded fallback signing secret is never used, and restrict network access to the platform to trusted networks.

Threat Intelligence Overview

EPSS Score
0.5%
Top 58% exploitable
Prevalence
Low
niche open-source multi-agent framework, limited production deployment footprint
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.5%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
Very High

Priority Score

50
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +49
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

CVE-2026-61447 CRITICAL POC
10.0 Jul 11

Remote code execution in PraisonAI before 1.6.78 allows attackers to run arbitrary Python on the host by manipulating th

CVE-2026-57139 CRITICAL POC
9.8 Sep 15

PraisonAI's TypeScript MCP server (npm package `praisonai`, versions 1.5.0 through 1.7.1) exposes an HTTP JSON-RPC trans

CVE-2026-55536 CRITICAL POC
9.1 Aug 25

WebSocket origin-validation bypass in PraisonAI's Browser Server (praisonai/browser/server.py) before 4.6.58 lets an att

CVE-2026-55541 HIGH POC
8.8 Aug 25

PraisonAI's `praisonai serve` subsystem (agents and unified modes) accepts an `--api-key` CLI flag that is parsed but ne

CVE-2026-61439 HIGH POC
8.7 Jul 11

System prompt extraction and unauthorized tool invocation in PraisonAI before 4.6.78 arise because the prompt-injection

CVE-2026-55534 HIGH POC
8.6 Aug 25

Unauthenticated remote agent invocation in PraisonAI versions 4.6.34 through 4.6.57 allows any network-reachable caller

CVE-2026-55526 HIGH POC
8.5 Aug 25

SSRF protection bypass in PraisonAI's praisonaiagents library (all versions before 1.6.58) lets low-privileged users rou

CVE-2026-61429 HIGH POC
8.4 Jul 11

Server-side request forgery in PraisonAI's Crawl4AI/Chromium crawling backend (all versions before 1.6.78) lets low-priv

CVE-2026-55533 HIGH POC
8.2 Aug 25

Authentication fail-open in PraisonAI's Recipe HTTP server allows unauthenticated remote attackers to invoke recipe exec

CVE-2026-55528 HIGH POC
8.2 Aug 25

Authentication bypass in PraisonAI's AgentServer component exposes all routes - /publish, /events, /info, /health - to u

CVE-2026-55522 HIGH POC
7.8 Aug 05

Arbitrary Python code execution in PraisonAI's workflow include feature allows an attacker who controls a local recipe d

CVE-2026-55523 HIGH POC
7.7 Aug 05

Server-side request forgery in PraisonAI's web_crawl() function (versions 1.5.128-1.6.57) allows an attacker who can inf

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy