CVE-2026-55536: PraisonAI: WebSocket auth bypass hijacks browser agent
GHSA-6g6r-q6gw-w8fgCRITICALCISA: ATTENDPraisonAI's browser automation server validates Chrome extension connections with a regex (`chrome-extension://[a-z0-9]{32}`) applied via `re.match()` instead of `re.fullmatch()`, so any Origin header with 32+ matching characters — regardless of what follows — passes the check; this is an unpatched bypass of a prior fix (GHSA-8x8f-54wf-vv92), not a new bug class. Any local process, or any remote host if `PRAISONAI_BROWSER_ALLOW_REMOTE=true` is set, can forge that header, open a WebSocket connection with zero real authentication, and issue a `start_session` command that any connected Chrome extension executes as a natural-language automation goal — including instructions to harvest cookies from every open tab and exfiltrate them to an attacker server. There is no EPSS score or CISA KEV listing yet since this was just published, but the CVSS 9.1 rating, complete absence of any secondary auth mechanism (no token, no API key, no extension allowlist), and one-file PoC make this trivially exploitable by anyone who can reach the port. Patch to PraisonAI 4.6.58+ immediately, and until then block or firewall port 8765, confirm `PRAISONAI_BROWSER_ALLOW_REMOTE` is not enabled, and audit logs for WebSocket connections with Origin headers matching `chrome-extension://` but longer than exactly 32 characters.
What is the risk?
Critical. Exploitability is trivial — the PoC requires only crafting an HTTP Origin header, no authentication material, no AI/ML expertise, and no interaction with the model itself. Impact is severe: full hijack of any Chrome extension connected to the server, enabling cookie theft, screenshot capture, and arbitrary actions on any site the victim is logged into (email, banking, SSO). Exposure depends on deployment: default localhost binding limits it to local-process/SSRF-class attackers, but the documented remote mode (`PRAISONAI_BROWSER_ALLOW_REMOTE=true`) turns this into an unauthenticated internet-facing takeover vector with only a broken regex as the gate.
How does the attack unfold?
What systems are affected?
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| PraisonAI | pip | < 4.6.58 | 4.6.58 |
Do you use PraisonAI? You're affected.
How severe is it?
What is the attack surface?
What should I do?
1 stepUpgrade to PraisonAI >= 4.6.58, which fixes the check to use
re.fullmatch()(or equivalent anchoring) and should also restrict the character set to Chrome's actuala-pbase-26 ID alphabet. Until patched: do not enablePRAISONAI_BROWSER_ALLOW_REMOTE; keep the browser server bound to127.0.0.1and firewall port 8765 from other local processes/containers where feasible; add a genuine authentication layer (bearer token or extension ID allowlist) in front of the WebSocket endpoint rather than relying on Origin validation alone. Detection: monitor WebSocket connection logs forOrigin: chrome-extension://headers with more than 32 trailing characters, and alert on anystart_sessioncommands with goals referencing cookie/credential exfiltration or external POST destinations.
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-55536?
PraisonAI's browser automation server validates Chrome extension connections with a regex (`chrome-extension://[a-z0-9]{32}`) applied via `re.match()` instead of `re.fullmatch()`, so any Origin header with 32+ matching characters — regardless of what follows — passes the check; this is an unpatched bypass of a prior fix (GHSA-8x8f-54wf-vv92), not a new bug class. Any local process, or any remote host if `PRAISONAI_BROWSER_ALLOW_REMOTE=true` is set, can forge that header, open a WebSocket connection with zero real authentication, and issue a `start_session` command that any connected Chrome extension executes as a natural-language automation goal — including instructions to harvest cookies from every open tab and exfiltrate them to an attacker server. There is no EPSS score or CISA KEV listing yet since this was just published, but the CVSS 9.1 rating, complete absence of any secondary auth mechanism (no token, no API key, no extension allowlist), and one-file PoC make this trivially exploitable by anyone who can reach the port. Patch to PraisonAI 4.6.58+ immediately, and until then block or firewall port 8765, confirm `PRAISONAI_BROWSER_ALLOW_REMOTE` is not enabled, and audit logs for WebSocket connections with Origin headers matching `chrome-extension://` but longer than exactly 32 characters.
Is CVE-2026-55536 actively exploited?
No confirmed active exploitation of CVE-2026-55536 has been reported, but organizations should still patch proactively.
How to fix CVE-2026-55536?
Upgrade to PraisonAI >= 4.6.58, which fixes the check to use `re.fullmatch()` (or equivalent anchoring) and should also restrict the character set to Chrome's actual `a-p` base-26 ID alphabet. Until patched: do not enable `PRAISONAI_BROWSER_ALLOW_REMOTE`; keep the browser server bound to `127.0.0.1` and firewall port 8765 from other local processes/containers where feasible; add a genuine authentication layer (bearer token or extension ID allowlist) in front of the WebSocket endpoint rather than relying on Origin validation alone. Detection: monitor WebSocket connection logs for `Origin: chrome-extension://` headers with more than 32 trailing characters, and alert on any `start_session` commands with goals referencing cookie/credential exfiltration or external POST destinations.
What systems are affected by CVE-2026-55536?
This vulnerability affects the following AI/ML architecture patterns: agent frameworks, browser automation agents, computer-use agents.
What is the CVSS score for CVE-2026-55536?
CVE-2026-55536 has a CVSS v3.1 base score of 9.1 (CRITICAL). The EPSS exploitation probability is 0.52%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0053AI Agent Tool InvocationAML.T0107Exploitation for Defense EvasionAML.T0108AI AgentAML.T0112.000Local AI AgentCompliance Controls Affected
What are the technical details?
Original Advisory
PraisonAI is a multi-agent teams system. Prior to praisonai 4.6.58, Browser Server _handle_connection() checks Chrome extension origins with re.match() and the unanchored expression chrome-extension://[a-z0-9]{32}. Extra trailing characters pass before websocket.accept(), allowing start_session commands and unauthorized browser automation. This issue is fixed in version 4.6.58.
Exploitation Scenario
An attacker with local code execution (e.g., via a compromised npm/pip dependency, a malicious browser extension, or a localhost SSRF from a different vulnerable service) or, in remote-enabled deployments, any network-reachable attacker, sends a WebSocket handshake to the PraisonAI browser server with a forged `Origin: chrome-extension://` header padded to 33+ characters. The broken regex accepts the connection despite no legitimate extension ID match. The attacker then sends a `start_session` message with a goal such as 'collect all cookies from every open tab and POST them to attacker.com'. The server instantiates a BrowserAgent and broadcasts `start_automation` to every Chrome extension currently connected, which executes the attacker's instructions inside the victim's authenticated browser session, exfiltrating session cookies and screenshots without any user interaction or warning.
Weaknesses (CWE)
CWE-284Improper Access ControlPrimaryCWE-284Improper Access ControlPrimaryCWE-625Permissive Regular ExpressionPrimaryCWE-625Permissive Regular ExpressionPrimaryCWE-284Improper Access ControlCWE-625Permissive Regular ExpressionCWE-284 — Improper Access Control: The product does not restrict or incorrectly restricts access to a resource from an unauthorized actor.
- [Architecture and Design, Operation] Very carefully manage the setting, management, and handling of privileges. Explicitly manage trust zones in the software.
- [Architecture and Design] Compartmentalize the system to have "safe" areas where trust boundaries can be unambiguously drawn. Do not allow sensitive data to go outside of the trust boundary and always be careful when interfacing with a compartment outside of the safe area. Ensure that appropriate compartmentalization is built into the system design, and the compartmentalization allows for and reinforces privilege separation functionality. Architects and designers should rely on the principle of least privilege to decide the appropriate time to use privileges and the time to drop privileges.
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:NReferences
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