免责声明 本脚本仅用于教育和授权测试目的。未经明确许可,利用本工具对系统进行未经授权的操作属违法行为。作者对任何滥用此信息的行为概不负责。
0.23.0 之前的 Marimo 版本存在一个无需事先认证即可利用的严重远程命令执行(RCE)漏洞。端点 /terminal/ws 未实施充分的访问控制,从而允许未经认证的攻击者获得系统的完整交互式 shell 访问权限。
| 详情 | 信息 |
|---|---|
| CVE | CVE-2026-39987 |
| 严重性 | 严重 |
| CVSS 评分 | 9.3 (CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H) |
| 类型 | 预认证远程代码执行(RCE) |
| 攻击向量 | WebSocket(/terminal/ws) |
| 受影响产品 | Marimo < 0.23.0 |
| 补丁 | Marimo ≥ 0.23.0 |
http.favicon.hash:-1864630356
services.http.response.favicons.hashes: -1864630356
-1864630356/api/version需要 Python 3.10+。依赖项由 Astral 的 uv 管理。
# install uv (skip if already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv
uv pip install -r requirements.txt
uv run poc.py -t <target_url>
-t、--target_url(必需):目标 /terminal/ws 端点的 WebSocket URI。uv run poc.py -t wss://<target-host>/terminal/ws
连接后将获得一个交互式原始 pty 会话。本地可用的额外命令(不会按输入原样发送到远程 shell):
| 命令 | 描述 |
|---|---|
.upload |
按 Ctrl+C 中断/退出。
>= 0.23.0,该版本修复了 /terminal/ws 上缺失的访问控制。localhost 或内部接口,并通过 VPN/堡垒机提供远程访问。/terminal/ws 和其他 API 路由。/terminal/ws 的意外 WebSocket 连接以及服务器日志中未经认证的 shell 活动;上述 Shodan/Censys 搜索语法也可用于防御性目的,以发现自身暴露在外且未打补丁的实例。| 打开本地提示,输入本地文件路径和远程目标路径,然后将文件推送到目标。 |
!upload <local_path> <remote_path> | 与上述相同,单行完成。 |
!download <remote_path> <local_path> | 从目标拉取文件到你的本地计算机。 |
/exit、/bye | 在本地终止会话。 |