target
Built from Dockerfile.target, runs marimo 0.20.4 in edit mode with token authentication on port 2718, bound to all interfaces. Runs as root inside the container.
Dockerfile.target:1-17docker-compose.yml:4-13File viewing is interactive and short-lived. Downloads are password-protected ZIP archives using password eip.
The artifact contains a Python script (exploit.py) that connects to a marimo terminal WebSocket endpoint without authentication and executes arbitrary system commands or provides an interactive shell, directly exercising CVE-2026-39987.
No backdoor observed in reviewed code
The supplied evidence consists of a README.md lab guide and an exploit.py script for CVE-2026-39987. The README describes the vulnerability and provides educational instructions for reproducing the authentication bypass in a Docker lab. The exploit.py script implements a proof-of-concept that connects to the vulnerable /terminal/ws WebSocket endpoint without authentication and executes arbitrary commands or provides an interactive shell. Both files are consistent with a legitimate educational PoC for the described CVE; no concealed backdoor, deceptive payload, or operator-directed harm is observed.
The file exploit.py is a functional script that actively exploits the vulnerability by establishing an unauthenticated WebSocket connection to /terminal/ws and executing arbitrary commands, which is the definition of exploit code.
exploit.py:1-8exploit.py:16-78README.md:30README.md:80exploit.py:21-22exploit.py:44-47exploit.py:119-129README.md:81exploit.py:178README.md:81This review is limited to the supplied PoC code and context. It does not assert that the code works or is safe to execute.
A Docker Compose lab that sets up a vulnerable marimo 0.20.4 server (target) and a Python attacker container on a shared bridge network. The lab is designed to demonstrate CVE-2026-39987, an authentication bypass in the /terminal/ws WebSocket endpoint leading to remote code execution.
README.md:1-5docker-compose.yml:1-26The README explicitly states the lab is for understanding, reproducing, and patching CVE-2026-39987. It provides a vulnerable target (marimo 0.20.4), an exploit script, and step-by-step instructions for exercising the vulnerability.
README.md:1-5README.md:28-33Built from Dockerfile.target, runs marimo 0.20.4 in edit mode with token authentication on port 2718, bound to all interfaces. Runs as root inside the container.
Dockerfile.target:1-17docker-compose.yml:4-13A Python 3.12-slim container kept alive with 'tail -f /dev/null'. Intended for executing the exploit script against the target. No volumes or ports are mapped.
docker-compose.yml:15-21Python script that connects to the target's /terminal/ws WebSocket without authentication, sends commands, and returns output or provides an interactive shell.
exploit.py:1-9exploit.py:12-223Supported by supplied evidence
The lab explicitly targets CVE-2026-39987. The README describes the vulnerability as a pre-auth RCE via /terminal/ws authentication bypass in marimo <= 0.20.4, and the exploit script implements exactly that attack path.
README.md:1-5README.md:28-33exploit.py:1-9README.md:78-80README.md:85-86Dockerfile.target:16README.md:28-30README.md:78-80README.md:107-118README.md:122-155README.md:159-199README.md:203-218All visible behavior is directed at the lab's own target container. The exploit connects to the target's WebSocket, executes commands inside that container, and does not attempt to escape the Docker network, access the host filesystem, or connect to external systems. The lab uses expected port mapping and root user for the target, which are documented requirements for the exercise.
exploit.py:12-223docker-compose.yml:1-26README.md:28-33This review is limited to the supplied lab evidence packet. It does not assert that the environment runs, reproduces a vulnerability, or is safe to execute. Contract: eip-docker-lab-analysis-v1.