CVE-2026-21883

Bokeh server applications have Incomplete Origin Validation in WebSockets

Published Jan 8, 2026 CVSS 4.0 · 4.5 Medium EPSS < 1% KEV · Not listed
Description
Bokeh is an interactive visualization library written in Python. In versions 3.8.1 and below, if a server is configured with an allowlist (e.g., dashboard.corp), an attacker can register a domain like dashboard.corp.attacker.com (or use a subdomain if applicable) and lure a victim to visit it. The malicious site can then initiate a WebSocket connection to the vulnerable Bokeh server. Since the Origin header (e.g., http://dashboard.corp.attacker.com/) matches the allowlist according to the flawed logic, the connection is accepted. Once connected, the attacker can interact with the Bokeh server on behalf of the victim, potentially accessing sensitive data, or modifying visualizations. This issue is fixed in version 3.8.2.

Analysis

AI-generated

Technical impact

Bokeh WebSocket Hijacking: Versions 3.8.1 and earlier contain flawed origin validation. An attacker can register a sub‑domain that matches the allow‑list and lure users to that site. The malicious page then opens a WebSocket to the Bokeh server. Because the Origin header is incorrectly accepted, the server permits the connection and handshakes, giving the attacker the same privileges as the victim, allowing data retrieval or manipulation of visualizations. This flaw behaves as a malicious use of the server’s interface rather than a classic code‑execution vector.

Affected Systems

Vendor: Bokeh bokeh. Product: the Bokeh interactive visualization library for Python. Affected releases include all versions up to and including 3.8.1. The issue is resolved in 3.8.2 and later releases.

Risk and Exploitability

Severity is rated 4.5 on CVSS v3.1, confirming a moderate overall risk. EPSS shows less than 1% probability of exploitation, indicating that while the vulnerability exists, it is not frequently targeted. The vulnerability is not listed in the CISA KEV catalog. Exploitation requires an attacker to host a malicious website that matches the server’s origin allow‑list and persuade an authenticated user to visit it. Once the victim browses that page, a WebSocket handshake is performed that bypasses the server’s filter, enabling unauthorized use of the server. No direct code‑execution capability is disclosed; the impact is primarily unauthorized data access or manipulation.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Update Bokeh to version 3.8.2 or newer to correct the origin validation logic.
  • If an upgrade is not immediately possible, eliminate the origin allow‑list or restrict it to exact hostnames without sub‑domains, and disable WebSocket support if it is not required.
  • Verify that the origin check enforces strict equality rather than prefix matching, and ensure that only authenticated sessions can access sensitive data.

Generated by OpenCVE AI on April 18, 2026 at 07:48 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-793v-589g-574v Bokeh server applications have Incomplete Origin Validation in WebSockets
History
Type Values Removed Values Added
First Time appeared Bokeh
Bokeh bokeh
CPEs cpe:2.3:a:bokeh:bokeh:*:*:*:*:*:python:*:*
Vendors & Products Bokeh
Bokeh bokeh
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}

Type Values Removed Values Added
References
Metrics threat_severity

None

cvssV3_1

{'score': 5.4, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N'}

threat_severity

Moderate

Type Values Removed Values Added
Description Bokeh is an interactive visualization library written in Python. In versions 3.8.1 and below, if a server is configured with an allowlist (e.g., dashboard.corp), an attacker can register a domain like dashboard.corp.attacker.com (or use a subdomain if applicable) and lure a victim to visit it. The malicious site can then initiate a WebSocket connection to the vulnerable Bokeh server. Since the Origin header (e.g., http://dashboard.corp.attacker.com/) matches the allowlist according to the flawed logic, the connection is accepted. Once connected, the attacker can interact with the Bokeh server on behalf of the victim, potentially accessing sensitive data, or modifying visualizations. This issue is fixed in version 3.8.2.
Title Bokeh server applications have Incomplete Origin Validation in WebSockets
Weaknesses CWE-1385
References
Metrics cvssV4_0

{'score': 4.5, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:U'}

Weaknesses
  • CWE-1385

    Missing Origin Validation in WebSockets

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Jan 23, 2026, 3:09 PM
Reserved
Jan 5, 2026, 5:24 PM
Status
Analyzed
Published
Jan 8, 2026, 2:15 AM
Modified
Jun 17, 2026, 10:19 AM
Severity
Moderate
Public date
Jan 8, 2026, 1:20 AM