Description
Crass is a Ruby CSS parser that's fully compliant with the CSS Syntax Level 3 specification. Prior to 1.0.7, Crass converts `CSS scientific notation` number values with unbounded exponentiation before clamping the result to `Float::MAX`. Applications that use Crass to parse attacker-controlled CSS strings can be forced to spend disproportionate CPU and memory parsing a tiny input, potentially resulting in a crash. This issue is fixed in version 1.0.7.
Published: 2026-10-30
Score: 8.9 High
EPSS: n/a
KEV: No
Impact: Denial of Service
Action: Patch
AI Analysis

Impact

Crass is a Ruby CSS parser that, before version 1.0.7, converted scientific‑notation numeric values using unbounded exponentiation before limiting the result to Float::MAX. An attacker can craft a tiny CSS snippet with a very large exponent that forces the parser to perform an exhaustive calculation, consuming excessive CPU cycles and memory. The result is a denial‑of‑service that can crash the host application. This flaw is identified as a CWE‑789 Resource Exhaustion vulnerability.

Affected Systems

The vulnerability affects the Crass CSS parser maintained by rgrove. Any application that incorporates Crass versions older than 1.0.7 is at risk. This includes Ruby 2.x or 3.x projects that use Crass for parsing attacker‑controlled stylesheets or inline CSS.

Risk and Exploitability

The CVSS score of 8.9 indicates a high‑severity condition, and the vulnerability is considered exploit‑critical from the perspective of impact. EPSS is not available, but the flaw does not rely on privilege escalation or authentication; it can be triggered by any crafted CSS that reaches the parser. The likely attack vector is remote, via web pages, stylesheets, or other input channels that a malicious user can control. Although no KEV listing exists, the high severity and lack of mitigation make it prudent to treat it as a serious threat.

Generated by OpenCVE AI on October 30, 2026 at 19:35 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Crass to version 1.0.7 or later, which includes a fix that limits exponentiation before clamping values.
  • If an upgrade is impossible, sanitize or remove CSS input that contains scientific notation before passing it to the parser, or replace the parser with a safer implementation.
  • Add input validation or a length/resource check to reject CSS declarations with extremely large numeric exponents, addressing the CWE‑789 resource‑exhaustion weakness.

Generated by OpenCVE AI on October 30, 2026 at 19:35 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-6wmf-3r64-vcwv Crass : Large numeric exponents cause CPU and memory denial of service
History

Fri, 30 Oct 2026 20:45:00 +0000

Type Values Removed Values Added
First Time appeared Rgrove
Rgrove crass
Vendors & Products Rgrove
Rgrove crass

Fri, 30 Oct 2026 18:45:00 +0000

Type Values Removed Values Added
Description Crass is a Ruby CSS parser that's fully compliant with the CSS Syntax Level 3 specification. Prior to 1.0.7, Crass converts `CSS scientific notation` number values with unbounded exponentiation before clamping the result to `Float::MAX`. Applications that use Crass to parse attacker-controlled CSS strings can be forced to spend disproportionate CPU and memory parsing a tiny input, potentially resulting in a crash. This issue is fixed in version 1.0.7.
Title Crass: Large numeric exponents cause CPU and memory denial of service
Weaknesses CWE-789
References
Metrics cvssV4_0

{'score': 8.9, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-30T19:41:24.227Z

Reserved: 2026-07-10T20:28:17.513Z

Link: CVE-2026-61845

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Deferred

Published: 2026-10-30T19:18:28.197

Modified: 2026-10-30T20:17:11.263

Link: CVE-2026-61845

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-30T20:30:14Z

Weaknesses
  • CWE-789

    Memory Allocation with Excessive Size Value