{"basis":"claimed","id":"CVE-2026-42589","name":"Gotenberg: Unauthenticated RCE via ExifTool Metadata Key Injection","vendorProject":"gotenberg","product":"gotenberg","publishedAt":"2026-05-14","cvss":{"score":9.8,"severity":"CRITICAL","version":"3.1"},"exploited":null,"epss":{"score":0.03013,"percentile":0.87417,"date":"2026-11-02"},"coverage":{"cloudflare":{"status":"none","firstOn":null,"daysToRule":null},"aws":{"status":"none","firstOn":null,"daysToRule":null},"azure":{"status":"none","firstOn":null,"daysToRule":null},"google":{"status":"none","firstOn":null,"daysToRule":null},"fastly":{"status":"no_history","firstOn":null,"daysToRule":null},"f5":{"status":"rule","firstOn":"2026-09-16","daysToRule":125},"akamai":{"status":"no_source","firstOn":null,"daysToRule":null},"crs":{"status":"none","firstOn":null,"daysToRule":null}},"title":"Gotenberg: Unauthenticated RCE via ExifTool Metadata Key Injection","description":"Gotenberg is a Docker-powered stateless API for PDF files. Prior to 8.31.0, Gotenberg's /forms/pdfengines/metadata/write HTTP endpoint accepts a JSON metadata object and passes its keys directly to ExifTool via the go-exiftool library. No validation is performed on key characters. A \\n embedded in a JSON key splits the ExifTool stdin stream into a new argument line, allowing an attacker to inject arbitrary ExifTool flags — including -if, which evaluates Perl expressions. This achieves unauthenticated OS command execution in a single HTTP request. The response is HTTP 200 with a valid PDF, making the attack transparent to basic monitoring. This vulnerability is fixed in 8.31.0.","cwes":["CWE-78"],"vendors":[{"vendor":"cloudflare","status":"none","basis":"claimed","firstOn":null,"firstIsNew":false,"daysToRule":null,"daysAtMost":null,"freePlan":false,"claims":[]},{"vendor":"aws","status":"none","basis":"claimed","firstOn":null,"firstIsNew":false,"daysToRule":null,"daysAtMost":null,"freePlan":false,"claims":[]},{"vendor":"azure","status":"none","basis":"claimed","firstOn":null,"firstIsNew":false,"daysToRule":null,"daysAtMost":null,"freePlan":false,"claims":[]},{"vendor":"google","status":"none","basis":"claimed","firstOn":null,"firstIsNew":false,"daysToRule":null,"daysAtMost":null,"freePlan":false,"claims":[]},{"vendor":"fastly","status":"no_history","basis":"claimed","firstOn":null,"firstIsNew":false,"daysToRule":null,"daysAtMost":null,"freePlan":false,"claims":[]},{"vendor":"f5","status":"rule","basis":"claimed","firstOn":"2026-09-16","firstIsNew":true,"daysToRule":125,"daysAtMost":null,"freePlan":false,"claims":[{"id":"b2e569fbce6b2531700792cd67aea01ea9236873973c36bd663903a73ace2972","cve_id":"CVE-2026-42589","vendor":"f5","product":"Attack signatures","rule_id":"200204090","rule_name":"Gotenberg Unauthenticated Remote Code Execution","change":"new","default_action":null,"published_on":"2026-09-16","source_url":"https://docs.cloud.f5.com/docs-v2/platform/changelogs/security-details-changelog","source_title":"F5 Distributed Cloud attack signatures changelog","excerpt":"Added: signature 200204090 \"Gotenberg Unauthenticated Remote Code Execution\" (Server Side Code Injection, risk High), systems: Other Web Server. References: CVE-2026-42589.","first_seen_at":"2026-11-02T21:00:24.509Z"},{"id":"be2e60da0a5523ea69d9cd2bef2533287b49a6d6ea828a5096d8deada529edf7","cve_id":"CVE-2026-42589","vendor":"f5","product":"Attack signatures","rule_id":"200204090","rule_name":"Gotenberg Unauthenticated Remote Code Execution","change":"updated","default_action":null,"published_on":"2026-10-21","source_url":"https://docs.cloud.f5.com/docs-v2/platform/changelogs/security-details-changelog","source_title":"F5 Distributed Cloud attack signatures changelog","excerpt":"Updated: signature 200204090 \"Gotenberg Unauthenticated Remote Code Execution\" (Server Side Code Injection, risk High), systems: Other Web Server. References: CVE-2026-42589, CVE-2026-40281.","first_seen_at":"2026-11-02T21:00:23.656Z"}]},{"vendor":"akamai","status":"no_source","basis":"claimed","firstOn":null,"firstIsNew":false,"daysToRule":null,"daysAtMost":null,"freePlan":false,"claims":[]},{"vendor":"crs","status":"none","basis":"claimed","firstOn":null,"firstIsNew":false,"daysToRule":null,"daysAtMost":null,"freePlan":false,"claims":[]}],"updatedAt":"2026-11-02T21:16:35.125Z","cvssVector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","ssvc":{"exploitation":"poc","automatable":"yes","technicalImpact":"total"},"measured":[{"engineId":"owasp-crs","engineName":"OWASP Core Rule Set","engineVersion":"4.25.0","runtime":"Coraza v3.8.1","config":"paranoia level 1, anomaly threshold 5, default CRS settings","ranAt":"2026-11-02T13:02:57.000Z","verdict":"passed","templateId":"CVE-2026-42589","templatePath":"http/cves/2026/CVE-2026-42589.yaml","requests":2,"blockedRequests":0,"rules":[],"note":"","requestDetail":[{"method":"GET","path":"/version","status":200,"blocked":false,"rules":[]},{"method":"POST","path":"/forms/pdfengines/metadata/write","status":200,"blocked":false,"rules":[]}]},{"engineId":"owasp-crs","engineName":"OWASP Core Rule Set","engineVersion":"4.25.0","runtime":"Coraza v3.8.1","config":"paranoia level 2, anomaly threshold 5, default CRS settings","ranAt":"2026-11-02T13:03:28.000Z","verdict":"partial","templateId":"CVE-2026-42589","templatePath":"http/cves/2026/CVE-2026-42589.yaml","requests":2,"blockedRequests":1,"rules":["932240","942120","942370","942430"],"note":"","requestDetail":[{"method":"GET","path":"/version","status":200,"blocked":false,"rules":[]},{"method":"POST","path":"/forms/pdfengines/metadata/write","status":403,"blocked":true,"rules":["932240","942120","942370","942430"]}]}],"social":{"total":0,"first_seen":null,"daily":[{"day":"2026-10-21","posts":0},{"day":"2026-10-22","posts":0},{"day":"2026-10-23","posts":0},{"day":"2026-10-24","posts":0},{"day":"2026-10-25","posts":0},{"day":"2026-10-26","posts":0},{"day":"2026-10-27","posts":0},{"day":"2026-10-28","posts":0},{"day":"2026-10-29","posts":0},{"day":"2026-10-30","posts":0},{"day":"2026-10-31","posts":0},{"day":"2026-11-01","posts":0},{"day":"2026-11-02","posts":0},{"day":"2026-11-03","posts":0}],"top_posts":[],"exploit_repositories":[]}}