criticalCVSS 9.1Vulnerability

CVE-2026-55536

### Summary `praisonai/browser/server.py` validates incoming WebSocket connections using a Chrome extension Origin check. The regex `chrome-extension://[a-z0-9]{32}` is applied with `re.match()`, which **only anchors at the start of the string, not the end**. Any Origin header with more than 32 alphanumeric characters after `chrome-extension://` — including non-alphanumeric trailing characters — passes the check. This is a **patch bypass** of GHSA-8x8f-54wf-vv92. That advisory triggered the addition of origin validation; this finding shows the validation is bypassable by any WebSocket client that forges an Origin header. After bypassing, the attacker can send `start_session` commands that are executed by any Chrome extension currently connected to the server — causing the extension to perform arbitrary browser automation including cookie theft and screenshot capture. ### Details **Vulnerable code — `browser/server.py` line 186:** ```python elif parsed_origin.scheme == "chrome-extension" and \ re.match(r"chrome-extension://[a-z0-9]{32}", origin): is_allowed = True ``` `re.match()` returns a match object if the pattern matches at the **beginning** of the string; trailing characters after the 32nd are not evaluated. `re.fullmatch()` (or anchoring with `$`) is required to enforce exact length. **There is no other authentication mechanism** in `_handle_connection()`. Confirmed by source inspection: - No bearer token check - No API key check - No extension ID allowlist - Origin header regex is the only gate before `websocket.accept()` **After connection, `start_session` reaches `_handle_start_session()` (lines 283-414)**, which: 1. Creates a `BrowserAgent` with the attacker-specified `goal` and `model` 2. Broadcasts `start_automation` to every connected Chrome extension 3. The extension then performs the goal on the user's browser ### PoC **Requirements:** PraisonAI browser server running on default `127.0.0.1:8765` **Start the server:** ```bash pyth

Properties

ghsa_id
GHSA-6g6r-q6gw-w8fg
severity
critical
summary
PraisonAI has a Browser Server WebSocket origin validation bypass via unanchored regex (patch bypass of CVE-2026-40289 / GHSA-8x8f-54wf-vv92)
cvss_score
9.1
cve_id
CVE-2026-55536
cvss_vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
is_ghsa_only
false
ghsa_published
2026-08-25T15:22:16Z
source_url
https://github.com/advisories/GHSA-6g6r-q6gw-w8fg
ghsa_updated
2026-08-25T15:22:17Z

Related Entities (5)

REPORTED_BY (1)

[Source]GitHub Advisory Database

VULNERABLE_TO (1)

[Software]pip/PraisonAI

AFFECTS (1)

[Software]pip/PraisonAI

HAS_WEAKNESS (2)

[Weakness]Permissive Regular Expression
[Weakness]Improper Access Control

Explore deeper with Ninja Signal's threat intelligence graph

CVE-2026-55536 (CVSS 9.1) — Ninja Signal Threat Intelligence | Ninja Signal