Open Bug 1973126 (css-nesting-limit) Opened 11 months ago Updated 1 month ago

Consider implementing a CSS nesting limit to prevent stack overflow crashes.

Categories

(Core :: CSS Parsing and Computation, defect, P3)

Unspecified
Windows
defect

Tracking

()

Tracking Status
firefox-esr140 --- affected
firefox139 --- wontfix
firefox140 --- affected
firefox141 --- affected

People

(Reporter: aryx, Unassigned)

References

(Blocks 1 open bug)

Details

(Keywords: crash)

Crash Data

Most of these Firefox 139.0.4 crashes on Windows in a timeframe of less than 2 hours on 2025-06-16, and many of the reports with a page - if information submitted - at https://elevenlabs.io open. Looks like the website change got rolled back.

Emilio: Is this actionable based on the information in the crash reports and without a web page to reproduce?

Crash report: https://crash-stats.mozilla.org/report/index/08941bcb-158c-4252-a993-9b06d0250616

Reason:

EXCEPTION_STACK_OVERFLOW

Top 10 frames:

0  xul.dll  style::color::parsing::parse_color_with(style::parser::ParserContext*, csspar...  servo/components/style/color/parsing.rs:91
1  xul.dll  style::values::specified::color::impl$6::parse_internal::closure$0(style::val...  servo/components/style/values/specified/color.rs:465
1  xul.dll  cssparser::parser::Parser::try_parse(style::values::specified::color::impl$6:...  third_party/rust/cssparser/src/parser.rs:583
1  xul.dll  enum2$<style::values::specified::color::Color>::parse_internal(style::parser:...  servo/components/style/values/specified/color.rs:465
2  xul.dll  style::values::specified::color::impl$5::parse(style::parser::ParserContext*,...  servo/components/style/values/specified/color.rs:442
2  xul.dll  style::values::specified::color::impl$8::parse_quirky::closure$0(style::value...  servo/components/style/values/specified/color.rs:658
2  xul.dll  cssparser::parser::Parser::try_parse(style::values::specified::color::impl$8:...  third_party/rust/cssparser/src/parser.rs:583
2  xul.dll  enum2$<style::values::specified::color::Color>::parse_quirky(style::parser::P...  servo/components/style/values/specified/color.rs:658
2  xul.dll  style::values::specified::color::impl$13::parse(style::parser::ParserContext*...  servo/components/style/values/specified/color.rs:900
2  xul.dll  style::properties::generated::longhands::color::parse(style::parser::ParserCo...  x86_64-pc-windows-msvc/release/build/style-4090dae178813a9d/out/properties.rs:23498
Flags: needinfo?(emilio)

From the stack it seems like they just nested a gazillion rules. We could add an artificial nesting limit or something, and it would prevent the crash, but it would cause incorrect styling.

Severity: -- → S3
Flags: needinfo?(emilio)
Priority: -- → P3
Summary: Crash in [@ stackoverflow | style::color::parsing::parse_color_with] → Consider implementing a CSS nesting limit to prevent stack overflow crashes.
Duplicate of this bug: 2019071
Duplicate of this bug: 2018434
Duplicate of this bug: 2019098
Alias: css-nesting-limit
Duplicate of this bug: 2019096
Duplicate of this bug: 2019107
Duplicate of this bug: 2019101
Duplicate of this bug: 2019102
Duplicate of this bug: 2021250
Duplicate of this bug: 2025860
Duplicate of this bug: 2026423
Duplicate of this bug: 2026422

Copying crash signatures from duplicate bugs.

Crash Signature: [@ stackoverflow | style::color::parsing::parse_color_with] → [@ stackoverflow | style::color::parsing::parse_color_with] [@ style::stylesheets::rule_parser::NestedRuleParser::parse_nested::{{closure}}]

Copying crash signatures from duplicate bugs.

Crash Signature: [@ stackoverflow | style::color::parsing::parse_color_with] [@ style::stylesheets::rule_parser::NestedRuleParser::parse_nested::{{closure}}] → [@ stackoverflow | style::color::parsing::parse_color_with] [@ style::stylesheets::rule_parser::NestedRuleParser::parse_nested::{{closure}}] [@ <style::stylesheets::rule_parser::NestedRuleParser as cssparser::rules_and_declarations::AtRuleParser>::parse_b…
You need to log in before you can comment on or make changes to this bug.