Executive brief
Gotenberg, a tool used for converting various document formats into PDFs, is vulnerable to a denial-of-service attack. An attacker can send a specially crafted request that causes the service to crash by triggering a race condition during file processing. This results in the service becoming unavailable to users, potentially disrupting automated document workflows.
Technical details
A race condition exists in Gotenberg's `pkg/modules/api/context.go` within the `newContext` function. When processing multipart requests containing multiple `downloadFrom` entries, the application spawns concurrent goroutines to download files. These goroutines attempt to write to shared request context maps (`ctx.files`, `ctx.diskToOriginal`, and `ctx.filesByField`) without proper synchronization. Because Go maps are not thread-safe for concurrent writes, a crafted request can trigger a runtime panic (`fatal error: concurrent map writes`), leading to process termination. This can be exploited by an unauthenticated remote attacker if the default configuration (authentication disabled) is used. The issue is resolved in version 8.33.0.
Affected products
- Gotenberg Gotenberg >= 8.10.0, <= 8.32.0
Timeline
- 2026-05-29: disclosed
- 2026-05-29: advisory
- 2026-05-29: patched: Fixed in version 8.33.0