CVE-2026-44829 is a path traversal vulnerability in Gotenberg's PDF-to-zip conversion that exploits a cross-platform boundary failure rather than a traditional code injection. When Gotenberg generates a zip archive containing user-influenced filenames, it correctly uses filepath.Base for Linux — treating backslashes as literal characters, not path separators. This is functioning as designed for the Gotenberg server's filesystem. The vulnerability manifests downstream: a filename like ..\..\etc\passwd passes through Gotenberg unchanged because backslashes are valid filename characters on Linux, but when a Windows user or automation system extracts the resulting zip, those backslashes become path separators, writing files outside the intended directory.
This is not a server-side RCE — it's an artifact poisoning vulnerability where the attack surface lives on the consumer's extraction side. The EPSS score of 0.00377 reflects current low exploitation, but this likely reflects the specific chain required: the attacker must control a filename that survives Linux processing and reaches a Windows extraction context. This chain is common in automation pipelines, document management systems, and CI/CD workflows where Gotenberg generates PDFs that get packaged and distributed to Windows endpoints. The supply-chain nature — where a single poisoned filename propagates to every downstream consumer — is what makes this dangerous.
The fix in version 8.33.0 adds explicit sanitization beyond filepath.Base. However, the deeper lesson is that artifact-generating services must sanitize against the weakest extractor in their distribution chain, not just their own platform's filesystem rules. Standard security reviews test code against its execution environment — they don't model downstream consumers. Gotenberg's developers likely verified correct zip creation on Linux, but never tested extraction on Windows because extraction wasn't their concern.
Review your artifact-generating services with this question: when your output is extracted on every platform in the distribution chain, does it produce the expected file structure? If extraction testing isn't part of your pipeline, you've likely got the same gap — regardless of what filepath.Base does on your server.