Skip to main content

PraisonAI EUVDEUVD-2026-65498

| CVE-2026-55531 MEDIUM
Uncontrolled Resource Consumption (CWE-400)
2026-08-25 GitHub_M GHSA-wv94-5qcp-6m36
6.5
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 MCP HTTP Stream endpoint
  2. Delivery
    Send unauthenticated initialize POST requests in high volume
  3. Exploit
    Accumulate unbounded session dict entries in self._sessions
  4. Execution
    Exhaust process heap memory
  5. Impact
    OOM killer terminates PraisonAI service

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource consumption limits
MITRE ATT&CK

1 technique across 1 tactic: Impact

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

Exploitation Conditions

The MCP HTTP Stream server component must be running and network-reachable. In the default configuration no API key is set, so the server accepts initialize requests from any caller without authentication. The Origin header check is the only access gate, but the GHSA advisory confirms that requests with no Origin header are accepted unconditionally, and a separate startswith bypass exists for malformed Origin values. Exploitation requires only the ability to send HTTP POST requests to the MCP endpoint. What limits exploitation: the vulnerability is only present when the MCP HTTP Stream transport is actively deployed, not in base PraisonAI installations that do not use this component; configuring auth_token introduces required Bearer token validation and is an effective compensating control; binding the MCP server to localhost or a private interface restricts the attacker surface to co-located or local-network parties.

Impact

The NVD-provided CVSS 3.1 vector scores 6.5 (Medium) with UI:R, suggesting the original scorer weighted the browser-based CSRF-like attack path that exploits a companion Origin-header startswith validation bypass requiring a victim to visit a malicious page. However, the GHSA advisory explicitly states that HTTP requests carrying no Origin header are accepted by the server, establishing a direct unauthenticated attack path with no user interaction required - correctly characterized as UI:N, which yields 7.5 (High). No EPSS data was provided in the input and the CVE is absent from CISA KEV, so active exploitation is unconfirmed. The attack is trivially automatable in default configurations because no API key is required unless explicitly set, and the only guard (Origin validation) is bypassable or entirely absent for direct HTTP clients. The blast radius is limited to availability - there is no known confidentiality or integrity impact - but a single attacker can crash an exposed PraisonAI MCP service without any credentials, making this a real operational priority for internet-facing deployments.

Exploit ScenarioDerived

An attacker with network access to the exposed PraisonAI MCP HTTP Stream port sends a high-volume loop of HTTP POST initialize requests using any standard HTTP client or scripting tool. Because no API key is configured by default and no Origin header is required for direct requests, each request is accepted and a new dictionary is inserted into self._sessions with no eviction. After sufficient volume, the Python process heap is exhausted and the operating system OOM killer terminates it, taking down the multi-agent service. No public proof-of-concept has been identified at time of analysis.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Aug 25, 2026

Memory exhaustion in PraisonAI's MCP HTTP Stream server allows remote unauthenticated attackers to crash the service by flooding the initialize endpoint with requests. Each initialize call unconditionally appends a new dictionary to self._sessions with no eviction: the cleanup routine _cleanup_sessions is defined but has zero call sites in versions prior to 4.6.58, and the configured TTL is stored but never enforced. No public exploit is identified at time of analysis, but the attack requires only standard HTTP tooling against default deployments where no API key is configured.

RemediationAI

Upgrade to PraisonAI 4.6.58 or later via pip install 'praisonai>=4.6.58'; the patched release is confirmed at https://github.com/MervinPraison/PraisonAI/releases/tag/v4.6.58. The fix (commit 2f9677abb2ea68eab864ee8b6a828fd0141612e1) wires _cleanup_sessions into actual request processing and introduces the PRAISONAI_MCP_MAX_SESSIONS environment variable to enforce a session ceiling. If immediate upgrade is not possible, two compensating controls are available: first, configure an API key (auth_token) so that the new _authorise_request enforcement requires a valid Bearer token for all MCP requests - this eliminates the unauthenticated surface but requires all legitimate clients to be updated with credentials; second, restrict network access to the MCP HTTP Stream port using firewall rules or a reverse proxy ACL so only trusted source IPs can reach the endpoint - this reduces exposure without modifying application configuration but does not protect against insider or co-located threats.

Affected VersionsENISA

PraisonAI < 4.6.58

Affected Packages

pypi praisonai fix: 4.6.58

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in pypi

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

Technical ContextAI · show details

PraisonAI is a Python-based multi-agent orchestration framework (CPE: cpe:2.3:a:mervinpraison:praisonai) that implements a Model Context Protocol (MCP) HTTP Stream transport in transports/http_stream.py. The root cause is CWE-400 (Uncontrolled Resource Consumption): the mcp_post handler unconditionally appends a new session dictionary to self._sessions on every initialize message without invoking _cleanup_sessions or checking a session count ceiling. The session_ttl field (default 3600 seconds) is stored as an instance attribute but is never evaluated at request time or on a background timer. A parallel defect exists in the notifications/cancelled handler inside server.py, which accumulates cancellation IDs in an unbounded self._cancelled_requests set that is never cleared. Both structures grow in proportion to attacker-controlled request volume, consuming heap memory until the OS OOM killer terminates the process.

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 6.5 MEDIUM
AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
vuln.today AI 7.5 HIGH

Direct HTTP requests with no Origin header are accepted per the advisory, making UI:N correct; no auth required by default (PR:N); impact is availability only.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/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
Required
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

1
Patch available
Aug 25, 2026 - 16:02 EUVD

DescriptionCVE.org

PraisonAI is a multi-agent teams system. Prior to praisonai 4.6.58, the MCP HTTP Stream mcp_post handler creates a new _sessions entry for every initialize request but does not call _cleanup_sessions or enforce a maximum. An unauthenticated caller can exhaust memory. The fix invokes cleanup and limits sessions through PRAISONAI_MCP_MAX_SESSIONS. This issue is fixed in version 4.6.58.

Threat Intelligence Overview

EPSS Score
0.2%
Top 84% exploitable
Prevalence
Low
niche Python AI orchestration framework, not enterprise-standard
Threat Intel
1
1 sources
Exploit
POC
Public exploit code exists
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA GitHub

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 MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
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
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

52
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

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

CVE-2026-55532 HIGH POC
7.6 Aug 25

Cross-site request forgery against the PraisonAI MCP HTTP-stream transport allows unauthenticated remote attackers to ex

CVE-2026-44338 HIGH POC
7.3 May 08

Remote unauthenticated access to PraisonAI's legacy Flask API server allows attackers to execute configured agent workfl

CVE-2026-55527 HIGH POC
7.1 Aug 25

Path traversal in praisonaiagents prior to 1.6.58 allows a low-privileged caller to write arbitrary JSON files to any pr

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