# CVE-2026-116695: Crass CSS parser bad URL tokenizer bypass in sanitizers

Source: https://junglewise.ai/threats/cve-2026-116695-crass-is-a-ruby-css-parser-that-is-compliant-with-the-css-syntax  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-10-27. Updated: 2026-10-27  
License: CC BY 4.0 with a link back

CVE-2026-116695 · Severity: medium · CVSS 4 · Published 2026-10-27

Crass is a Ruby CSS parser used by sanitizers to clean untrusted stylesheets. A tokenizer bug allows attackers to craft malicious CSS that bypasses the sanitizer, exposing browsers to UI redress attacks, external resource loading, or CSS-based data exfiltration. Although script execution is not possible, the vulnerability can trick browsers into applying CSS that should have been blocked.

Technologies: [crass (RubyGems)](https://junglewise.ai/threats/technologies/crass). Vendors: [Ruby](https://junglewise.ai/threats/vendors/ruby), [RubyGems](https://junglewise.ai/threats/vendors/rubygems).

## Quick answers

**Is CVE-2026-116695 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-116695 being exploited in the wild.

**How severe is CVE-2026-116695?** Medium severity, with a CVSS score of 4, published 27 October 2026.

**Which products and versions are affected?** Ruby Crass before 1.0.8; crass (RubyGems) <= 1.0.7, ECOSYSTEM:introduced=0,fixed=1.0.8.

**Is there a fix for CVE-2026-116695?** Yes. crass (RubyGems): upgrade to 1.0.8 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-116695 attacked?** It is attacked over the network, in a software library.

**Am I affected by CVE-2026-116695?** Check whether you run Ruby Crass or crass (RubyGems) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- crass (RubyGems): upgrade to 1.0.8 or later

  ```sh
  bundle update crass
  ```


## Technical details

The vulnerability is a CSS tokenizer bug where a closing parenthesis following an escaped backslash inside a bad URL token is incorrectly treated as escaped, causing the bad URL token to not terminate when it should according to the CSS Syntax Level 3 specification. This allows Crass to consume more input than a compliant browser, permitting CSS sanitizers built on Crass to pass through declarations, style rules, or at-rules that a browser would then apply. The flaw requires parsing untrusted CSS and reserializing it without rejecting bad URL tokens, making it a concern for CSS sanitization libraries.

## Affected products

- Ruby Crass before 1.0.8

## Identifiers

- CVE-2026-116695
- GHSA-pq4g-8rxf-4g29

## Timeline

- 2026-10-21: disclosed
- 2026-10-21: patched

## References

- [https://github.com/rgrove/crass/commit/689fc45c632fdf3803b2f4e844ffc9cca3b08f34](https://github.com/rgrove/crass/commit/689fc45c632fdf3803b2f4e844ffc9cca3b08f34)
- [https://github.com/rgrove/crass/releases/tag/v1.0.8](https://github.com/rgrove/crass/releases/tag/v1.0.8)

## Related threats

- [Crass library non-ASCII character parsing DoS](https://junglewise.ai/threats/cve-2026-61848-crass-non-ascii-characters-cause-superlinear-cpu-consumption)
- [Crass CSS parser stack overflow via excessive comments](https://junglewise.ai/threats/cve-2026-61847-crass-a-large-number-of-adjacent-css-comments-can-trigger-a)
- [Crass CSS parser uncontrolled recursion denial of service](https://junglewise.ai/threats/cve-2026-61846-crass-deeply-nested-css-blocks-and-functions-can-trigger-a)
- [Crass CSS parser denial of service via large numeric exponents](https://junglewise.ai/threats/cve-2026-61845-crass-large-numeric-exponents-cause-cpu-and-memory-denial-of)
