Vulnerability Details CVE-2026-42590
Gotenberg is a Docker-powered stateless API for PDF files. Prior to 8.30.0, The ExifTool metadata write blocklist in Gotenberg can be bypassed using ExifTool's group-prefix syntax, enabling arbitrary file rename, move, hardlink, and symlink creation on the server. 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. This vulnerability is fixed in 8.30.0.
Exploit prediction scoring system (EPSS) score
EPSS Score 0.001
EPSS Ranking 21.3%
CVSS Severity
CVSS v3 Score 8.2
Products affected by CVE-2026-42590
-
cpe:2.3:a:thecodingmachine:gotenberg:3.0.0
-
cpe:2.3:a:thecodingmachine:gotenberg:3.0.1
-
cpe:2.3:a:thecodingmachine:gotenberg:3.0.2
-
cpe:2.3:a:thecodingmachine:gotenberg:3.1.0
-
cpe:2.3:a:thecodingmachine:gotenberg:3.1.1
-
cpe:2.3:a:thecodingmachine:gotenberg:3.1.2
-
cpe:2.3:a:thecodingmachine:gotenberg:3.2.0
-
cpe:2.3:a:thecodingmachine:gotenberg:4.0.0
-
cpe:2.3:a:thecodingmachine:gotenberg:4.1.0
-
cpe:2.3:a:thecodingmachine:gotenberg:4.2.0
-
cpe:2.3:a:thecodingmachine:gotenberg:4.2.1
-
cpe:2.3:a:thecodingmachine:gotenberg:4.3.0
-
cpe:2.3:a:thecodingmachine:gotenberg:4.4.0
-
cpe:2.3:a:thecodingmachine:gotenberg:5.0.0
-
cpe:2.3:a:thecodingmachine:gotenberg:5.0.1
-
cpe:2.3:a:thecodingmachine:gotenberg:5.0.2
-
cpe:2.3:a:thecodingmachine:gotenberg:5.1.0
-
cpe:2.3:a:thecodingmachine:gotenberg:6.0.0
-
cpe:2.3:a:thecodingmachine:gotenberg:6.0.1
-
cpe:2.3:a:thecodingmachine:gotenberg:6.0.2
-
cpe:2.3:a:thecodingmachine:gotenberg:6.0.3
-
cpe:2.3:a:thecodingmachine:gotenberg:6.0.4
-
cpe:2.3:a:thecodingmachine:gotenberg:6.1.0
-
cpe:2.3:a:thecodingmachine:gotenberg:6.1.1
-
cpe:2.3:a:thecodingmachine:gotenberg:6.1.2
-
cpe:2.3:a:thecodingmachine:gotenberg:6.2.0
-
cpe:2.3:a:thecodingmachine:gotenberg:6.2.1
-
cpe:2.3:a:thecodingmachine:gotenberg:6.3.0
-
cpe:2.3:a:thecodingmachine:gotenberg:6.3.1
-
cpe:2.3:a:thecodingmachine:gotenberg:6.4.0
-
cpe:2.3:a:thecodingmachine:gotenberg:6.4.1
-
cpe:2.3:a:thecodingmachine:gotenberg:6.4.2
-
cpe:2.3:a:thecodingmachine:gotenberg:6.4.3
-
cpe:2.3:a:thecodingmachine:gotenberg:6.4.4
-
cpe:2.3:a:thecodingmachine:gotenberg:7.0.0
-
cpe:2.3:a:thecodingmachine:gotenberg:7.0.1
-
cpe:2.3:a:thecodingmachine:gotenberg:7.0.2
-
cpe:2.3:a:thecodingmachine:gotenberg:7.0.3
-
cpe:2.3:a:thecodingmachine:gotenberg:7.0.4
-
cpe:2.3:a:thecodingmachine:gotenberg:7.0.5
-
cpe:2.3:a:thecodingmachine:gotenberg:7.0.6
-
cpe:2.3:a:thecodingmachine:gotenberg:7.0.7
-
cpe:2.3:a:thecodingmachine:gotenberg:7.1.0
-
cpe:2.3:a:thecodingmachine:gotenberg:7.1.1
-
cpe:2.3:a:thecodingmachine:gotenberg:7.10.0
-
cpe:2.3:a:thecodingmachine:gotenberg:7.10.1
-
cpe:2.3:a:thecodingmachine:gotenberg:7.10.2
-
cpe:2.3:a:thecodingmachine:gotenberg:7.2.0
-
cpe:2.3:a:thecodingmachine:gotenberg:7.3.0
-
cpe:2.3:a:thecodingmachine:gotenberg:7.3.1
-
cpe:2.3:a:thecodingmachine:gotenberg:7.4.0
-
cpe:2.3:a:thecodingmachine:gotenberg:7.4.1
-
cpe:2.3:a:thecodingmachine:gotenberg:7.4.2
-
cpe:2.3:a:thecodingmachine:gotenberg:7.4.3
-
cpe:2.3:a:thecodingmachine:gotenberg:7.5.0
-
cpe:2.3:a:thecodingmachine:gotenberg:7.5.1
-
cpe:2.3:a:thecodingmachine:gotenberg:7.5.2
-
cpe:2.3:a:thecodingmachine:gotenberg:7.5.3
-
cpe:2.3:a:thecodingmachine:gotenberg:7.5.4
-
cpe:2.3:a:thecodingmachine:gotenberg:7.6.0
-
cpe:2.3:a:thecodingmachine:gotenberg:7.6.1
-
cpe:2.3:a:thecodingmachine:gotenberg:7.6.2
-
cpe:2.3:a:thecodingmachine:gotenberg:7.7.0
-
cpe:2.3:a:thecodingmachine:gotenberg:7.7.1
-
cpe:2.3:a:thecodingmachine:gotenberg:7.7.2
-
cpe:2.3:a:thecodingmachine:gotenberg:7.8.0
-
cpe:2.3:a:thecodingmachine:gotenberg:7.8.1
-
cpe:2.3:a:thecodingmachine:gotenberg:7.8.2
-
cpe:2.3:a:thecodingmachine:gotenberg:7.8.3
-
cpe:2.3:a:thecodingmachine:gotenberg:7.9.0
-
cpe:2.3:a:thecodingmachine:gotenberg:7.9.1
-
cpe:2.3:a:thecodingmachine:gotenberg:7.9.2
-
cpe:2.3:a:thecodingmachine:gotenberg:8.0.0
-
cpe:2.3:a:thecodingmachine:gotenberg:8.0.1
-
cpe:2.3:a:thecodingmachine:gotenberg:8.0.2
-
cpe:2.3:a:thecodingmachine:gotenberg:8.0.3
-
cpe:2.3:a:thecodingmachine:gotenberg:8.1.0
-
cpe:2.3:a:thecodingmachine:gotenberg:8.10.0
-
cpe:2.3:a:thecodingmachine:gotenberg:8.11.0
-
cpe:2.3:a:thecodingmachine:gotenberg:8.11.1
-
cpe:2.3:a:thecodingmachine:gotenberg:8.12.0
-
cpe:2.3:a:thecodingmachine:gotenberg:8.13.0
-
cpe:2.3:a:thecodingmachine:gotenberg:8.14.0
-
cpe:2.3:a:thecodingmachine:gotenberg:8.14.1
-
cpe:2.3:a:thecodingmachine:gotenberg:8.15.0
-
cpe:2.3:a:thecodingmachine:gotenberg:8.15.1
-
cpe:2.3:a:thecodingmachine:gotenberg:8.15.2
-
cpe:2.3:a:thecodingmachine:gotenberg:8.15.3
-
cpe:2.3:a:thecodingmachine:gotenberg:8.16.0
-
cpe:2.3:a:thecodingmachine:gotenberg:8.17.0
-
cpe:2.3:a:thecodingmachine:gotenberg:8.17.1
-
cpe:2.3:a:thecodingmachine:gotenberg:8.17.2
-
cpe:2.3:a:thecodingmachine:gotenberg:8.17.3
-
cpe:2.3:a:thecodingmachine:gotenberg:8.18.0
-
cpe:2.3:a:thecodingmachine:gotenberg:8.19.0
-
cpe:2.3:a:thecodingmachine:gotenberg:8.19.1
-
cpe:2.3:a:thecodingmachine:gotenberg:8.2.0
-
cpe:2.3:a:thecodingmachine:gotenberg:8.2.1
-
cpe:2.3:a:thecodingmachine:gotenberg:8.2.2
-
cpe:2.3:a:thecodingmachine:gotenberg:8.20.0
-
cpe:2.3:a:thecodingmachine:gotenberg:8.20.1
-
cpe:2.3:a:thecodingmachine:gotenberg:8.21.0
-
cpe:2.3:a:thecodingmachine:gotenberg:8.21.1
-
cpe:2.3:a:thecodingmachine:gotenberg:8.22.0
-
cpe:2.3:a:thecodingmachine:gotenberg:8.23.0
-
cpe:2.3:a:thecodingmachine:gotenberg:8.23.1
-
cpe:2.3:a:thecodingmachine:gotenberg:8.23.2
-
cpe:2.3:a:thecodingmachine:gotenberg:8.24.0
-
cpe:2.3:a:thecodingmachine:gotenberg:8.25.0
-
cpe:2.3:a:thecodingmachine:gotenberg:8.25.1
-
cpe:2.3:a:thecodingmachine:gotenberg:8.26.0
-
cpe:2.3:a:thecodingmachine:gotenberg:8.27.0
-
cpe:2.3:a:thecodingmachine:gotenberg:8.28.0
-
cpe:2.3:a:thecodingmachine:gotenberg:8.29.0
-
cpe:2.3:a:thecodingmachine:gotenberg:8.29.1
-
cpe:2.3:a:thecodingmachine:gotenberg:8.3.0
-
cpe:2.3:a:thecodingmachine:gotenberg:8.4.0
-
cpe:2.3:a:thecodingmachine:gotenberg:8.5.0
-
cpe:2.3:a:thecodingmachine:gotenberg:8.5.1
-
cpe:2.3:a:thecodingmachine:gotenberg:8.6.0
-
cpe:2.3:a:thecodingmachine:gotenberg:8.7.0
-
cpe:2.3:a:thecodingmachine:gotenberg:8.8.0
-
cpe:2.3:a:thecodingmachine:gotenberg:8.8.1
-
cpe:2.3:a:thecodingmachine:gotenberg:8.9.0
-
cpe:2.3:a:thecodingmachine:gotenberg:8.9.1
-
cpe:2.3:a:thecodingmachine:gotenberg:8.9.2