fineman999/POC_CVE-2026-42589

GitHub: fineman999/POC_CVE-2026-42589

Stars: 0 | Forks: 0

# POC_CVE-2026-42589 Local reproduction lab and nuclei template draft for `CVE-2026-42589` affecting Gotenberg. ## Summary `CVE-2026-42589` is an unauthenticated remote code execution issue in Gotenberg caused by metadata key newline injection in: POST /forms/pdfengines/metadata/write Affected Gotenberg forwards user-controlled metadata keys to ExifTool without rejecting control characters. A metadata key containing JSON-escaped newlines may be split into additional ExifTool arguments. This lab was used to validate: - vulnerable behavior on `gotenberg/gotenberg:8.29.1` - patched behavior on `gotenberg/gotenberg:8.31.0` The nuclei template uses only a non-destructive `sleep 6` timing check. ## References - GitHub Advisory: https://github.com/gotenberg/gotenberg/security/advisories/GHSA-rqgh-gxv4-6657 - Fixed release: https://github.com/gotenberg/gotenberg/releases/tag/v8.31.0 - ExifTool docs: https://exiftool.org/exiftool_pod.html ## Files - `docker-compose.yml` - `docker-compose.latest.yml` - `CVE-2026-42589.yaml` - `manual_verify.py` - `sample.pdf` - `README.md` ## Vulnerable Test Start Gotenberg `8.29.1`: docker compose down -v docker compose up -d docker compose logs --tail=100 gotenberg Check the version: curl -s http://127.0.0.1:3000/version Manual raw multipart timing check: python3 manual_verify.py http://127.0.0.1:3000 Expected vulnerable signal: HTTP/1.1 500 Internal Server Error TOTAL_TIME=6.xs Observed vulnerable result: HTTP/1.1 500 Internal Server Error TOTAL_TIME=6.300s Internal Server Error ## Patched-Version Control Start 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 Check the version: curl -s http://127.0.0.1:3000/version Run the same manual timing check: python3 manual_verify.py http://127.0.0.1:3000 Observed patched-version result: 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 Validate the template: nuclei -duc -validate -t CVE-2026-42589.yaml Run against the vulnerable target: nuclei -duc -u http://127.0.0.1:3000 -t CVE-2026-42589.yaml Expected behavior: - `8.29.1`: match after the delayed `500` response - `8.31.0`: no match Observed vulnerable result: [CVE-2026-42589] [http] [critical] http://127.0.0.1:3000/forms/pdfengines/metadata/write [INF] Scan completed in 6.245907708s. 1 matches found. Observed patched-version result: [INF] Scan completed in 93.01425ms. No results found. ## Notes - This lab intentionally avoids file writes, reverse shells, and out-of-band callbacks. - The template detects behavior, not only a version banner. - No real-world targets were used. - Use only on systems you own or are explicitly authorized to test.