“下一代Python笔记本”marimo高危漏洞:无需密码,连上WebSocket即可远程控制服务器
- 2026-04-20 11:34:27
marimo 框架曝出 WebSocket 认证绕过高危漏洞(CVE-2026-39987,CVSS 9.3),攻击者无需任何凭据,仅需连接特定 WebSocket 端点即可直接获取服务器 PTY Shell 权限,实现远程代码执行。
目前 360 漏洞研究院已成功复现该漏洞并验证了危害。本文包含完整影响范围、修复方案、技术原理与复现细节,建议用户立即升级。、
漏洞概述 | |||
漏洞名称 | marimo Terminal WebSocket认证绕过远程代码执行漏洞 | ||
漏洞编号 | CVE-2026-39987 | ||
公开时间 | 2026/4/9 | POC状态 | 已公开 |
漏洞类型 | 认证绕过 | EXP状态 | 已公开 |
利用可能性 | 高 | 技术细节状态 | 已公开 |
CVSS 4.0 | 9.3 | 在野利用状态 | 未发现 |
01 漏洞影响范围
受影响的软件版本:marimo <= 0.20.4
02 修复建议
正式防护方案
建议用户立即升级至官方发布的最新版本(>= 0.23.0)
03 漏洞描述
近日,安全研究人员披露了 marimo 框架中存在一个严重的预认证远程代码执行漏洞,编号为CVE-2026-39987。该漏洞允许未授权的远程攻击者通过绕过身份验证机制,直接获取服务器端的完整 PTY(伪终端)Shell 权限,从而执行任意系统命令。
经分析,漏洞根源在于 marimo/_server/api/endpoints/terminal.py 文件中的 /terminal/ws WebSocket 端点实现缺陷。与正确实施了 validate_auth() 认证检查的其他端点(如 /ws)不同,该终端端点仅检查运行模式和平台支持情况,完全跳过了身份验证环节。由于 marimo 使用的 Starlette 认证中间件在 WebSocket 连接建立阶段不会主动拒绝未认证连接,而是依赖端点级别的装饰器或显式调用,导致攻击者可在无需任何令牌或用户交互的情况下建立连接并触发 pty.fork() 创建子进程。值得注意的是,Windows 环境不受该漏洞影响,因为 supports_terminal() 会预先判断系统是否支持 pty 库,若不支持则直接拒绝连接。
04 漏洞复现
360漏洞研究院已成功复现marimo Terminal WebSocket认证绕过远程代码执行漏洞。

CVE-2026-39987 marimo Terminal WebSocket认证绕过远程代码执行漏洞复
05 时间线
2026年04月13日,360漏洞研究院发布本安全风险通告。
06 参考链接
https://github.com/marimo-team/marimo/security/advisories/GHSA-2679-6mx9-h9xc
https://www.cve.org/CVERecord?id=CVE-2026-39987
07 更多漏洞情报
建议您订阅360数字安全-漏洞情报服务,获取更多漏洞情报详情以及处置建议,让您的企业远离漏洞威胁。
邮箱:360VRI@360.cn
网址:https://vi.loudongyun.360.net
360官网:www.360.cn