CVE-2026-39987

CRITICAL KEV NUCLEI LAB

marimo Affected by Pre-Auth Remote Code Execution via Terminal WebSocket Authentication Bypass

Title source: cna
STIX 2.1

Exploitation Summary

CVE-2026-39987 is actively exploited and listed in the CISA Known Exploited Vulnerabilities (KEV) catalog, added April 23, 2026. EIP tracks 13 public exploits from researchers including adminlove520, jenniferreire26, HORKimhab. A Nuclei detection template is also available.

AI-analyzed exploit summary This repository contains a functional Python-based exploit for CVE-2026-39987, targeting a pre-authentication RCE vulnerability in Marimo versions < 0.23.0 via WebSocket manipulation. The PoC includes both single-command execution and interactive shell modes, with additional features for target verification and reverse shell payload generation.

Description

marimo is a reactive Python notebook. Prior to 0.23.0, Marimo has a Pre-Auth RCE vulnerability. The terminal WebSocket endpoint /terminal/ws lacks authentication validation, allowing an unauthenticated attacker to obtain a full PTY shell and execute arbitrary system commands. Unlike other WebSocket endpoints (e.g., /ws) that correctly call validate_auth() for authentication, the /terminal/ws endpoint only checks the running mode and platform support before accepting connections, completely skipping authentication verification. This vulnerability is fixed in 0.23.0.

Exploits (13)

github WORKING POC 4 stars
by adminlove520 · pythonpoc
https://github.com/adminlove520/CVE-Poc_All_in_One/tree/main/2026/CVE-2026-39987

This repository contains a functional Python-based exploit for CVE-2026-39987, targeting a pre-authentication RCE vulnerability in Marimo versions < 0.23.0 via WebSocket manipulation. The PoC includes both single-command execution and interactive shell modes, with additional features for target verification and reverse shell payload generation.

Classification
Working Poc 95%
Attack Type
Rce
Complexity
Moderate
Reliability
Reliable
Target: Marimo < 0.23.0
No auth needed
Prerequisites: WebSocket endpoint at /terminal/ws · Network access to target
devstral-2 · analyzed May 07, 2026 Full analysis →
github SUSPICIOUS
by jenniferreire26 · poc
https://github.com/jenniferreire26/CVE-2026-39987

The repository claims to provide an exploit for CVE-2026-39987, an unauthenticated stored XSS leading to RCE in marimo, but only includes a README with vague details and a link to an external download. No actual exploit code is present.

Classification
Suspicious 90%
Attack Type
Rce
Complexity
Theoretical
Reliability
Theoretical
Target: marimo < 0.23.0
No auth needed
Prerequisites: reachable vulnerable target · predictable user/workflow context
devstral-2 · analyzed Jun 02, 2026 Full analysis →
github STUB
by HORKimhab · poc
https://github.com/HORKimhab/CVE-2026-39987

The repository contains no actual exploit code or technical details about CVE-2026-39987. It only includes a template file, a generic README with placeholder instructions, and a license file.

Classification
Stub 95%
Attack Type
Other
Complexity
Trivial
Reliability
Theoretical
Target: unspecified
No auth needed
Prerequisites: none
devstral-2 · analyzed May 30, 2026 Full analysis →
github STUB
by M3PH1569 · poc
https://github.com/M3PH1569/CVE-2026-39987-POC

The repository contains only a LICENSE file with no exploit code, technical details, or proof-of-concept implementation. It lacks any substantive content related to CVE-2026-39987.

Classification
Stub 100%
Attack Type
Other
Complexity
Trivial
Reliability
Theoretical
Target: unknown
No auth needed
devstral-2 · analyzed May 24, 2026 Full analysis →
nomisec WORKING POC
by 0xdeadroot · remote
https://github.com/0xdeadroot/CVE-2026-39987-marimo-rce

This repository contains a functional exploit for CVE-2026-39987, a pre-authentication RCE vulnerability in Marimo via an unauthenticated WebSocket terminal endpoint. The PoC establishes a WebSocket connection to `/terminal/ws`, drains initial output, and executes arbitrary commands.

Classification
Working Poc 95%
Attack Type
Rce
Complexity
Trivial
Reliability
Reliable
Target: Marimo < 0.23.0
No auth needed
Prerequisites: Network access to the target's WebSocket endpoint · Python 3.8+ with `websocket-client` library
devstral-2 · analyzed May 16, 2026 Full analysis →
nomisec WORKING POC
by rootdirective-sec · poc
https://github.com/rootdirective-sec/CVE-2026-39987-Lab

This repository contains a functional exploit PoC for CVE-2026-39987, demonstrating a pre-authentication RCE vulnerability in marimo's terminal WebSocket endpoint. The lab includes Dockerized vulnerable and patched environments, along with scripts to verify the vulnerability by executing benign commands.

Classification
Working Poc 100%
Attack Type
Rce
Complexity
Trivial
Reliability
Reliable
Target: marimo (versions 0.20.4 and earlier)
No auth needed
Prerequisites: Docker · Python 3.9+ · network access to the vulnerable marimo instance
devstral-2 · analyzed May 04, 2026 Full analysis →
github WORKING POC
by Dhiaelhak-Rached · pythonremote
https://github.com/Dhiaelhak-Rached/CVE-2026-39987-lab-or-marimo-cve-lab

This repository contains a functional exploit for CVE-2026-39987, demonstrating a pre-authentication remote code execution vulnerability in marimo via a WebSocket authentication bypass. The exploit includes both single-command execution and interactive shell capabilities.

Classification
Working Poc 100%
Attack Type
Rce
Complexity
Trivial
Reliability
Reliable
Target: marimo <= 0.20.4
No auth needed
Prerequisites: Docker · Python 3 · websocket-client library
devstral-2 · analyzed Apr 26, 2026 Full analysis →
github WORKING POC
by h3raklez · remote
https://github.com/h3raklez/CVE-2026-39987

The repository contains a functional Python exploit for CVE-2026-39987, demonstrating a pre-authentication RCE vulnerability in Marimo <= 0.20.4 via an unauthenticated WebSocket connection to `/terminal/ws`. The exploit includes both endpoint verification and a full interactive PTY shell payload.

Classification
Working Poc 100%
Attack Type
Rce
Complexity
Trivial
Reliability
Reliable
Target: Marimo <= 0.20.4
No auth needed
Prerequisites: Python 3 · websockets library · network access to target port 2718
devstral-2 · analyzed Apr 25, 2026 Full analysis →
nomisec SCANNER
by Nxploited · remote
https://github.com/Nxploited/CVE-2026-39987

The repository contains a mass scanner for CVE-2026-39987, targeting Marimo's unauthenticated WebSocket RCE vulnerability. It includes detection logic for various environments (e.g., cPanel, Plesk, Apache) but does not contain functional exploit code for achieving RCE.

Classification
Scanner 90%
Attack Type
Rce
Complexity
Moderate
Reliability
Theoretical
Target: Marimo (version not specified)
No auth needed
Prerequisites: target list (IPs/URLs) · Python environment with dependencies (websockets, rich, requests)
devstral-2 · analyzed Apr 18, 2026 Full analysis →
nomisec SCANNER
by keraattin · poc
https://github.com/keraattin/CVE-2026-39987

This repository contains a Python script that detects Marimo notebook instances vulnerable to CVE-2026-39987 by checking for exposed WebSocket endpoints and version information. It does not include exploit code but performs safe detection checks.

Classification
Scanner 95%
Attack Type
Info Leak
Complexity
Moderate
Reliability
Reliable
Target: Marimo Python Notebook <= 0.20.4
No auth needed
Prerequisites: Network access to the target Marimo instance · Exposed /terminal/ws endpoint
devstral-2 · analyzed Apr 15, 2026 Full analysis →
nomisec WORKING POC
by mki9 · poc
https://github.com/mki9/CVE-2026-39987_exploit

This repository contains a functional exploit for CVE-2026-39987, targeting a WebSocket-based authentication bypass vulnerability in Marimo software. The exploit establishes a WebSocket connection to a vulnerable endpoint and provides an interactive shell, demonstrating remote code execution (RCE) capabilities.

Classification
Working Poc 95%
Attack Type
Rce
Complexity
Moderate
Reliability
Reliable
Target: Marimo (version unspecified)
No auth needed
Prerequisites: Network access to target WebSocket endpoint (port 2718) · Python environment with required dependencies (websocket-client, colorama, rich, pyfiglet)
devstral-2 · analyzed Apr 14, 2026 Full analysis →
nomisec WORKING POC
by fevar54 · remote
https://github.com/fevar54/marimo_CVE-2026-39987_RCE_PoC

This repository contains a functional Python-based exploit for CVE-2026-39987, targeting Marimo versions below 0.23.0 via an unauthenticated WebSocket RCE vulnerability. The PoC includes both single-command execution and interactive shell modes, along with version detection logic.

Classification
Working Poc 95%
Attack Type
Rce
Complexity
Moderate
Reliability
Reliable
Target: Marimo < 0.23.0
No auth needed
Prerequisites: WebSocket endpoint at /terminal/ws · Network access to target
devstral-2 · analyzed Apr 14, 2026 Full analysis →
nomisec SCANNER
by 0xBlackash · poc
https://github.com/0xBlackash/CVE-2026-39987

The repository contains a Python-based scanner that detects vulnerable versions of Marimo by checking the version endpoint and favicon. It does not exploit the vulnerability but confirms the presence of vulnerable versions.

Classification
Scanner 100%
Attack Type
Info Leak
Complexity
Trivial
Reliability
Reliable
Target: Marimo < 0.23.0
No auth needed
Prerequisites: Network access to the target Marimo instance
devstral-2 · analyzed Apr 13, 2026 Full analysis →

Nuclei Templates (1)

Marimo <= 0.20.4 - Pre-Auth Terminal WebSocket RCE
CRITICALVERIFIEDby ritikchaddha
Shodan: http.favicon.hash:-1864630356

Scores

CVSS v3 9.8
EPSS 0.8071
EPSS Percentile 99.2%
Attack Vector NETWORK
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

CISA SSVC

Vulnrichment
Exploitation active
Automatable yes
Technical Impact total

Details

CISA KEV 2026-04-23
VulnCheck KEV 2026-04-09
ENISA EUVD EUVD-2026-20980
CWE
CWE-306
Status published
Products (3)
coreweave/marimo < 0.23.0
marimo-team/marimo < 0.23.0
pypi/marimo 0 - 0.23.0PyPI
Published Apr 09, 2026
KEV Added Apr 23, 2026
Tracked Since Apr 09, 2026