此仓库包含针对 CVE-2024-12537 的本地隔离复现实验环境和 nuclei 模板候选,该漏洞是 Open WebUI 代码格式化端点中的一个未认证拒绝服务漏洞。
该实验环境不发送大量拒绝服务载荷。它通过 Open WebUI 的未认证 /api/version 指纹端点以及向 /api/v1/utils/code/format 发送最小化 {"code":"x"} 请求来验证 nuclei 检测逻辑,然后比较漏洞版本与已修复/较新版本。
open-webui/open-webuiCVE-2024-12537GHSA-chf7-q7m5-fq92POST /api/v1/utils/code/formatGET /api/versionv0.5.10v0.6.14< 0.5.14(针对未认证威胁模型)参考:
docker-compose.yml:使用可选择的 Docker 标签启动 Open WebUIverify-cve-2024-12537.sh:等待就绪,打印 /api/version,并在可用时运行 nucleinuclei/CVE-2024-12537.yaml:nuclei 模板候选curlnuclei请仅在本地隔离实验环境中运行。请勿针对第三方系统使用这些命令。仅针对您拥有或已获得明确书面授权测试的系统使用。
启动 Open WebUI v0.5.10:
WEBUI_TAG=v0.5.10 docker compose up -d
运行验证脚本:
sh verify-cve-2024-12537.sh
观察到的漏洞版本响应:
HTTP/1.1 200 OK
content-type: application/json
{"version":"0.5.10"}
观察到的漏洞版本 nuclei 输出:
[CVE-2024-12537:dsl-1] [http] [high] http://127.0.0.1:3010/api/v1/utils/code/format ["0.5.10"]
清理:
docker compose down -v
启动 Open WebUI v0.6.14:
WEBUI_TAG=v0.6.14 docker compose up -d
运行验证脚本:
sh verify-cve-2024-12537.sh
观察到的已修复/较新版本响应:
HTTP/1.1 200 OK
content-type: application/json
{"version":"0.6.14"}
观察到的已修复/较新版本 nuclei 输出:
No results found
清理:
docker compose down -v
验证模板:
nuclei -validate -t nuclei/CVE-2024-12537.yaml
针对本地实验环境运行:
nuclei -silent \
-t nuclei/CVE-2024-12537.yaml \
-include-templates nuclei/CVE-2024-12537.yaml \
-u http://127.0.0.1:3010
预期行为:
v0.5.10:匹配v0.6.14:不匹配/api/v1/utils/code/format 发送大型请求体。{"code":"x"},在 Docker v0.5.10 上返回 {"code":"x\n"},在 Docker v0.6.14 上返回 {"detail":"Not authenticated"}。-include-templates,因为标记为 dos 的模板默认可能被排除。curl: (52) Empty reply from server。验证脚本会等待直到 /api/version 响应。docker-compose.yml 设置了 RAG_EMBEDDING_MODEL="" 和 RAG_EMBEDDING_MODEL_AUTO_UPDATE=False,因此实验环境不会在嵌入模型初始化时阻塞。<= 0.3.32;本实验环境基于提交追踪使用未认证代码路径的截止版本 < 0.5.14。相关序列为 d3d161f72(无认证,v0.5.0-v0.5.13)、2f75eef49(添加 get_verified_user,v0.5.14+)和 4fe45d443(强化为 get_admin_user,v0.6.14+)。