CVE Catalog

CVE-2026-49452

MediumCVSS 6.5
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.37%

30th percentile - higher than 30% of all known CVEs

Summary

WeasyPrint before 69.0 embeds unescaped HTML presentational-hint attribute values into CSS in weasyprint/css/__init__.py when presentational_hints=True. The background attribute is inserted into a background-image:url() declaration and parsed by tinycss2.parse_blocks_contents(), allowing untrusted HTML to inject additional CSS declarations. Applications that render untrusted HTML with presentational hints enabled can be affected by CSS injection and server-side requests through injected url() values.

Risk Assessment

An attacker can inject CSS or trigger server-side requests, potentially leading to data leakage or using the server as a proxy.

Recommendation

Update WeasyPrint to version 69.0 or later.

Other vulnerabilities in WeasyPrint

See all
Original NVD description (English source)

WeasyPrint helps web developers to create PDF documents. Prior to 69.0, WeasyPrint embeds unescaped HTML presentational-hint attribute values into CSS in weasyprint/css/__init__.py when presentational_hints=True. The background attribute is inserted into a background-image:url() declaration and parsed by tinycss2.parse_blocks_contents(), allowing untrusted HTML to inject additional CSS declarations. Applications that render untrusted HTML with presentational hints enabled can be affected by CSS injection and server-side requests through injected url() values. This issue is fixed in version 69.0.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS