
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-68523 is a denial-of-service vulnerability in fulgur, a Rust crate that converts untrusted HTML/CSS into PDF. In versions prior to 0.19.0, a body-direct child element whose CSS-resolved height greatly exceeds the page height is sliced into one fragment per page with no upper bound, enabling CPU and memory exhaustion via a trivially small payload. A non-finite height (resolving to +inf) additionally causes an infinite loop in the pagination code. The vulnerability affects all fulgur (fulgur-rs) releases before 0.19.0 and carries a CVSS v3.1 base score of 7.5 (High) (GitHub Advisory, GHSA).
The root cause is twofold: uncontrolled resource consumption (CWE-400) and a loop with an unreachable exit condition (CWE-835). In pagination_layout.rs, the page-slicing loop for body-direct children derives child_h directly from attacker-controlled CSS properties (height, vh units) without any upper bound on the resulting page count. A payload such as a <div> with height:99999999px forces approximately 125,000 page fragments; downstream code in render.rs then allocates vec![Vec::new(); page_count] and runs a per-page render loop, exhausting CPU and memory. When the CSS height resolves to +inf (e.g., via certain non-finite values), the decrement remaining -= last_slice_h never converges, producing a true infinite loop. A secondary attack path exists via position:absolute elements with large top offsets, which can similarly drive page counts into the hundreds of thousands through append_position_absolute_body_direct_fragments (GitHub Advisory, Fix PR #501).
Successful exploitation causes complete availability loss for the affected fulgur-based conversion service through CPU and memory exhaustion. Because fulgur is commonly deployed as a multi-tenant server-side PDF rendering service, a single attacker-controlled HTML submission can deny service to all co-tenants on the same host. There is no confidentiality or integrity impact; the vulnerability is purely an availability issue (GitHub Advisory).
No public proof-of-concept exploit code or in-the-wild exploitation has been reported. The EPSS score is 0.0, and the vulnerability is not listed in the CISA Known Exploited Vulnerabilities catalog. However, exploitation requires no authentication, no user interaction, and only a few bytes of crafted HTML/CSS input, making it trivially easy for any tenant with HTML submission access to trigger (GitHub Advisory, Feedly).
fulgur Rust crate (version < 0.19.0) to render PDFs server-side.<html><body><div style="height:99999999px"></div></body></html>Alternatively, use a non-finite height to trigger an infinite loop:<html><body><div style="height:calc(infinity * 1px)"></div></body></html>render.rs allocates a vector of that size and enters a per-page render loop, consuming all available CPU and memory.log::warn! messages about page count truncation (indicating a capped but attempted DoS payload).height or vh CSS values on body-level elements; unusually small request payloads (a few bytes) associated with service hangs./var/log/kern.log, dmesg) indicating the fulgur process was killed due to memory exhaustion.Upgrade fulgur to version 0.19.0 or later, which introduces a MAX_PAGES cap (set to 100,000) that bounds the page-slicing loop even for +inf heights, and sanitizes non-finite layout heights to 0.0 so they cannot drive the loop. If an immediate upgrade is not possible, validate or constrain untrusted CSS before passing HTML to fulgur — specifically, reject or clamp height and vh values on body-level elements to reasonable page-proportional limits. The absolute-positioning attack path (large top offsets) is also fixed in 0.19.0 by clamping first_page/last_page in the page-extension branch (GitHub Advisory, Fix PR #501).
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."