Skip to main content

Crass CVE-2026-61848

| EUVDEUVD-2026-114324 MEDIUM
Uncontrolled Resource Consumption (CWE-400)
2026-10-29 https://github.com/rgrove/crass GHSA-8vfg-2r28-hvhj
6.3
CVSS 4.0 · Vendor: https://github.com/rgrove/crass
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Submit CSS input with many non-ASCII characters
  2. Exploit
    Trigger inefficient multi-byte position tracking in parser
  3. Impact
    Exhaust CPU causing denial of service

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource consumption limits
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that the application passes attacker-controlled input to Crass's CSS tokenizer/parser and that the input contains many non-ASCII (multi-byte) characters - this multi-byte content is the specific trigger named in the advisory. The practical condition is therefore any deployment that parses untrusted or user-supplied CSS with Crass (including indirectly via sanitization libraries that embed it). Limiting factors: impact is confined to availability/CPU with no data exposure; the effect is superlinear degradation rather than a guaranteed crash; and exploitation is only reachable if an untrusted-input parsing path exists, so applications that never feed external input to Crass are not exposed. Authentication requirements not confirmed from available data (no CVSS vector provided).

Impact

No CVSS score or vector, no EPSS probability, and no KEV listing are provided, so quantitative exploitation signals are absent and cannot be compared; the only priority signal is the vuln.today Decision label 'this_month', which places this below act_now/emergency urgency. This is a CWE-400 resource-exhaustion (denial-of-service) flaw in the Crass Ruby CSS parser: impact is limited to availability (CPU consumption), with no confidentiality or integrity consequence, so even a high-CVSS reading would overstate blast radius. The attack is low-complexity and requires no authentication where an untrusted-CSS parsing path is reachable, which raises likelihood, but the effect is superlinear slowdown ('potentially denial of service') rather than a confirmed hard crash, so real-world severity depends on how exposed the parsing path is. No public exploit identified at time of analysis and no evidence of exploitation, so this reads as a genuine but moderate availability issue to patch on a routine ('this_month') cadence rather than an emergency.

Exploit ScenarioDerived

An attacker submits user-generated content - such as CSS in a profile, comment, or document - containing a large run of non-ASCII (multi-byte) characters to an application that parses it with Crass, often indirectly through a CSS sanitization pipeline. Crass's inefficient tracking of multi-byte character positions makes parse time grow superlinearly, so a single crafted input consumes disproportionate CPU and can degrade or deny service. No public exploit identified at time of analysis.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.5% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 29, 2026

Superlinear CPU consumption in Crass versions before 1.0.7 allows attackers who can supply CSS input containing many non-ASCII characters to force excessive parsing time and degrade availability for applications that parse untrusted stylesheets. The issue is a CWE-400 resource-consumption flaw with low availability impact and no confidentiality or integrity effect; no public exploit identified at time of analysis, and no CISA KEV entry is present, while no EPSS score was provided. The vendor fixed it in Crass 1.0.7.

RemediationAI

Vendor-released patch: 1.0.7. Upgrade Crass to 1.0.7 or later; the vendor states this is fixed in Crass 1.0.7, and the patch commit is http://github.com/rgrove/crass/commit/da29664648bf80a97a6439e030a4814291c9afa5. If upgrading is not immediately possible, the vendor workaround is to avoid passing non-ASCII input to Crass, which means rejecting or sanitizing non-ASCII CSS before parsing; this can break legitimate internationalized stylesheets and requires validation at every call path that feeds untrusted CSS into the gem. Advisory: https://github.com/rgrove/crass/security/advisories/GHSA-8vfg-2r28-hvhj.

Affected VersionsENISA

crass < 1.0.7

Affected Packages

rubygems crass fix: 1.0.7

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in rubygems

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Crass is a Ruby CSS parser and tokenizer distributed as the rubygems/crass gem (CPE pkg:rubygems/crass). The CWE-400 root cause is inefficient position tracking for multi-byte characters during tokenization: as the number of non-ASCII characters in the input grows, parsing time increases superlinearly, so an attacker-controlled stylesheet with many such characters can consume disproportionate CPU. The trigger is specifically a large volume of non-ASCII characters in CSS passed to the parser; the advisory does not describe a crash or memory-corruption primitive, and the assessed CVSS:3.1 vector AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L confines impact to availability. Crass 1.0.7 also carries other denial-of-service fixes (GHSA-6wmf-3r64-vcwv, GHSA-6jxj-px6v-747w, GHSA-wwpr-jff3-395c), but CVE-2026-61848 corresponds to GHSA-8vfg-2r28-hvhj.

Know when Ruby gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (https://github.com/rgrove/crass) PRIMARY 6.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:L
vuln.today AI 5.3 MEDIUM

Untrusted CSS is typically supplied remotely with no auth or interaction (AV:N/AC:L/PR:N/UI:N); only availability is affected and the advisory describes superlinear slowdown rather than full outage, so A:L and C:N/I:N.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
Red Hat 5.3 MEDIUM

Primary rating from Vendor (https://github.com/rgrove/crass).

CVSS VectorVendor: https://github.com/rgrove/crass

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
Low

Lifecycle Timeline

1
CVSS changed
Oct 30, 2026 - 19:23 NVD
6.3 (MEDIUM)

DescriptionCVE.org

Impact

When parsing an input containing non-ASCII characters, inefficiencies in how Crass tracks the positions of multi-byte characters result in superlinear parsing time. An attacker-controlled input consisting of many non-ASCII characters could cause excessive CPU consumption and potentially denial of service.

Patches

This is fixed in Crass 1.0.7.

Workarounds

Avoid passing non-ASCII input to Crass. Or cultivate patience.

Threat Intelligence Overview

EPSS Score
0.5%
Top 58% exploitable
Prevalence
Medium
Ruby CSS parser, common transitive dependency in sanitization libraries
Threat Intel
1
1 source
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.5%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact· derived
Medium

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

More in Ruby

View all
CVE-2017-17405 HIGH POC
8.8 Dec 15

Ruby before 2.4.3 allows Net::FTP command injection. Rated high severity (CVSS 8.8), this vulnerability is remotely expl

CVE-2017-17790 CRITICAL POC
9.8 Dec 20

The lazy_initialize function in lib/resolv.rb in Ruby through 2.4.3 uses Kernel#open, which might allow Command Injectio

CVE-2017-14064 CRITICAL POC
9.8 Aug 31

Ruby through 2.2.7, 2.3.x through 2.3.4, and 2.4.x through 2.4.1 can expose arbitrary memory during a JSON.generate call

CVE-2016-2336 CRITICAL POC
9.8 Jan 06

Type confusion exists in two methods of Ruby's WIN32OLE class, ole_invoke and ole_query_interface. Rated critical severi

CVE-2026-77602 CRITICAL POC
9.9 Sep 23

Authenticated remote code execution in OpenC3 COSMOS (Ruby gem 'openc3' versions 5.1.0 through 7.2.1) lets any logged-in

CVE-2016-2337 CRITICAL POC
9.8 Jan 06

Type confusion exists in _cancel_eval Ruby's TclTkIp class method. Rated critical severity (CVSS 9.8), this vulnerabilit

CVE-2016-2339 CRITICAL POC
9.8 Jan 06

An exploitable heap overflow vulnerability exists in the Fiddle::Function.new "initialize" function functionality of Rub

CVE-2017-9225 CRITICAL POC
9.8 May 24

An issue was discovered in Oniguruma 6.2.0, as used in Oniguruma-mod in Ruby through 2.4.1 and mbstring in PHP through 7

CVE-2026-44266 CRITICAL POC
9.8 Nov 03

Ruby code execution in Elo (npm @enspirit/elo) through 1.0.0 lets an attacker who controls Elo source gain arbitrary Rub

CVE-2026-27614 CRITICAL POC
9.3 Feb 25

Stored XSS in Bugsink error tracking tool before 2.0.13 allows unauthenticated attackers to inject persistent scripts th

CVE-2017-0898 CRITICAL POC
9.1 Sep 15

Ruby before 2.4.2, 2.3.5, and 2.2.8 is vulnerable to a malicious format string which contains a precious specifier (*) w

CVE-2013-4164 MEDIUM POC
6.8 Nov 23

Heap-based buffer overflow in Ruby 1.8, 1.9 before 1.9.3-p484, 2.0 before 2.0.0-p353, 2.1 before 2.1.0 preview2, and tru

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy