[KEV] Vulnerability in Marimo remote-attack (CVE-2026-39987)
Summary
vulnerability in Marimo remote-attack (CVE-2026-39987). Risk of unauthorized operations or information disclosure. Listed in CISA KEV — actively exploited.
Original description
The description as published by the source.
Summary
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.
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.
Affected Versions
Marimo <= 0.20.4
Vulnerability Details
Root Cause: Terminal WebSocket Missing Authentication
marimo/_server/api/endpoints/terminal.py lines 340-356:
@router.websocket("/ws")
async def websocket_endpoint(websocket: WebSocket) -> 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
Compare with the correctly implemented /ws endpoint (ws_endpoint.py lines 67-82):
@router.websocket("/ws")
async def websocket_endpoint(websocket: WebSocket) -> None:
app_state = AppState(websocket)
validator = WebSocketConnectionValidator(websocket, app_state)
if not await validator.validate_auth(): # Corr…
Source: CISA Known Exploited Vulnerabilities NVD GitHub Advisory CISA KEV
AI summary
Written by an external AI model and may contain mistakes. Check the original description and references below before acting on it.
There is a serious issue with Marimo's product that might allow attackers to access certain codes and manipulate company's systems. Unless proper security measures are taken, there is a risk of information leakage and business disruption. It's crucial to promptly apply security patches. This case carries risks similar to past incidents like the Heartbleed bug.
CVE-2026-39987 in Marimo products presents a significant RCE vulnerability allowing unauthenticated exploitation. The specific HTTP endpoints or function names are not specified within the given material, but it relates to CWE-306, indicating risks of arbitrary system command execution. Affected version range and fixes also could not be determined from official resources. While the exact workaround is unclear, enhancing overall system access controls and monitoring is advisable. The CVSS interpretation confirms remote exploitation capability and no need for authentication.
Marimo製品におけるRCE脆弱性
具体的な関数名・エンドポイント不明
重大(high)
公式パッチ適用
素材から特定できず
素材から特定できず
Related past incidents Similar incidents extracted from past CVEs
OpenSSLのバグにより、メモリを攻撃者が盗み見ることができた事例。
Log4jにおいてRCEを可能にした深刻な脆弱性。
If this happens at your company Expected impact per business scenario
顧客情報が不正に取得され、金銭被害や信用低下が発生する可能性がある。
システムダウンにより業務が停止し、生産性やビジネスに大きな影響が出る可能性がある。
顧客のデータリークが発生し、契約解消や損害賠償問題に発展する可能性がある。
即時のパッチ適用とセキュリティ監視の強化を推奨する。
Response actions
Concrete steps and command examples for SOC/SRE teams to execute in order
-
1Identify exposure identify
grep -r 'remote-attack' . | grep -v node_modulesリポジトリと本番環境の依存ファイル (package-lock.json / requirements.txt / go.sum / Gemfile.lock 等) で
remote-attackを grep し、稼働しているサービス・バージョンを把握する。 -
4Consider incident declaration escalate
Notify SOC / on-callCISA KEV登録済 = 実環境で悪用が観測されている。Step 3 で兆候があればインシデント対応宣言、無くてもパッチ適用までWAF強化を最優先で。
-
7Post-deployment verification verify
Confirm patched version is live in productionパッチ適用後、ステージングで PoC または同等の悪用パターンを再現して脆弱性が閉じたことを確認。本番では Step 3 と同じログクエリでアラート再発が無いか継続監視。
Affected packages
References
- advisory NVD
- advisory github.com
- package github.com
- package pypi.org
- web github.com
- web github.com
- web github.com
- web cisa.gov
- web cisa.gov
- web sysdig.com