Read the docs
TI-2026-39778 Aliases CVE-2026-55073GHSA-jf6q-chmf-3h3v

WeasyPrint restrictive URL fetcher bypass allows local file read and SSRF

Priority MEDIUM 61CWE-918Published · Updated

Key facts

Attack vector
Local
Privileges required
None
User interaction
None
Attack complexity
Low
Impact type
Information disclosure
Confidentiality · integrity · availability
High · None · None
Fix status
Fixed

Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-918 and the CVSS impact.

Summary

WeasyPrint helps web developers to create PDF documents. Prior to 70.0, server-side applications that configure a restrictive url_fetcher and pass attacker-influenced values to HTML.write_pdf() can have the restriction bypassed through the xmp_metadata or stylesheets options. In weasyprint/pdf/init.py, xmp_metadata calls select_source() without the document url_fetcher, allowing an accessible local file to be read and embedded verbatim in the output PDF. In weasyprint/document.py, stylesheets constructs CSS() without the document url_fetcher, allowing local or internal resource loading and propagating the permissive fetcher through nested CSS imports and url() references. The stylesheets channel applies fetched resources but does not by itself disclose stylesheet comments verbatim. This issue is fixed in version 70.0.

Why it matters now

Exploitation Proof of concept CISA SSVC · not in CISA KEV
EPSS 0.00225 13th percentileScored 2026-11-07
Fix Fixed WeasyPrint (Kozea): 70.0weasyprint (PyPI): 70.0

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
Poc
Automatable
No
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
KozeaWeasyPrintbefore 70.070.0Patch availableCNA
—weasyprint (PyPI)before 70.070.0Patch availableGHSA-jf6q-chmf-3h3v
  • WeasyPrint VendorKozea Affected before 70.0 Fixed in 70.0 Patch available CNA
  • weasyprint (PyPI) Vendor— Affected before 70.0 Fixed in 70.0 Patch available GHSA-jf6q-chmf-3h3v

Remediation

  • Fix · CNA WeasyPrint (Kozea) Fixed in 70.0
  • Fix · GHSA-jf6q-chmf-3h3v weasyprint (PyPI) Fixed in 70.0 Advisory →

Vendor assessments

Red Hat

Red Hat rating: Moderate. Red Hat's page for this CVE →

Not affected: 1 product
  • Red Hat Ansible Automation Platform 2

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-55073
  2. 2026-10-03 Alias added: GHSA-jf6q-chmf-3h3v

References

  • TI-2026-69644 Inefficient path parsing in CairoSVG enables denial of service CVSS 4.0HIGH 8.7
  • TI-2026-24451 CairoSVG vulnerable to Exponential DoS via recursive <use> element amplification CVSS 3.1HIGH 7.5
  • TI-2025-42134 WeasyPrint Vulnerable to Server-Side Request Forgery (SSRF) Protection Bypass via HTTP Redirect CVSS 3.1HIGH 7.5
  • TI-2026-36607 WeasyPrint: CSS Injection via Presentational Hints CVSS 3.1MEDIUM 6.5
  • TI-2023-12296 CairoSVG improperly processes SVG files loaded from external resources CVSS 3.1CRITICAL 9.9
  • TI-2026-68895 WeasyPrint passes EPS images to Ghostscript, risking code execution CVSS 3.1HIGH 8.8
See all 8 →

Sources