提交 #846667: grass 0.13.4 Asymmetric Resource Consumption信息

标题grass 0.13.4 Asymmetric Resource Consumption
描述Grass is a pure-Rust Sass-to-CSS compiler. `grass` implements Sass's nested parent-selector (`&`) and combinator (`+`, `~`, `>`) semantics. When evaluating rulesets that combine multiple parent-selector references inside child blocks separated by adjacent-sibling or general-sibling combinators, the resolver in `grass_compiler::selector::extend` and `grass_compiler::evaluate::visitor` recursively materializes the cross-product of every (parent × child) combinator combination. For adversarial nesting patterns this materialization is super-linear in the number of `&` and combinator tokens, and the per-step Vec allocation overhead is non-trivial. An 85-byte SCSS source is sufficient to drive grass to allocate ~2.5 GiB of memory and spend ~8 seconds of CPU on a single compilation, against a Sass spec where compile time should be linear in input size. The compiler does eventually return `Ok(_)`, but the memory and CPU footprint makes any service that compiles untrusted SCSS trivially DoS-able with sub-100-byte payloads.
来源⚠️ https://github.com/connorskees/grass/issues/117
用户
 Zyz3366 (UID 97230)
提交2026-06-03 04時42分 (1 月前)
管理2026-07-03 20時40分 (1 month later)
状态已接受
VulDB条目376164 [connorskees grass 直到 0.13.4 visitor 拒绝服务]
积分20

Do you know our Splunk app?

Download it now for free!