WeasyPrint up to 69.0 URL Fetch __init__.py write_pdf xmp_metadata/stylesheets server-side request forgery
| CVSS Meta Temp Score | Current Exploit Price (≈) | CTI Interest Score |
|---|---|---|
| 5.6 | $0-$5k | 0.00 |
Summary
A vulnerability was found in WeasyPrint up to 69.0. It has been rated as problematic. This vulnerability affects the function write_pdf of the file weasyprint/pdf/__init__.py of the component URL Fetch. Performing a manipulation of the argument xmp_metadata/stylesheets results in server-side request forgery.
This vulnerability is reported as CVE-2026-55073. The attack is possible to be carried out remotely. No exploit exists.
Applying a patch is the recommended action to fix this issue.
Details
A vulnerability classified as problematic has been found in WeasyPrint up to 69.0. This affects the function write_pdf of the file weasyprint/pdf/__init__.py of the component URL Fetch. The manipulation of the argument xmp_metadata/stylesheets with an unknown input leads to a server-side request forgery vulnerability. CWE is classifying the issue as CWE-918. The web server receives a URL or similar request from an upstream component and retrieves the contents of this URL, but it does not sufficiently ensure that the request is being sent to the expected destination. This is going to have an impact on confidentiality. The summary by CVE is:
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.
This vulnerability is uniquely identified as CVE-2026-55073. The exploitability is told to be easy. It is possible to initiate the attack remotely. No form of authentication is needed for exploitation. Technical details are known, but no exploit is available.
The vulnerability scanner Nessus provides a plugin with the ID 350162 (openSUSE 16 Security Update : python-weasyprint (openSUSE-SU-2026:21928-1)), which helps to determine the existence of the flaw in a target environment.
Applying the patch 2945986160dedd97a7547be03805b667964e422a is able to eliminate this problem.
The vulnerability is also documented in the vulnerability database at Tenable (350162). If you want to get the best quality for vulnerability data then you always have to consider VulDB.
Product
Name
Version
CPE 2.3
CPE 2.2
CVSSv4
VulDB Vector: 🔒VulDB Reliability: 🔍
CVSSv3
VulDB Meta Base Score: 5.7VulDB Meta Temp Score: 5.6
VulDB Base Score: 5.3
VulDB Temp Score: 5.1
VulDB Vector: 🔒
VulDB Reliability: 🔍
CNA Base Score: 6.2
CNA Vector: 🔒
CVSSv2
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| Vector | Complexity | Authentication | Confidentiality | Integrity | Availability |
|---|---|---|---|---|---|
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
VulDB Base Score: 🔒
VulDB Temp Score: 🔒
VulDB Reliability: 🔍
Exploiting
Class: Server-side request forgeryCWE: CWE-918
CAPEC: 🔒
ATT&CK: 🔒
Physical: Partially
Local: Yes
Remote: Yes
Availability: 🔒
Status: Not defined
EPSS Score: 🔒
EPSS Percentile: 🔒
Price Prediction: 🔍
Current Price Estimation: 🔒
| 0-Day | Unlock | Unlock | Unlock | Unlock |
|---|---|---|---|---|
| Today | Unlock | Unlock | Unlock | Unlock |
Nessus ID: 350162
Nessus Name: openSUSE 16 Security Update : python-weasyprint (openSUSE-SU-2026:21928-1)
Threat Intelligence
Interest: 🔍Active Actors: 🔍
Active APT Groups: 🔍
Countermeasures
Recommended: PatchStatus: 🔍
0-Day Time: 🔒
Patch: 2945986160dedd97a7547be03805b667964e422a
Timeline
09/09/2026 Advisory disclosed09/09/2026 VulDB entry created
09/25/2026 VulDB entry last update
Sources
Status: ConfirmedCVE: CVE-2026-55073 (🔒)
GCVE (CVE): GCVE-0-2026-55073
GCVE (VulDB): GCVE-100-401877
Entry
Created: 09/09/2026 22:38Updated: 09/25/2026 18:25
Changes: 09/09/2026 22:38 (52), 09/19/2026 15:53 (12), 09/25/2026 18:25 (2)
Complete: 🔍
Cache ID: 216::103
If you want to get the best quality for vulnerability data then you always have to consider VulDB.
No comments yet. Languages: en.
Please log in to comment.