Dompdf vulnerabilities
6 known CVE vulnerabilities in Dompdf, translated and rated.
- 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-59941High
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.
- 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.

