Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
CVE-2026-39987-PoC — Proof-of-concept exploit for CVE-2026-39987, a pre-authentication RCE in Marimo's /terminal/ws WebSocket endpoint, providing unauthenticated PTY shell access. | Kitploit
Tools/GitHubGitHub/stapat1245/cve-2026-39987-poc
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingRemote Access Tool
GitHubstapat1245/cve-2026-39987-poc

CVE-2026-39987-PoC

Proof-of-concept exploit for CVE-2026-39987, a pre-authentication RCE in Marimo's /terminal/ws WebSocket endpoint, providing unauthenticated PTY shell access.

View Repository
9h 31m agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

CVE-2026-39987 PoC

Summary

Marimo <= 0.20.4 is affected by a pre-authentication RCE vulnerability in the /terminal/ws WebSocket endpoint.

The endpoint checks the application mode and terminal support, but does not validate authentication before accepting the WebSocket connection. It then creates a PTY shell, allowing an unauthenticated attacker to execute commands with the privileges of the Marimo process.

Root Cause

Unlike other WebSocket endpoints that call validate_auth(), the vulnerable terminal endpoint accepts the connection directly:

root@kitploit:~
if app_state.mode != SessionMode.EDIT:
    await websocket.close(...)
    return

if not supports_terminal():
    await websocket.close(...)
    return

await websocket.accept()
child_pid, fd = pty.fork()

The missing authentication check allows unauthenticated access to the PTY.

Affected Versions

  • Marimo <= 0.20.4

PoC

The included CVE-2026-39987.py client connects to:

root@kitploit:~
/terminal/ws

Interactive mode:

root@kitploit:~
python3 CVE-2026-39987.py -i

Single command:

root@kitploit:~
python3 CVE-2026-39987.py "id"

Configure the target by replacing DEFAULT_HOST in the script.

Impact

Successful exploitation can provide an unauthenticated PTY shell and arbitrary command execution as the Marimo server user.

Download Tool