Impact
Gotenberg is a Docker‑powered stateless API for PDF files. In versions 8.32.0 and earlier, filename handling uses filepath.Base on Linux, which does not treat backslashes as path separators, allowing a multipart filename containing Windows‑style parent directory components to survive sanitization. This result flows into multi‑output PDF routes that produce ZIP archives, with the original filename used as the zip entry name. A remote attacker can submit a name such as …\Windows\System32\evil.pdf via an upload or a manipulated Content‑Disposition header. When a Windows archive extractor extracts the returned ZIP, the entry name can cause a file to be written outside the intended extraction directory, leading to arbitrary file writes on the downstream Windows system. The affected paths include /forms/pdfengines/split and other multi‑output PDF, LibreOffice, and conversion routes. This is a directory traversal vulnerability (CWE‑22).
Affected Systems
The vulnerability is present in Gotenberg 8.32.0 and earlier releases and is fixed in version 8.33.0. Only the Gotenberg container image (gotenberg:gotenberg) is affected. The affected functionality includes the multi‑output PDF, LibreOffice, and conversion routes that generate ZIP archives, with the /forms/pdfengines/split path also impacted.
Risk and Exploitability
The CVSS score of 8.8 indicates high severity, while the EPSS score of less than 1% suggests a low probability of exploitation in the wild. The vulnerability is not listed in CISA’s KEV catalog. An attacker can trigger the flaw simply by submitting an upload or manipulating a Content‑Disposition header to include a filename with backslashes. Once the malicious ZIP is extracted on a Windows system, the attack can result in arbitrary file writes outside the intended directory, potentially compromising the host. The attack vector is remote, relying on client‑side ZIP extraction, and poses significant risk for environments that distribute or accept such archives for Windows users or services.
OpenCVE Enrichment
Github GHSA