CVE-2026-42589
A \n embedded in a JSON key splits the ExifTool stdin stream into a new argument line, allowing an attacker to inject arbitrary ExifTool flags — including -if, which evaluates Perl expressions.
Does this matter?
High impact if exploited, but EPSS currently rates exploitation as unlikely (3.01%). Schedule it in the normal patch cycle and watch for a rise in EPSS or a public exploit.
Description
Gotenberg is a Docker-powered stateless API for PDF files. Prior to 8.31.0, Gotenberg's /forms/pdfengines/metadata/write HTTP endpoint accepts a JSON metadata object and passes its keys directly to ExifTool via the go-exiftool library. No validation is performed on key characters. A \n embedded in a JSON key splits the ExifTool stdin stream into a new argument line, allowing an attacker to inject arbitrary ExifTool flags — including -if, which evaluates Perl expressions. This achieves unauthenticated OS command execution in a single HTTP request. The response is HTTP 200 with a valid PDF, making the attack transparent to basic monitoring. This vulnerability is fixed in 8.31.0.
- CVSS 3.1
- 9.8 CRITICALCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
- EPSS
- 3.01% probability · 87th percentile
- CISA KEV
- Not listed
- Weakness
- CWE-78
- Affected
- thecodingmachine/gotenberg
- Source
- security-advisories@github.com
References
- https://github.com/gotenberg/gotenberg/security/advisories/GHSA-rqgh-gxv4-6657Exploit, Mitigation, Vendor Advisory
- https://github.com/gotenberg/gotenberg/security/advisories/GHSA-rqgh-gxv4-6657Exploit, Mitigation, Vendor Advisory
Source: NVD record, EPSS from FIRST.org, KEV from CISA. Refreshed daily.