Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-39987_POC — 针对 CVE-2026-39987 的概念验证漏洞利用,该漏洞是 Marimo 的 /terminal/ws WebSocket 端点中的预认证 RCE,无需凭据即可获得交互式 shell。 | Kitploit
工具/GitHubGitHub/julichaan/cve-2026-39987_poc
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试身份验证远程访问工具
GitHubjulichaan/cve-2026-39987_poc

CVE-2026-39987_POC

针对 CVE-2026-39987 的概念验证漏洞利用,该漏洞是 Marimo 的 /terminal/ws WebSocket 端点中的预认证 RCE,无需凭据即可获得交互式 shell。

查看仓库
10小时18分前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

PoC — CVE-2026-39987 · Marimo 预认证 RCE

CVSS 4.0: 9.3(严重) · AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H 影响范围: marimo <= 0.20.4 · 已修复: 0.23.0 · CWE-306(缺少身份验证) 安全公告: GHSA-2679-6mx9-h9xc · 修复: marimo-team/marimo@c24d480

根本原因

WebSocket 端点 /terminal/ws(marimo/_server/api/endpoints/terminal.py) 在接受连接并调用 pty.fork() 之前,仅检查会话模式(EDIT)和平台支持。 它既没有 @requires(...) 装饰器,也没有 validate_auth() 调用。

在 0.20.4 中测得的对比:

  • 18 个端点中共有 73 处使用 @requires(...)。
  • /ws(notebook)-> 2 次调用 validate_auth()。
  • terminal.py -> 0 个 @requires,0 个 validate_auth。 <-- 缺陷所在。

AuthBackend 中间件保护 HTTP 和 /ws websocket,但 /terminal/ws 在没有 cookie 和 token 的情况下接受连接,并以 marimo 进程的权限 fork 出一个 PTY shell。

利用要求

  • marimo 以 EDIT 模式启动(marimo edit ...),这是编辑器的默认模式。
  • 支持 pty 的平台(Linux/macOS;Windows 和 Pyodide 不受影响)。
  • 可访问该端口的网络。无需凭据。

攻击场景

能够通过网络访问 marimo edit 服务器的攻击者(常见于 远程 / 容器部署,通常以 root 运行)无需身份验证即可获得交互式 shell:凭据窃取(cat .env)、横向移动、 恶意软件部署。在披露后 < 10 小时内即被在野利用;于 2026-04-23 被加入 CISA 的 KEV 目录。

PoC 用法

root@kitploit:~
pip install "marimo==0.20.4" websockets
marimo edit demo.py --headless --port 2718 --token --token-password SECRET
python exploit.py ws://127.0.0.1:2718 "id; cat /etc/passwd"

exploit.py 不发送 token、cookie 和 Authorization 头。它将 命令作为原始文本 + "\r"(Enter)发送,与用户在终端中输入的方式完全一致。

实验室中获得的结果(Kali,marimo 0.20.4)

  • 无 token 的基线:HTTP -> 401 ; /ws -> 403(身份验证确实有效)。
  • 无 token 的 /terminal/ws -> 被接受。在服务器上执行: uid=1000() gid=1000() ... Linux ... 并写入 /tmp/cve_2026_39987_proof.txt -> RCE 已确认。

修复措施

升级到 marimo >= 0.23.0。临时缓解措施:不要将 marimo edit 暴露给不受信任的网络;将编辑器置于经过身份验证的代理之后;以非特权方式运行 / 在无密钥的容器中运行。

免责声明

仅用于经授权的安全测试和教育用途。仅针对 您拥有或获得明确测试许可的系统运行。

下载工具