---
id: "CVE-2026-114609"
kind: "vulnerability"
aliases: ["CVE-2026-114609"]
title: "fpdf2: image loader fetches attacker-chosen URLs and local paths"
severity: "medium"
cvss: 5.8
epss: 0.00252
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["fpdf2", "package", "python", "self-hosted"]
not_affected_if: ["fixed-image-paths", "static-images-only"]
published_at: "2026-10-22T18:17:28+00:00"
first_seen_at: "2026-10-23T21:57:31+00:00"
updated_at: "2026-10-25T04:09:57+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-114609", "first_seen_at": "2026-10-23T21:57:31+00:00"}, {"source": "epss", "url": "https://api.first.org/data/v1/epss?cve=CVE-2026-114609", "first_seen_at": "2026-10-24T07:15:51+00:00"}]
---

# fpdf2: image loader fetches attacker-chosen URLs and local paths

fpdf2, a Python PDF library, automatically fetches HTTP(S) URLs and opens raw local paths passed as image sources, including in HTML img tags and SVG image references. An attacker who controls those inputs can make the server send requests to internal or external services and read local files that happen to be valid images or SVGs.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Run `pip show fpdf2` and check whether the version is below `2.8.8`
- Search application code for `FPDF.image(`, `write_html(` and template image fields that take user-supplied sources

## Fix

- Upgrade fpdf2 to `2.8.8` or later with `pip install --upgrade fpdf2`
- Until upgraded, do not pass user-controlled strings as image sources

## Timeline

- 2026-10-23T21:57:31+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-114609
- 2026-10-24T07:15:51+00:00 epss https://api.first.org/data/v1/epss?cve=CVE-2026-114609

## From the sources

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.write_html() 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.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
