🛡️ CVE-2026-42590 — gotenberg

🟠 CVSS 8.2 — High ✅ No Known Exploit NVD
8.2
CVSS Score
0 Low4 Medium7 High9 Critical10

Description

Gotenberg's ExifTool group-prefix syntax bypasses dangerous-tag blocklist

Summary

The ExifTool metadata write blocklist in Gotenberg v8 can be bypassed using ExifTool's group-prefix syntax, enabling arbitrary file rename, move, hardlink, and symlink creation on the server. This is a bypass of the fix for GHSA-qmwh-9m9c-h36m.

Details

The blocklist in pkg/modules/exiftool/exiftool.go filters four dangerous pseudo-tags (FileName, Directory, HardLink, SymLink) using strings.EqualFold(key, tag). However, ExifTool supports group-prefix syntax where File:FileName is processed identically to FileName -- the prefix is stripped by SetNewValue in Writer.pl before tag matching.

The safeKeyPattern regex (^[a-zA-Z0-9\-_.:]+$) allows colons, so prefixed tag names pass validation. Any prefix works: File:FileName, System:Directory, a:HardLink, etc.

Additionally, FilePermissions, FileUserID, and FileGroupID pseudo-tags are not blocked at all and can modify file attributes without any prefix.

PoC

```bash

# Rename the converted PDF (bypasses FileName blocklist)

curl -F "[email protected]" \

-F 'metadata={"File:FileName":"pwned.pdf"}' \

http://localhost:3000/forms/pdfengines/metadata/write

# Move the file to /tmp (bypasses Directory blocklist)

curl -F "[email protected]" \

-F 'metadata={"File:Directory":"/tmp"}' \

http://localhost:3000/forms/pdfengines/metadata/write

# Create a symlink (bypasses SymLink blocklist)

curl -F "[email protected]" \

-F 'metadata={"File:SymLink":"/tmp/symlink-poc"}' \

http://localhost:3000/forms/pdfengines/metadata/write

# Change file permissions (not blocked at all)

curl -F "[email protected]" \

-F 'metadata={"FilePermissions":"rwxrwxrwx"}' \

http://localhost:3000/forms/pdfengines/metadata/write

```

Impact

Pre-auth (no authentication by default). Attacker can rename, move, or create links to files within the Gotenberg container. In deployments with mounted volumes or non-containerized setups, this enables arbitrary file read via symlink chaining and file overwrite via directory manipulation.

This is a direct bypass of the fix for GHSA-qmwh-9m9c-h36m.

How this vulnerability can be exploited

This issue can be reached over the network, attack complexity is low, an attacker needs no privileges on the target. No user interaction is required. The scope is unchanged, so the impact stays within the vulnerable component. Rated impact: confidentiality none, integrity high, availability low.

Affected software

CVE-2026-42590 is recorded against 4 packages.

  • github.com/gotenberg/gotenberg/v7
  • github.com/gotenberg/gotenberg/v8
  • gotenberg (fixed in 8.30.0)
  • unknown

Timeline and source

Published on 25 June 2026. No public exploit is currently recorded for this entry. Record sourced from NVD.

References

github.com (Advisory)
nvd.nist.gov (Advisory)
github.com (Web)

Details

Severity High
CVSS Score 8.2
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:L
CWE N/A
Public Exploit ✅ No
Source NVD
Published 2026-06-25
Updated 2026-08-12
Modified 2026-06-25
Fix URL N/A

Affected Packages

Software From version Fixed in
github.com/gotenberg/gotenberg/v7
github.com/gotenberg/gotenberg/v8
gotenberg 8.30.0
unknown

Similar Threats

Site Security Check

Is gotenberg part of your stack?

CVE-2026-42590 is rated CVSS 8.2 High. BotEraser scans your installation against known CVE records and tells you whether this vulnerability applies to the versions you actually run.

Scan My Site Free →

No credit card required  ·  Results in minutes

ⓘ Data Notice: The information presented above has been compiled from publicly available internet sources. Boteraser aggregates this data solely for informational purposes and does not independently classify, evaluate, or endorse any findings about the vulnerabilities listed. The accuracy and completeness of this information is the sole responsibility of the original publishers. Boteraser and its operators accept no liability for any decisions made based on this data.