CVE-2026-114609: fpdf2 implicitly loads external URLs and local image paths when rendering attacker-controlled content
fpdf2 is a PDF creation library for Python. Prior to 2.8.8, fpdf2's shared image loader automatically dereferences attacker-controlled HTTP(S) URLs and raw local paths supplied through FPDF.image(), FPDF.writehtml() HTML <img src> values, SVG <image href> or xlink:href values, and template image fields. This can cause outbound requests to attacker-selected internal or external services and local file open attempts, although local content is exposed only when it is a valid supported image or SVG resource. file:// URLs are not specially handled, so the local-path case requires a raw filesystem path. This issue is fixed in version 2.8.8.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
fpdf2to a version that resolves this vulnerability.Fixed in 2.8.8
Event History
Frequently Asked Questions
Which application workflows are exposed?
Workflows that render attacker-controlled values through FPDF.image(), write_html() image src attributes, SVG image href or xlink:href attributes, or template image fields are exposed. The affected loader can fetch HTTP(S) destinations or attempt to open raw local filesystem paths.
What does an attacker need to exploit this?
An attacker needs to control an image reference supplied to one of the affected rendering paths. No authentication or user interaction is required according to the reported vector.
Are file:// URLs a way to access local files?
No. file:// URLs are not specially handled; local file access attempts require a raw filesystem path. Local content is only exposed when the referenced file is a valid supported image or SVG resource.
What is the remediation?
Upgrade fpdf2 to version 2.8.8, which fixes the issue. If upgrading is not immediately possible, avoid passing untrusted image references into the affected APIs and restrict them to approved local resources.