<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://cve.radiocsirt.org/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-03T15:49:06.453135+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>csirt@opendfir.org</email>
  </author>
  <link href="https://cve.radiocsirt.org" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/cve-2026-39987</id>
    <title>CVE-2026-39987 — marimo Affected by Pre-Auth Remote Code Execution via Terminal WebSocket Authentication Bypass</title>
    <updated>2026-10-03T15:49:06.454764+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> marimo-team marimo</p>
<p>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.</p></div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/cve-2026-39987"/>
  </entry>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/ghsa-2679-6mx9-h9xc</id>
    <title>GHSA-2679-6mx9-h9xc — Marimo: Pre-Auth Remote Code Execution via Terminal WebSocket Authentication Bypass</title>
    <updated>2026-10-03T15:49:06.454816+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> PyPI: marimo</p>
<p>## Summary</p>
<p>Marimo (19.6k stars) 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.</p>
<p>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.</p>
<p>## Affected Versions</p>
<p>Marimo &lt;= 0.20.4</p>
<p>## Vulnerability Details</p>
<p>### Root Cause: Terminal WebSocket Missing Authentication</p>
<p>`marimo/_server/api/endpoints/terminal.py` lines 340-356:</p>
<p>```python
@router.websocket("/ws")
async def websocket_endpoint(websocket: WebSocket) -&gt; None:
    app_state = AppState(websocket)
    if app_state.mode != SessionMode.EDIT:
        await websocket.close(...)
        return
    if not supports_terminal():
        await websocket.close(...)
        return
    # No authentication check!
    await websocket.accept()  # Accepts connection directly
    # ...
    child_pid, fd = pty.fork()  # Creates PTY shell
```</p>
<p>Compare with the correctly implemented `/ws` endpoint (`ws_endpoint.py` lines 67-82):</p>
<p>```python
@router.websocket("/ws")
async def websocket_endpoint(websocket: WebSocket) -&gt; None:
    app_state = AppState(websocket)
    validator = WebSocketConnectionValidator(websocket, app_state)
    if not await validator.validate_auth():  # Corr…</p></div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/ghsa-2679-6mx9-h9xc"/>
  </entry>
</feed>
