Skip to content
Heist/ feed
Back to feed
Medium

Gotenberg: Arbitrary PDF read via stampExpression and watermarkExpression in merge, split, and convert routes

Type: advisorySources: OSV

Gotenberg is a Docker-powered stateless API for PDF files. Prior to 8.32.0, pdfengines/merge, pdfengines/split, libreoffice/convert, chromium/convert/url, chromium/convert/html, and chromium/convert/markdown accept stampSource=pdf + stampExpression=/path and watermarkSource=pdf + watermarkExpression=/path from anonymous callers. The dedicated stamp/watermark routes require an uploaded file when the source type is image or pdf; these six routes only overwrite the expression when a file is uploaded, leaving the user-controlled path intact when no file is attached. pdfcpu opens the path and composites its pages onto the output PDF, which returns to the caller. An attacker reads any PDF the Gotenberg process can access on the container filesystem. This vulnerability is fixed in 8.32.0.

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

Source evidence

Gotenberg: Arbitrary PDF read via stampExpression and watermarkExpression in merge, split, and convert routes

core-osv · Original source

Published 14 May 2026, 15:31 UTC

Gotenberg is a Docker-powered stateless API for PDF files. Prior to 8.32.0, pdfengines/merge, pdfengines/split, libreoffice/convert, chromium/convert/url, chromium/convert/html, and chromium/convert/markdown accept stampSource=pdf + stampExpression=/path and watermarkSource=pdf + watermarkExpression=/path from anonymous callers. The dedicated stamp/watermark routes require an uploaded file when the source type is image or pdf; these six routes only overwrite the expression when a file is uploaded, leaving the user-controlled path intact when no file is attached. pdfcpu opens the path and composites its pages onto the output PDF, which returns to the caller. An attacker reads any PDF the Gotenberg process can access on the container filesystem. This vulnerability is fixed in 8.32.0.

osv:CVE-2026-42593
Complete source record
{
  "id": "681efdae750df2cc877586ced64ef5eab7efc0a6705c51139d4c0376324bb993",
  "url": "https://osv.dev/vulnerability/CVE-2026-42593",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Gotenberg: Arbitrary PDF read via stampExpression and watermarkExpression in merge, split, and convert routes",
    "summary": "Gotenberg is a Docker-powered stateless API for PDF files. Prior to 8.32.0, pdfengines/merge, pdfengines/split, libreoffice/convert, chromium/convert/url, chromium/convert/html, and chromium/convert/markdown accept stampSource=pdf + stampExpression=/path and watermarkSource=pdf + watermarkExpression=/path from anonymous callers. The dedicated stamp/watermark routes require an uploaded file when the source type is image or pdf; these six routes only overwrite the expression when a file is uploaded, leaving the user-controlled path intact when no file is attached. pdfcpu opens the path and composites its pages onto the output PDF, which returns to the caller. An attacker reads any PDF the Gotenberg process can access on the container filesystem. This vulnerability is fixed in 8.32.0.",
    "evidence": "osv:CVE-2026-42593",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2026-42593",
      "aliases": [
        "CVE-2026-42593",
        "GHSA-3cv5-q585-h563",
        "GO-2026-5080"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/gotenberg/gotenberg",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "fe1b0020b8f211575559e6cf7e5ef6cc5a0545ca"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "8.32.0"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "cpe": "cpe:2.3:a:thecodingmachine:gotenberg:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "8.32.0"
                      }
                    ],
                    "source": "CPE_RANGE"
                  }
                ]
              }
            }
          ],
          "versions": [
            "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-42593.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:26.484466922Z",
      "provider": "osv",
      "references": [
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/42xxx/CVE-2026-42593.json",
        "https://github.com/gotenberg/gotenberg/security/advisories/GHSA-3cv5-q585-h563",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-42593"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-22",
          "CWE-73"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/42xxx/CVE-2026-42593.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-42593",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 492927,
  "published_at": "2026-05-14T15:31:27.284+00:00"
}