Skip to content
Heist/ feed
Back to feed
High

Gotenberg: ExifTool group-prefix syntax bypasses dangerous-tag blocklist

Type: advisorySources: OSV

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.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-42590
Confirmed fixed CVEs
Not specified
Updated in this feed
3 Nov 2026, 18:53 UTC · Revision 1

Source evidence

Gotenberg: ExifTool group-prefix syntax bypasses dangerous-tag blocklist

core-osv · Original source

Published 14 May 2026, 15:36 UTC

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.

osv:CVE-2026-42590
Complete source record
{
  "id": "af3a7c1130d47a9e89bedf0a14e84d67f54f1642a9ecdd3070e0b029df187c2f",
  "url": "https://osv.dev/vulnerability/CVE-2026-42590",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Gotenberg: ExifTool group-prefix syntax bypasses dangerous-tag blocklist",
    "summary": "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.",
    "evidence": "osv:CVE-2026-42590",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-42590",
      "aliases": [
        "CVE-2026-42590",
        "GHSA-7v3r-m9c8-r855",
        "GO-2026-5234"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:L"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/gotenberg/gotenberg",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "a80191a2881184a3529696ebf9cdcd82a0008442"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "8.30.0"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "cpe": "cpe:2.3:a:thecodingmachine:gotenberg:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "8.30.0"
                      }
                    ],
                    "source": "CPE_RANGE"
                  }
                ]
              }
            }
          ],
          "versions": [
            "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-42590.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:31.499228057Z",
      "provider": "osv",
      "references": [
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/42xxx/CVE-2026-42590.json",
        "https://github.com/gotenberg/gotenberg/security/advisories/GHSA-7v3r-m9c8-r855",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-42590"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-184"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/42xxx/CVE-2026-42590.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-42590",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 498576,
  "published_at": "2026-05-14T15:36:30.386+00:00"
}