CVE-2026-68523: Fulgur: Unbounded page slicing from attacker-controlled CSS height causes denial of service
fulgur converts untrusted HTML/CSS into PDF, commonly on a server that
processes input supplied by many tenants. In versions prior to 0.19.0, a
body-direct child whose CSS-resolved height greatly exceeds the page height was
sliced into one fragment per page with no upper bound.
The height is taken directly from attacker-controlled HTML/CSS (height, vh
units), so a few bytes such as:
<div style="height:99999999px"></div>
forced on the order of 125,000 page fragments. The pagination code then
allocates vec![Vec::new(); page_count] and runs a per-page render loop,
resulting in CPU and memory exhaustion. A non-finite height (one that resolves
to +inf) additionally made the slicing loop’s remaining -= last_slice_h
decrement never terminate, causing an infinite loop.
An attacker able to submit HTML/CSS to a fulgur-based conversion service can trigger this with a trivially small payload, denying service to the host and any co-tenants.
References
Code Behaviors & Features
Detect and mitigate CVE-2026-68523 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →