CVE-2026-59941
HighCVSS 7.5Exploitation Probability (EPSS)
Low risk41th percentile - higher than 41% of all known CVEs
Summary
In Dompdf versions 3.15 and prior, a BMP image is accepted and a PDF-compatible PNG is generated based only on its declared header dimensions, without bounding width × height before conversion via GD. A small BMP (58 bytes) with a header declaring e.g. 6000×6000 causes full pixel canvas allocation, leading to significant memory amplification (up to 12x). This issue is fixed in version 3.16.
Risk Assessment
An unauthenticated attacker can repeatedly send small HTTP requests, causing high memory and CPU load on the server, potentially leading to DoS or resource exhaustion.
Recommendation
Update Dompdf to version 3.16 or later.
Other vulnerabilities in Dompdf
See all- CVE-2026-59943Medium
In Dompdf versions 3.15 and prior, if an attacker can supply unrestricted content for rendering, they can utilize SVG rendering to leak filesystem information. Using an <image> element inside a data-URI embedded SVG, an attacker can attempt to embed other files. The difference in behavior when accessing existing vs. non-existing files enables information disclosure. This issue is fixed in version 3.16.
- CVE-2026-59942High
In Dompdf versions 3.15 and prior, there is a Denial of Service (DoS) vulnerability via resource exhaustion. An attacker can submit a specially crafted HTML document with a single image of massive dimensions (e.g., 30,000x30,000 pixels), causing large memory and CPU allocation. This issue is fixed in version 3.16.
- CVE-2026-56722Medium
Dompdf versions 3.15 and earlier allow an attacker controlling HTML input to bypass restrictions by embedding a file path in an SVG image delivered via data: URI. During SVG processing, the second pass does not enforce the same protections as the first, leading to arbitrary image file reads from the server's filesystem.
- CVE-2026-55555High
Dompdf versions 3.15 and prior are vulnerable to a File Existence Oracle attack via manipulation of the CSS @font-face directive. An attacker can exploit the difference in behavior when referencing existing vs. non-existing local files (via file:// protocol) as an oracle to enumerate files on the server, even with CHROOT restrictions. This issue has been fixed in version 3.16.
- CVE-2026-55554High
In Dompdf versions 3.15 and prior, the validateLocalUri() method enforces CHROOT boundaries via a prefix check after path normalization. Because normalization strips the trailing directory separator, the check can be bypassed (e.g., /var/www also matches /var/www2). An attacker controlling part of the rendered HTML can read files outside the allowed directory. This issue has been fixed in version 3.16.
Original NVD description (English source)
Dompdf is an HTML to PDF converter for PHP. Versions 3.15 and prior accept a BMP image and generates a PDF-compatible PNG based only on its declared header dimensions and never bounds width × height before the image is converted through GD. A 58-byte BMP whose header declares e.g. 6000×6000 is accepted and later drives imagecreatetruecolor($width, $height) (and PHP's native BMP decoder) to allocate the full pixel canvas. A payload can fit in a single HTTP request: the BMP can be inlined as a data:image/bmp;base64,… URI inside attacker-controlled HTML, so no upload, no remote fetch, and no chroot-reachable file is required. I measured a 169-byte request driving a dompdf render to ~412 MB peak RSS and ~4.8 s of CPU/wall time, versus ~34 MB for an identically-sized benign request — roughly a 12× memory amplification per request, repeatable and unauthenticated. This issue has been fixed in version 3.16.

