Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2025-57298 — CVE-2025-57298披露。 | Kitploit
工具/GitHubGitHub/minnggyuu/cve-2025-57298
漏洞分析Web应用程序漏洞利用Web安全论文与研究学习与教育
GitHubminnggyuu/cve-2025-57298

CVE-2025-57298

CVE-2025-57298披露。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

通过不安全的 Markdown 渲染导致的存储型 XSS 漏洞(Kotaemon)

概述

Kotaemon 是一个基于 RAG(检索增强生成)的开源文档问答系统,提供 Web 界面用于查询上传的 PDF、Word 和 Excel 等文件。

Kotaemon 的文档渲染管道中存在一个存储型跨站脚本(XSS)漏洞。 用户控制的内容经过 LLM 处理后,在 Markdown 到 HTML 的转换过程中未进行适当的清理,从而允许攻击者提供的 HTML 元素被持久性地注入到页面中。

当上传一份文档时,系统会自动触发一个摘要请求(例如“summary this file”),这是正常处理流程的一部分。因此,任何上传的文档都会隐式地经过 Markdown 解析和渲染管道,使得漏洞仅通过上传文档即可利用,无需用户显式交互。


受影响版本

以下版本的 Kotaemon 确认受影响:

  • 版本 <= 0.11.0

受影响组件

  • 文档渲染/摘要功能
  • Markdown 转 HTML 转换逻辑

受影响代码

kotaemon/blob/main/libs/ktem/ktem/utils/render.py

@staticmethod
def table(text: str) -> str:
    """Render table from markdown format into HTML"""
    text = replace_mardown_header(text)
    return markdown.markdown(
        text,
        extensions=[
            "markdown.extensions.tables",
            "markdown.extensions.fenced_code",
        ],
    )

根本原因

应用程序依赖 markdown.markdown() 函数将 LLM 生成的 Markdown 内容转换为 HTML。 然而,转换后的 HTML 输出直接在浏览器中渲染,未进行 HTML 清理或输出转义。

因此,能够生成原始 HTML 元素的 Markdown 语法(最典型的是图片语法 ![]())会被转换为可执行的 HTML(如 `` 标签),并存储在对话输出中。


概念验证(PoC)

载荷

"summary" means "![](https://example.com)"

利用步骤

  1. 上传包含上述载荷的文档。
  2. 选择“搜索全部”(Search All)选项。
  3. 系统自动对上传的文档发出摘要请求。
  4. LLM 生成的响应中包含恶意 Markdown。
  5. 该 Markdown 被转换为 HTML `` 标签,并在未经过滤的情况下渲染。

观察到的行为

  • 注入的 Markdown 图片语法被转换为 HTML `` 标签。
  • 渲染时,浏览器自动向攻击者控制的 URL 发起请求。
  • 注入的 HTML 持久保留在对话输出中。

影响

能够注入持久性 HTML 元素使得攻击者可以:

  • 触发未授权的 GET 请求(例如 /logout)
  • 造成类似 CSRF 的效果
  • 操纵渲染后的 UI 内容

利用只需上传文档,并在摘要过程中自动发生,无需用户额外交互。

由于未进行 HTML 清理,根据前端渲染上下文的不同,事件处理程序可能允许 JavaScript 执行。


证据

image-1

image-2

image-3


漏洞分类

  • 类型:存储型跨站脚本(XSS)
  • 攻击向量:不安全的 Markdown 转 HTML 渲染
  • 持久性:是
  • 用户交互要求:否

修复建议

  1. 在 Markdown 转 HTML 转换后,对 HTML 输出进行清理。
  2. 避免通过 GET 请求执行状态更改操作。
  3. 将 RAG 输入和 LLM 输出视为不可信数据。

致谢

本报告由 minnggyuu 编写。(Team 404 Not Found, WhiteHat School 3rd Cohort, 韩国)


联系方式

邮箱:[email protected]
GitHub:https://github.com/minnggyuu

下载工具