Impact
The flaw resides in fpdf2’s shared image loader, which automatically dereferences attacker–controlled HTTP(S) URLs and raw local file paths supplied through FPDF.image(), the HTML <img src> attribute used by FPDF.write_html(), SVG <image href> or xlink:href tags, and template image fields. When these functions encounter such values, the library opens the referenced resource without validating its origin. For external URLs the Resulting outbound connections can target any attacker‑chosen service; for local paths the loader attempts to open the file, but only succeeds if the file is a supported image or SVG resource. The vulnerability does not provide direct code execution but can leak sensitive data or supply a vector for further attacks via the data obtained from the external service.
Affected Systems
All releases of the Python PDF creation library ’py‑pdf:fpdf2’ prior to version 2.8.8 are affected. The vulnerability is present in the shared image loader component and thus affects any application that makes use of FPDF.image(), FPDF.write_html(), or the SVG image handling capabilities within fpdf2 before this version.
Risk and Exploitability
The CVSS score of 5.8 places the issue in the moderate severity range. The EPSS score is not available and the vulnerability is not listed in the CISA KEV catalog, indicating it has not yet been widely exploited. The attack vector is inferred to be local or remote, depending on whether the application can accept attacker‑controlled content that is passed to the image loader. Exploitation requires that the attacker be able to supply content that triggers the loader with a malicious URL or file path. While no immediate denial of service or privilege escalation is described, the consequence of allowing arbitrary outbound requests or unintended file reads warrants prompt attention.
OpenCVE Enrichment
Github GHSA