{"id":"CVE-2026-44829","summary":"Gotenberg: Path traversal in zip entry name via Windows-style separators in upload filename","details":"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.","aliases":["GHSA-hwc4-gmrw-5222","GO-2026-5443"],"modified":"2026-08-21T03:46:46.428269209Z","published":"2026-08-19T14:35:06.966Z","related":["openSUSE-SU-2026:21483-1"],"database_specific":{"cwe_ids":["CWE-22"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/44xxx/CVE-2026-44829.json","cna_assigner":"GitHub_M"},"references":[{"type":"WEB","url":"https://github.com/gotenberg/gotenberg/releases/tag/v8.33.0"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/44xxx/CVE-2026-44829.json"},{"type":"ADVISORY","url":"https://github.com/gotenberg/gotenberg/security/advisories/GHSA-hwc4-gmrw-5222"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-44829"},{"type":"REPORT","url":"https://github.com/gotenberg/gotenberg/issues/662"},{"type":"FIX","url":"https://github.com/gotenberg/gotenberg/commit/93d0103585372433e18b351bb16edf4c383932d3"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/gotenberg/gotenberg","events":[{"introduced":"0"},{"fixed":"93d0103585372433e18b351bb16edf4c383932d3"},{"fixed":"190cad0ee254974f8b14b32b29b712146d29ccfb"}],"database_specific":{"source":["AFFECTED_FIELD","REFERENCES"],"extracted_events":[{"introduced":"0"},{"fixed":"8.33.0"}]}}],"versions":["v8.32.0","v8.31.0","v8.30.1","v8.30.0","v8.29.1","v8.29.0","v8.28.0","v8.27.0","v8.26.0","v8.25.1","v8.25.0","v8.24.0","v8.23.2","v8.23.1","v8.23.0","v8.22.0","v8.21.1","v8.21.0","v8.20.1","v8.20.0","v8.19.1","v8.19.0","v8.18.0","v8.17.3","v8.17.2","v8.17.1","v8.17.0","v8.16.0","v8.15.3","v8.15.2","v8.15.1","v8.15.0","v8.14.1","v8.14.0","v8.13.0","v8.12.0","v8.11.1","v8.11.0","v8.10.0","v8.9.2","v8.9.1","v8.9.0","v8.8.1","v8.8.0","v8.7.0","v8.6.0","v8.5.1","v8.5.0","v8.4.0","v8.3.0","v8.2.2","v8.2.1","v8.2.0","v8.1.0","v8.0.3","v8.0.2","v8.0.1","v8.0.0","v7.10.1","v7.10.0","v7.9.2","v7.9.1","v7.9.0","v7.8.3","v7.8.2","v7.8.1","v7.8.0","v7.7.2","v7.7.1","v7.7.0","v7.6.2","v7.6.1","v7.6.0","v7.5.4","v7.5.3","v7.5.2","v7.5.1","v7.5.0","v7.4.3","v7.4.2","v7.4.1","v7.4.0","v7.3.1","v7.3.0","v7.2.0","v7.1.1","v7.1.0","v7.0.7","v7.0.6","v7.0.5","v7.0.4","v7.0.3","v7.0.2","v7.0.1","v7.0.0","6.4.4","6.4.3","6.4.2","6.4.1","6.4.0","6.3.1","6.3.0","6.2.1","6.2.0","6.1.2","6.1.1","6.1.0","6.0.4","6.0.3","6.0.2","6.0.1","6.0.0","5.1.0","5.0.2","5.0.1","5.0.0","4.4.0","4.3.0","4.2.0","4.1.0","4.0.0","3.2.0","3.1.2","3.1.1","3.1.0","3.0.2","3.0.1","3.0.0","2.0.0","1.0.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-44829.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:H/A:L"}]}