Severity by source
AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
Network-reachable endpoint requires no authentication; scope changes because SSRF crosses into backend infrastructure; confidentiality-only impact with no integrity or availability effect.
Primary rating from Vendor (TuranSec).
CVSS VectorVendor: TuranSec
Lifecycle Timeline
2DescriptionCVE.org
Stirling-PDF's POST /api/v1/convert/url/pdf endpoint (ConvertWebsiteToPDF.java) was not updated with the CustomHtmlSanitizer/SsrfProtectionService SSRF protections that were added to three sibling conversion endpoints (html/pdf, file/pdf, markdown/pdf). The endpoint validates only that the initial requested URL resolves to a public IP, then fetches the page's HTML server-side and hands it, unsanitized, to a WeasyPrint subprocess. Embedded resource references in the fetched HTML (e.g. <img src="http://169.254.169.254/...">) are fetched by WeasyPrint with no per-resource SSRF filtering, allowing an attacker-controlled page to cause the server to retrieve cloud metadata endpoints or internal network resources and leak their contents back into the generated PDF.
AnalysisAI
Server-side request forgery in Stirling-PDF's POST /api/v1/convert/url/pdf endpoint allows unauthenticated remote attackers to exfiltrate cloud metadata and internal network resources by supplying a URL to an attacker-controlled page containing embedded resource references (e.g., img tags targeting 169.254.169.254). The endpoint was deliberately excluded from the SSRF protections applied to three sibling conversion endpoints, creating an uneven security boundary; WeasyPrint, the underlying rendering subprocess, fetches all embedded resources with no per-resource SSRF filtering, causing internal HTTP responses to be embedded verbatim into the returned PDF. No public exploit code or CISA KEV listing has been identified at time of analysis, but the attack requires no authentication and no special configuration, making any network-exposed Stirling-PDF instance a viable target.
Technical ContextAI
Stirling-PDF is an open-source self-hosted PDF manipulation suite built on Java (Spring Boot) and WeasyPrint, a Python-based HTML-to-PDF renderer. The vulnerable component is ConvertWebsiteToPDF.java, which implements the POST /api/v1/convert/url/pdf endpoint. The application added a CustomHtmlSanitizer and SsrfProtectionService to three sibling endpoints (html/pdf, file/pdf, markdown/pdf) but omitted those controls from this endpoint. The initial URL is validated against a public-IP allowlist, but the HTML returned by that URL is passed unsanitized to the WeasyPrint subprocess. WeasyPrint resolves and fetches every embedded resource reference (img src, link href, etc.) server-side during rendering; since these secondary requests bypass Stirling-PDF's SSRF layer entirely, they can reach cloud instance metadata services (AWS IMDSv1 at 169.254.169.254, GCP metadata at 169.254.169.254/computeMetadata/, Azure at 169.254.169.254/metadata/), internal network services, and RFC-1918 addresses. The root cause is CWE-918 (Server-Side Request Forgery): untrusted input controls the destination of server-initiated HTTP requests, and the response content is reflected to the attacker in the generated PDF. The CPE cpe:2.3:a:stirling-tools:stirling-pdf:*:*:*:*:*:* indicates all published versions are affected.
RemediationAI
No vendor-released patch version has been confirmed from the available data; the only reference provided points to the upstream GitHub repository (https://github.com/Stirling-Tools/Stirling-PDF) without identifying a specific fixed release. Operators should monitor that repository for a patch applying CustomHtmlSanitizer and SsrfProtectionService controls to ConvertWebsiteToPDF.java, consistent with the fixes already applied to sibling endpoints. As an immediate compensating control, disable or block access to the POST /api/v1/convert/url/pdf endpoint at the reverse proxy or WAF layer if URL-to-PDF conversion is not required - this eliminates the attack surface with no impact to other conversion features. If the endpoint must remain available, restrict access to authenticated internal users only; Stirling-PDF supports optional login enforcement that, if enabled, would raise the required privilege level and reduce the threat from unauthenticated external attackers, though it would not prevent authenticated insider abuse. Additionally, deploy Stirling-PDF behind egress filtering that blocks outbound HTTP/HTTPS to RFC-1918 ranges and link-local addresses (169.254.0.0/16, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) at the network layer; this mitigates WeasyPrint's secondary resource fetches even if the application-layer SSRF filter is missing, though it may break legitimate use cases involving on-premises resources. On AWS, enforcing IMDSv2 (requiring a PUT-based token exchange) prevents IMDSv1 metadata retrieval via simple GET requests, limiting the blast radius of cloud metadata exfiltration.
More in Stirling Pdf
View allStirling-PDF is a locally hosted web application that performs various operations on PDF files. Rated high severity (CVS
Stirling-PDF is a locally hosted web application that performs various operations on PDF files. Rated high severity (CVS
Stirling-PDF is a locally hosted web application that allows you to perform various operations on PDF files. Rated high
Privilege escalation in Stirling-PDF before 2.9.0 allows any authenticated ROLE_USER to obtain the privileged STIRLING-P
Stirling-PDF, a locally hosted web application for PDF operations, contains a path traversal vulnerability in the /api/v
Stored cross-site scripting in Stirling-PDF prior to version 2.0.0 allows an attacker to embed JavaScript payloads insid
Stirling-PDF versions 2.1.5 through 2.5.1 are vulnerable to resource exhaustion denial of service through the watermark
A vulnerability was found in Stirling-Tools Stirling-PDF up to 0.28.3. Rated low severity (CVSS 2.3), this vulnerability
Stored cross-site scripting in Stirling-PDF's /get-info-on-pdf endpoint allows attacker-controlled JavaScript to execute
Stirling-PDF version 2.7.3 fails to sanitize HTML content from email bodies in the /api/v1/convert/eml/pdf endpoint when
Reflected cross-site scripting (XSS) in Stirling-PDF versions before 2.0.0 allows unauthenticated remote attackers to ex
Stirling-PDF is a locally hosted web application that performs various operations on PDF files. Rated high severity (CVS
Same weakness CWE-918 – Server-Side Request Forgery (SSRF)
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-53355
GHSA-j5rg-wh78-9f2q