CVE-2026-55555
PoC massFile existence oracle in Dompdf via CSS @font-face reveals local server files
Dompdf, a PHP HTML-to-PDF converter library, versions 3.15 and earlier, suffers from an observable-discrepancy flaw (CWE-203) that lets an attacker determine whether arbitrary files exist on the server. An attacker who can inject unsanitized HTML into a PDF-generation request embeds CSS @font-face rules that repeatedly reference local files via file:// URLs: an existing file is re-processed until PHP hits an 'Allowed memory size exhausted' error, while a missing file fails fast and never triggers the memory limit. By observing whether this memory-exhaustion behavior occurs, the attacker can enumerate sensitive local files even where CHROOT restrictions are in place, though the impact is limited to file-existence disclosure (CVSS 4.0: 2.3, low). All deployments of Dompdf 3.15 or earlier whose applications pass attacker-controlled HTML to the library and accept large request payloads are affected. No exploitation in the wild is known (EPSS ~0.4% over 30 days, percentile 29; not in CISA KEV), but a public proof of concept is available in the vendor advisory GHSA-7x2p-4jvh-6384, and the fix is in Dompdf 3.16.
What to do: Upgrade Dompdf to version 3.16 or later. Until then, sanitize or restrict attacker-controlled HTML before PDF generation — especially stripping or limiting file:// references in CSS @font-face — and note that CHROOT alone does not close the oracle, while setting $_dompdf_show_warnings=false and a sane memory_limit raises the bar but does not eliminate the discrepancy. Verify whether your application passes user-supplied HTML to Dompdf; no in-the-wild exploitation is currently known.
| dompdf project dompdf | 3.15 and prior (fixed in 3.16) |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
Dompdf is an HTML to PDF converter for PHP. Versions 3.15 and prior are vulnerable to a File Existence Oracle attack through the manipulation of the CSS @font-face directive. By providing malicious HTML that references local files via the file:// protocol repeatedly, an attacker can trigger PHP memory exhaustion. Because Dompdf behaves differently depending on whether a referenced local file exists (an existing file is processed repeatedly until it triggers an "Allowed memory size exhausted" crash, whereas a missing file fails fast or is ignored and never hits the memory limit), an attacker can use this observable discrepancy as an oracle to enumerate sensitive files on the server regardless of CHROOT restrictions. Exploitation requires the attacker to supply unrestricted or unsanitized HTML in a request that permits large data, plus a configuration where Dompdf's memory limit is low enough to be exhausted (with $_dompdf_show_warnings=true making the overflow easier to reach). This issue has been fixed in version 3.16.
- Vendors
- dompdf project
- Products
- dompdf
- Weakness
- CWE-203
- Vector
- CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
In the news0 stories
No ingested article mentions this CVE yet.