Read the docs
TI-2026-83327 Aliases CVE-2026-61846

Uncontrolled recursion in Crass CSS parser exhausts stack or memory

Priority LOW 35CWE-674Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
None
Attack complexity
Low
Attack requirements
Present
Impact type
Denial of service
Confidentiality · integrity · availability
None · None · Low
Fix status
Partial Red Hat: 2 without a fix

Attack profile from CVSS 4.0 · CNA. Fix status from CNA, GitHub and Red Hat. Impact type from CWE-674.

Summary

Crass, a Ruby CSS parser, is affected before 1.0.7. Its parser recursively handles CSS simple blocks and functions without a depth limit, a flaw classified as CWE-674. An unauthenticated remote attacker who supplies a CSS value with deeply nested blocks or functions can exhaust the stack, raising SystemStackError, or cause excessive memory usage.

Written with Claude Haiku 5.5 from the sources below · 2026-10-31

Description from the CNA

Crass is a Ruby CSS parser that's fully compliant with the CSS Syntax Level 3 specification. Prior to 1.0.7, Crass recursively parses `CSS simple blocks and functions` without a depth guard. An attacker-controlled CSS value containing deeply nested blocks or functions can recurse until Ruby raises `SystemStackError`: stack level too deep, or cause excessive memory usage. Version 1.0.7 adds a configurable depth limit with a conservative default. This issue is fixed in version 1.0.7.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00486 42nd percentileScored 2026-11-07
Fix Partial crass (rgrove): 1.0.7crass (RubyGems): 1.0.7Red Hat: 2 without a fix

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
Yes
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
rgrovecrassbefore 1.0.71.0.7Patch availableCNA
—crass (RubyGems)before 1.0.71.0.7Patch availableGHSA-6jxj-px6v-747w
  • crass Vendorrgrove Affected before 1.0.7 Fixed in 1.0.7 Patch available CNA
  • crass (RubyGems) Vendor— Affected before 1.0.7 Fixed in 1.0.7 Patch available GHSA-6jxj-px6v-747w

Remediation

Upgrade the Crass RubyGems package to version 1.0.7, which adds a configurable depth limit. Red Hat 3scale API Management Platform 2 and Red Hat Satellite 6 are affected, and Red Hat has no plan available for them.

Written with Claude Haiku 5.5 from the sources below · 2026-10-31

  • Fix · CNA crass (rgrove) Fixed in 1.0.7
  • Fix · GHSA-6jxj-px6v-747w crass (RubyGems) Fixed in 1.0.7 Advisory →

Vendor assessments

Red Hat

Red Hat rating: Moderate. Red Hat's page for this CVE →

ProductStatusPlan or fix
Red Hat 3scale API Management Platform 2AffectedNo fix yet: Fix deferred
Red Hat Satellite 6AffectedNo fix yet: Fix deferred

Timeline

  1. 2026-10-30 Threatist record created from CVE-2026-61846
  2. 2026-10-31 Affected versions changed · Red Hat
  3. 2026-10-31 CVSS score added · Red Hat
  4. 2026-11-01 Priority changed: MEDIUM → LOW
  5. 2026-11-05 CISA SSVC decision points changed

References

  • TI-2026-83291 Large numeric exponents in Crass CSS parser exhaust CPU and memory CVSS 4.0HIGH 8.9
  • TI-2020-03543 Cross-site Scripting in Sanitize CVSS 3.1HIGH 7.3
  • TI-2018-02737 Cross-site scripting in Ryan Grove sanitize CVSS 3.0HIGH 7.5
  • TI-2023-18617 Sanitize vulnerable to Cross-site Scripting via insufficient neutralization of `style` element content CVSS 3.1HIGH 7.1
  • TI-2026-83329 Superlinear CPU use in Crass CSS parser with non-ASCII input CVSS 4.0MEDIUM 6.3
  • TI-2026-83328 Uncontrolled recursion in Crass CSS parser enables denial of service CVSS 4.0MEDIUM 6.3
See all 8 →

Sources