fineman999/POC_CVE-2026-42589

GitHub: fineman999/POC_CVE-2026-42589

针对 Gotenberg CVE-2026-42589 换行符注入 RCE 漏洞的本地复现环境与 Nuclei 检测模板。

Stars: 1 | Forks: 0

# POC_CVE-2026-42589 针对影响 Gotenberg 的 `CVE-2026-42589` 的本地复现实验环境和 nuclei 模板草稿。 ## 概述 `CVE-2026-42589` 是 Gotenberg 中的一个未授权远程代码执行漏洞,由以下位置的 metadata key 换行符注入引起: ``` POST /forms/pdfengines/metadata/write ``` 受影响的 Gotenberg 版本在将用户可控的 metadata key 转发给 ExifTool 时,未拒绝控制字符。包含 JSON 转义换行符的 metadata key 可能会被分割为额外的 ExifTool 参数。 此实验环境用于验证: - `gotenberg/gotenberg:8.29.1` 上的漏洞行为 - `gotenberg/gotenberg:8.31.0` 上的修复行为 nuclei 模板仅使用非破坏性的 `sleep 6` 时间检测。 ## 参考资料 - GitHub 安全公告: https://github.com/gotenberg/gotenberg/security/advisories/GHSA-rqgh-gxv4-6657 - 修复版本: https://github.com/gotenberg/gotenberg/releases/tag/v8.31.0 - ExifTool 文档: https://exiftool.org/exiftool_pod.html ## 文件 - `docker-compose.yml` - `docker-compose.latest.yml` - `CVE-2026-42589.yaml` - `manual_verify.py` - `sample.pdf` - `README.md` ## 漏洞测试 启动 Gotenberg `8.29.1`: ``` docker compose down -v docker compose up -d docker compose logs --tail=100 gotenberg ``` 检查版本: ``` curl -s http://127.0.0.1:3000/version ``` 手动原始 multipart 时间检测: ``` python3 manual_verify.py http://127.0.0.1:3000 ``` 预期的漏洞特征: ``` HTTP/1.1 500 Internal Server Error TOTAL_TIME=6.xs ``` 观察到的漏洞结果: ``` HTTP/1.1 500 Internal Server Error TOTAL_TIME=6.300s Internal Server Error ``` ## 已修复版本对照 启动 Gotenberg `8.31.0`: ``` docker compose -f docker-compose.latest.yml down -v docker compose -f docker-compose.latest.yml up -d docker compose -f docker-compose.latest.yml logs --tail=100 gotenberg ``` 检查版本: ``` curl -s http://127.0.0.1:3000/version ``` 运行相同的手动时间检测: ``` python3 manual_verify.py http://127.0.0.1:3000 ``` 观察到的已修复版本结果: ``` HTTP/1.1 400 Bad Request TOTAL_TIME=0.145s At least one PDF engine cannot process the requested metadata, while others may have failed to convert due to different issues ``` ## Nuclei 验证模板: ``` nuclei -duc -validate -t CVE-2026-42589.yaml ``` 针对易受攻击的目标运行: ``` nuclei -duc -u http://127.0.0.1:3000 -t CVE-2026-42589.yaml ``` 预期行为: - `8.29.1`:在延迟的 `500` 响应后匹配 - `8.31.0`:不匹配 观察到的漏洞结果: ``` [CVE-2026-42589] [http] [critical] http://127.0.0.1:3000/forms/pdfengines/metadata/write [INF] Scan completed in 6.245907708s. 1 matches found. ``` 观察到的已修复版本结果: ``` [INF] Scan completed in 93.01425ms. No results found. ``` ## 注意事项 - 本实验环境特意避免了文件写入、反弹 shell 和带外回调。 - 该模板检测的是行为,而不仅仅是版本号。 - 未使用真实世界目标。 - 请仅在您拥有或明确获得授权测试的系统上使用。
标签:Docker, Google, Go语言工具, Maven, Nuclei, PoC, 安全防御评估, 暴力破解, 漏洞验证, 版权保护, 请求拦截, 逆向工具