crass
A Ruby CSS parser that's fully compliant with the CSS Syntax Level 3 specification.
Activity
- Latest release
- 1w ago
- Total releases
- 14
- Cadence
- ~4 months
- Last 12 months
- 2
Reach
- Downloads
- 632.0M
- Stars
- 160
Details
- License
- MIT
- First release
- Sep 28, 2013
| Version | Released | |
|---|---|---|
1.0.8
patch
| ||
1.0.7
patch
1 CVE
CVE-2026-116695
GHSA-pq4g-8rxf-4g29
Oct 28, 2026
Crass: Incorrect tokenization of bad URLs enables CSS sanitizer bypass
Medium
Network
Low
None
SummaryCrass's tokenizer didn't terminate a bad URL token at a DetailsWhile consuming the remnants of a bad URL (CSS Syntax Level 3, §4.3.15), Crass checked whether the previously consumed code point and the next code point formed a valid escape, in addition to checking the next two unconsumed code points. After an escaped backslash, the previously consumed code point is a backslash, so a following Browsers terminate the bad URL at that This bug has existed in every released version of Crass. ImpactCrass by itself only mis-tokenizes input. The security impact is on CSS sanitizers that use Crass to make allow/deny decisions and then re-serialize the CSS. Exploitation requires a sanitizer that doesn't reject bad URL tokens wherever they occur. Confirmed examples (verified in Chromium against the sanitizers' output):
Smuggled CSS can be used for UI redress (clickjacking or phishing overlays), loading attacker-controlled external resources, and, where rules or PatchesFixed in Crass 1.0.8. Users of Sanitize, Loofah, rails-html-sanitizer, or any other library that uses Crass to sanitize CSS should upgrade Crass to 1.0.8 or later. WorkaroundsThere are no practical workarounds other than upgrading. Rejecting any CSS input that contains the character sequence References
Affected versions
0.0.1
0.0.2
0.1.0
0.2.0
0.2.1
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
+ 1 more Show less
1.0.7
Fixed in
1.0.8
References
Updated Oct 28, 2026 · Source: OSV.dev | ||
1.0.6
patch
2 CVEs
CVE-2026-116695
GHSA-pq4g-8rxf-4g29
Oct 28, 2026
Crass: Incorrect tokenization of bad URLs enables CSS sanitizer bypass
Medium
Network
Low
None
SummaryCrass's tokenizer didn't terminate a bad URL token at a DetailsWhile consuming the remnants of a bad URL (CSS Syntax Level 3, §4.3.15), Crass checked whether the previously consumed code point and the next code point formed a valid escape, in addition to checking the next two unconsumed code points. After an escaped backslash, the previously consumed code point is a backslash, so a following Browsers terminate the bad URL at that This bug has existed in every released version of Crass. ImpactCrass by itself only mis-tokenizes input. The security impact is on CSS sanitizers that use Crass to make allow/deny decisions and then re-serialize the CSS. Exploitation requires a sanitizer that doesn't reject bad URL tokens wherever they occur. Confirmed examples (verified in Chromium against the sanitizers' output):
Smuggled CSS can be used for UI redress (clickjacking or phishing overlays), loading attacker-controlled external resources, and, where rules or PatchesFixed in Crass 1.0.8. Users of Sanitize, Loofah, rails-html-sanitizer, or any other library that uses Crass to sanitize CSS should upgrade Crass to 1.0.8 or later. WorkaroundsThere are no practical workarounds other than upgrading. Rejecting any CSS input that contains the character sequence References
Affected versions
0.0.1
0.0.2
0.1.0
0.2.0
0.2.1
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
+ 1 more Show less
1.0.7
Fixed in
1.0.8
References
Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-61845
GHSA-6wmf-3r64-vcwv
Oct 20, 2026
Crass : Large numeric exponents cause CPU and memory denial of service
High
Network
Low
None
None
ImpactCrass converts CSS scientific notation number values with unbounded exponentiation before it clamps the result to PatchesThis is fixed in Crass 1.0.7. Related
Affected versions
0.0.1
0.0.2
0.1.0
0.2.0
0.2.1
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
Fixed in
1.0.7
References Updated Oct 20, 2026 · Source: OSV.dev | ||
1.0.5
patch
2 CVEs
CVE-2026-116695
GHSA-pq4g-8rxf-4g29
Oct 28, 2026
Crass: Incorrect tokenization of bad URLs enables CSS sanitizer bypass
Medium
Network
Low
None
SummaryCrass's tokenizer didn't terminate a bad URL token at a DetailsWhile consuming the remnants of a bad URL (CSS Syntax Level 3, §4.3.15), Crass checked whether the previously consumed code point and the next code point formed a valid escape, in addition to checking the next two unconsumed code points. After an escaped backslash, the previously consumed code point is a backslash, so a following Browsers terminate the bad URL at that This bug has existed in every released version of Crass. ImpactCrass by itself only mis-tokenizes input. The security impact is on CSS sanitizers that use Crass to make allow/deny decisions and then re-serialize the CSS. Exploitation requires a sanitizer that doesn't reject bad URL tokens wherever they occur. Confirmed examples (verified in Chromium against the sanitizers' output):
Smuggled CSS can be used for UI redress (clickjacking or phishing overlays), loading attacker-controlled external resources, and, where rules or PatchesFixed in Crass 1.0.8. Users of Sanitize, Loofah, rails-html-sanitizer, or any other library that uses Crass to sanitize CSS should upgrade Crass to 1.0.8 or later. WorkaroundsThere are no practical workarounds other than upgrading. Rejecting any CSS input that contains the character sequence References
Affected versions
0.0.1
0.0.2
0.1.0
0.2.0
0.2.1
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
+ 1 more Show less
1.0.7
Fixed in
1.0.8
References
Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-61845
GHSA-6wmf-3r64-vcwv
Oct 20, 2026
Crass : Large numeric exponents cause CPU and memory denial of service
High
Network
Low
None
None
ImpactCrass converts CSS scientific notation number values with unbounded exponentiation before it clamps the result to PatchesThis is fixed in Crass 1.0.7. Related
Affected versions
0.0.1
0.0.2
0.1.0
0.2.0
0.2.1
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
Fixed in
1.0.7
References Updated Oct 20, 2026 · Source: OSV.dev | ||
1.0.4
patch
2 CVEs
CVE-2026-116695
GHSA-pq4g-8rxf-4g29
Oct 28, 2026
Crass: Incorrect tokenization of bad URLs enables CSS sanitizer bypass
Medium
Network
Low
None
SummaryCrass's tokenizer didn't terminate a bad URL token at a DetailsWhile consuming the remnants of a bad URL (CSS Syntax Level 3, §4.3.15), Crass checked whether the previously consumed code point and the next code point formed a valid escape, in addition to checking the next two unconsumed code points. After an escaped backslash, the previously consumed code point is a backslash, so a following Browsers terminate the bad URL at that This bug has existed in every released version of Crass. ImpactCrass by itself only mis-tokenizes input. The security impact is on CSS sanitizers that use Crass to make allow/deny decisions and then re-serialize the CSS. Exploitation requires a sanitizer that doesn't reject bad URL tokens wherever they occur. Confirmed examples (verified in Chromium against the sanitizers' output):
Smuggled CSS can be used for UI redress (clickjacking or phishing overlays), loading attacker-controlled external resources, and, where rules or PatchesFixed in Crass 1.0.8. Users of Sanitize, Loofah, rails-html-sanitizer, or any other library that uses Crass to sanitize CSS should upgrade Crass to 1.0.8 or later. WorkaroundsThere are no practical workarounds other than upgrading. Rejecting any CSS input that contains the character sequence References
Affected versions
0.0.1
0.0.2
0.1.0
0.2.0
0.2.1
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
+ 1 more Show less
1.0.7
Fixed in
1.0.8
References
Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-61845
GHSA-6wmf-3r64-vcwv
Oct 20, 2026
Crass : Large numeric exponents cause CPU and memory denial of service
High
Network
Low
None
None
ImpactCrass converts CSS scientific notation number values with unbounded exponentiation before it clamps the result to PatchesThis is fixed in Crass 1.0.7. Related
Affected versions
0.0.1
0.0.2
0.1.0
0.2.0
0.2.1
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
Fixed in
1.0.7
References Updated Oct 20, 2026 · Source: OSV.dev | ||
1.0.3
patch
2 CVEs
CVE-2026-116695
GHSA-pq4g-8rxf-4g29
Oct 28, 2026
Crass: Incorrect tokenization of bad URLs enables CSS sanitizer bypass
Medium
Network
Low
None
SummaryCrass's tokenizer didn't terminate a bad URL token at a DetailsWhile consuming the remnants of a bad URL (CSS Syntax Level 3, §4.3.15), Crass checked whether the previously consumed code point and the next code point formed a valid escape, in addition to checking the next two unconsumed code points. After an escaped backslash, the previously consumed code point is a backslash, so a following Browsers terminate the bad URL at that This bug has existed in every released version of Crass. ImpactCrass by itself only mis-tokenizes input. The security impact is on CSS sanitizers that use Crass to make allow/deny decisions and then re-serialize the CSS. Exploitation requires a sanitizer that doesn't reject bad URL tokens wherever they occur. Confirmed examples (verified in Chromium against the sanitizers' output):
Smuggled CSS can be used for UI redress (clickjacking or phishing overlays), loading attacker-controlled external resources, and, where rules or PatchesFixed in Crass 1.0.8. Users of Sanitize, Loofah, rails-html-sanitizer, or any other library that uses Crass to sanitize CSS should upgrade Crass to 1.0.8 or later. WorkaroundsThere are no practical workarounds other than upgrading. Rejecting any CSS input that contains the character sequence References
Affected versions
0.0.1
0.0.2
0.1.0
0.2.0
0.2.1
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
+ 1 more Show less
1.0.7
Fixed in
1.0.8
References
Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-61845
GHSA-6wmf-3r64-vcwv
Oct 20, 2026
Crass : Large numeric exponents cause CPU and memory denial of service
High
Network
Low
None
None
ImpactCrass converts CSS scientific notation number values with unbounded exponentiation before it clamps the result to PatchesThis is fixed in Crass 1.0.7. Related
Affected versions
0.0.1
0.0.2
0.1.0
0.2.0
0.2.1
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
Fixed in
1.0.7
References Updated Oct 20, 2026 · Source: OSV.dev | ||
1.0.2
patch
2 CVEs
CVE-2026-116695
GHSA-pq4g-8rxf-4g29
Oct 28, 2026
Crass: Incorrect tokenization of bad URLs enables CSS sanitizer bypass
Medium
Network
Low
None
SummaryCrass's tokenizer didn't terminate a bad URL token at a DetailsWhile consuming the remnants of a bad URL (CSS Syntax Level 3, §4.3.15), Crass checked whether the previously consumed code point and the next code point formed a valid escape, in addition to checking the next two unconsumed code points. After an escaped backslash, the previously consumed code point is a backslash, so a following Browsers terminate the bad URL at that This bug has existed in every released version of Crass. ImpactCrass by itself only mis-tokenizes input. The security impact is on CSS sanitizers that use Crass to make allow/deny decisions and then re-serialize the CSS. Exploitation requires a sanitizer that doesn't reject bad URL tokens wherever they occur. Confirmed examples (verified in Chromium against the sanitizers' output):
Smuggled CSS can be used for UI redress (clickjacking or phishing overlays), loading attacker-controlled external resources, and, where rules or PatchesFixed in Crass 1.0.8. Users of Sanitize, Loofah, rails-html-sanitizer, or any other library that uses Crass to sanitize CSS should upgrade Crass to 1.0.8 or later. WorkaroundsThere are no practical workarounds other than upgrading. Rejecting any CSS input that contains the character sequence References
Affected versions
0.0.1
0.0.2
0.1.0
0.2.0
0.2.1
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
+ 1 more Show less
1.0.7
Fixed in
1.0.8
References
Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-61845
GHSA-6wmf-3r64-vcwv
Oct 20, 2026
Crass : Large numeric exponents cause CPU and memory denial of service
High
Network
Low
None
None
ImpactCrass converts CSS scientific notation number values with unbounded exponentiation before it clamps the result to PatchesThis is fixed in Crass 1.0.7. Related
Affected versions
0.0.1
0.0.2
0.1.0
0.2.0
0.2.1
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
Fixed in
1.0.7
References Updated Oct 20, 2026 · Source: OSV.dev | ||
1.0.1
patch
2 CVEs
CVE-2026-116695
GHSA-pq4g-8rxf-4g29
Oct 28, 2026
Crass: Incorrect tokenization of bad URLs enables CSS sanitizer bypass
Medium
Network
Low
None
SummaryCrass's tokenizer didn't terminate a bad URL token at a DetailsWhile consuming the remnants of a bad URL (CSS Syntax Level 3, §4.3.15), Crass checked whether the previously consumed code point and the next code point formed a valid escape, in addition to checking the next two unconsumed code points. After an escaped backslash, the previously consumed code point is a backslash, so a following Browsers terminate the bad URL at that This bug has existed in every released version of Crass. ImpactCrass by itself only mis-tokenizes input. The security impact is on CSS sanitizers that use Crass to make allow/deny decisions and then re-serialize the CSS. Exploitation requires a sanitizer that doesn't reject bad URL tokens wherever they occur. Confirmed examples (verified in Chromium against the sanitizers' output):
Smuggled CSS can be used for UI redress (clickjacking or phishing overlays), loading attacker-controlled external resources, and, where rules or PatchesFixed in Crass 1.0.8. Users of Sanitize, Loofah, rails-html-sanitizer, or any other library that uses Crass to sanitize CSS should upgrade Crass to 1.0.8 or later. WorkaroundsThere are no practical workarounds other than upgrading. Rejecting any CSS input that contains the character sequence References
Affected versions
0.0.1
0.0.2
0.1.0
0.2.0
0.2.1
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
+ 1 more Show less
1.0.7
Fixed in
1.0.8
References
Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-61845
GHSA-6wmf-3r64-vcwv
Oct 20, 2026
Crass : Large numeric exponents cause CPU and memory denial of service
High
Network
Low
None
None
ImpactCrass converts CSS scientific notation number values with unbounded exponentiation before it clamps the result to PatchesThis is fixed in Crass 1.0.7. Related
Affected versions
0.0.1
0.0.2
0.1.0
0.2.0
0.2.1
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
Fixed in
1.0.7
References Updated Oct 20, 2026 · Source: OSV.dev | ||
1.0.0
major
2 CVEs
CVE-2026-116695
GHSA-pq4g-8rxf-4g29
Oct 28, 2026
Crass: Incorrect tokenization of bad URLs enables CSS sanitizer bypass
Medium
Network
Low
None
SummaryCrass's tokenizer didn't terminate a bad URL token at a DetailsWhile consuming the remnants of a bad URL (CSS Syntax Level 3, §4.3.15), Crass checked whether the previously consumed code point and the next code point formed a valid escape, in addition to checking the next two unconsumed code points. After an escaped backslash, the previously consumed code point is a backslash, so a following Browsers terminate the bad URL at that This bug has existed in every released version of Crass. ImpactCrass by itself only mis-tokenizes input. The security impact is on CSS sanitizers that use Crass to make allow/deny decisions and then re-serialize the CSS. Exploitation requires a sanitizer that doesn't reject bad URL tokens wherever they occur. Confirmed examples (verified in Chromium against the sanitizers' output):
Smuggled CSS can be used for UI redress (clickjacking or phishing overlays), loading attacker-controlled external resources, and, where rules or PatchesFixed in Crass 1.0.8. Users of Sanitize, Loofah, rails-html-sanitizer, or any other library that uses Crass to sanitize CSS should upgrade Crass to 1.0.8 or later. WorkaroundsThere are no practical workarounds other than upgrading. Rejecting any CSS input that contains the character sequence References
Affected versions
0.0.1
0.0.2
0.1.0
0.2.0
0.2.1
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
+ 1 more Show less
1.0.7
Fixed in
1.0.8
References
Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-61845
GHSA-6wmf-3r64-vcwv
Oct 20, 2026
Crass : Large numeric exponents cause CPU and memory denial of service
High
Network
Low
None
None
ImpactCrass converts CSS scientific notation number values with unbounded exponentiation before it clamps the result to PatchesThis is fixed in Crass 1.0.7. Related
Affected versions
0.0.1
0.0.2
0.1.0
0.2.0
0.2.1
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
Fixed in
1.0.7
References Updated Oct 20, 2026 · Source: OSV.dev | ||
0.2.1
patch
2 CVEs
CVE-2026-116695
GHSA-pq4g-8rxf-4g29
Oct 28, 2026
Crass: Incorrect tokenization of bad URLs enables CSS sanitizer bypass
Medium
Network
Low
None
SummaryCrass's tokenizer didn't terminate a bad URL token at a DetailsWhile consuming the remnants of a bad URL (CSS Syntax Level 3, §4.3.15), Crass checked whether the previously consumed code point and the next code point formed a valid escape, in addition to checking the next two unconsumed code points. After an escaped backslash, the previously consumed code point is a backslash, so a following Browsers terminate the bad URL at that This bug has existed in every released version of Crass. ImpactCrass by itself only mis-tokenizes input. The security impact is on CSS sanitizers that use Crass to make allow/deny decisions and then re-serialize the CSS. Exploitation requires a sanitizer that doesn't reject bad URL tokens wherever they occur. Confirmed examples (verified in Chromium against the sanitizers' output):
Smuggled CSS can be used for UI redress (clickjacking or phishing overlays), loading attacker-controlled external resources, and, where rules or PatchesFixed in Crass 1.0.8. Users of Sanitize, Loofah, rails-html-sanitizer, or any other library that uses Crass to sanitize CSS should upgrade Crass to 1.0.8 or later. WorkaroundsThere are no practical workarounds other than upgrading. Rejecting any CSS input that contains the character sequence References
Affected versions
0.0.1
0.0.2
0.1.0
0.2.0
0.2.1
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
+ 1 more Show less
1.0.7
Fixed in
1.0.8
References
Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-61845
GHSA-6wmf-3r64-vcwv
Oct 20, 2026
Crass : Large numeric exponents cause CPU and memory denial of service
High
Network
Low
None
None
ImpactCrass converts CSS scientific notation number values with unbounded exponentiation before it clamps the result to PatchesThis is fixed in Crass 1.0.7. Related
Affected versions
0.0.1
0.0.2
0.1.0
0.2.0
0.2.1
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
Fixed in
1.0.7
References Updated Oct 20, 2026 · Source: OSV.dev | ||
0.2.0
minor
2 CVEs
CVE-2026-116695
GHSA-pq4g-8rxf-4g29
Oct 28, 2026
Crass: Incorrect tokenization of bad URLs enables CSS sanitizer bypass
Medium
Network
Low
None
SummaryCrass's tokenizer didn't terminate a bad URL token at a DetailsWhile consuming the remnants of a bad URL (CSS Syntax Level 3, §4.3.15), Crass checked whether the previously consumed code point and the next code point formed a valid escape, in addition to checking the next two unconsumed code points. After an escaped backslash, the previously consumed code point is a backslash, so a following Browsers terminate the bad URL at that This bug has existed in every released version of Crass. ImpactCrass by itself only mis-tokenizes input. The security impact is on CSS sanitizers that use Crass to make allow/deny decisions and then re-serialize the CSS. Exploitation requires a sanitizer that doesn't reject bad URL tokens wherever they occur. Confirmed examples (verified in Chromium against the sanitizers' output):
Smuggled CSS can be used for UI redress (clickjacking or phishing overlays), loading attacker-controlled external resources, and, where rules or PatchesFixed in Crass 1.0.8. Users of Sanitize, Loofah, rails-html-sanitizer, or any other library that uses Crass to sanitize CSS should upgrade Crass to 1.0.8 or later. WorkaroundsThere are no practical workarounds other than upgrading. Rejecting any CSS input that contains the character sequence References
Affected versions
0.0.1
0.0.2
0.1.0
0.2.0
0.2.1
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
+ 1 more Show less
1.0.7
Fixed in
1.0.8
References
Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-61845
GHSA-6wmf-3r64-vcwv
Oct 20, 2026
Crass : Large numeric exponents cause CPU and memory denial of service
High
Network
Low
None
None
ImpactCrass converts CSS scientific notation number values with unbounded exponentiation before it clamps the result to PatchesThis is fixed in Crass 1.0.7. Related
Affected versions
0.0.1
0.0.2
0.1.0
0.2.0
0.2.1
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
Fixed in
1.0.7
References Updated Oct 20, 2026 · Source: OSV.dev | ||
0.1.0
minor
2 CVEs
CVE-2026-116695
GHSA-pq4g-8rxf-4g29
Oct 28, 2026
Crass: Incorrect tokenization of bad URLs enables CSS sanitizer bypass
Medium
Network
Low
None
SummaryCrass's tokenizer didn't terminate a bad URL token at a DetailsWhile consuming the remnants of a bad URL (CSS Syntax Level 3, §4.3.15), Crass checked whether the previously consumed code point and the next code point formed a valid escape, in addition to checking the next two unconsumed code points. After an escaped backslash, the previously consumed code point is a backslash, so a following Browsers terminate the bad URL at that This bug has existed in every released version of Crass. ImpactCrass by itself only mis-tokenizes input. The security impact is on CSS sanitizers that use Crass to make allow/deny decisions and then re-serialize the CSS. Exploitation requires a sanitizer that doesn't reject bad URL tokens wherever they occur. Confirmed examples (verified in Chromium against the sanitizers' output):
Smuggled CSS can be used for UI redress (clickjacking or phishing overlays), loading attacker-controlled external resources, and, where rules or PatchesFixed in Crass 1.0.8. Users of Sanitize, Loofah, rails-html-sanitizer, or any other library that uses Crass to sanitize CSS should upgrade Crass to 1.0.8 or later. WorkaroundsThere are no practical workarounds other than upgrading. Rejecting any CSS input that contains the character sequence References
Affected versions
0.0.1
0.0.2
0.1.0
0.2.0
0.2.1
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
+ 1 more Show less
1.0.7
Fixed in
1.0.8
References
Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-61845
GHSA-6wmf-3r64-vcwv
Oct 20, 2026
Crass : Large numeric exponents cause CPU and memory denial of service
High
Network
Low
None
None
ImpactCrass converts CSS scientific notation number values with unbounded exponentiation before it clamps the result to PatchesThis is fixed in Crass 1.0.7. Related
Affected versions
0.0.1
0.0.2
0.1.0
0.2.0
0.2.1
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
Fixed in
1.0.7
References Updated Oct 20, 2026 · Source: OSV.dev | ||
0.0.2
patch
2 CVEs
CVE-2026-116695
GHSA-pq4g-8rxf-4g29
Oct 28, 2026
Crass: Incorrect tokenization of bad URLs enables CSS sanitizer bypass
Medium
Network
Low
None
SummaryCrass's tokenizer didn't terminate a bad URL token at a DetailsWhile consuming the remnants of a bad URL (CSS Syntax Level 3, §4.3.15), Crass checked whether the previously consumed code point and the next code point formed a valid escape, in addition to checking the next two unconsumed code points. After an escaped backslash, the previously consumed code point is a backslash, so a following Browsers terminate the bad URL at that This bug has existed in every released version of Crass. ImpactCrass by itself only mis-tokenizes input. The security impact is on CSS sanitizers that use Crass to make allow/deny decisions and then re-serialize the CSS. Exploitation requires a sanitizer that doesn't reject bad URL tokens wherever they occur. Confirmed examples (verified in Chromium against the sanitizers' output):
Smuggled CSS can be used for UI redress (clickjacking or phishing overlays), loading attacker-controlled external resources, and, where rules or PatchesFixed in Crass 1.0.8. Users of Sanitize, Loofah, rails-html-sanitizer, or any other library that uses Crass to sanitize CSS should upgrade Crass to 1.0.8 or later. WorkaroundsThere are no practical workarounds other than upgrading. Rejecting any CSS input that contains the character sequence References
Affected versions
0.0.1
0.0.2
0.1.0
0.2.0
0.2.1
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
+ 1 more Show less
1.0.7
Fixed in
1.0.8
References
Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-61845
GHSA-6wmf-3r64-vcwv
Oct 20, 2026
Crass : Large numeric exponents cause CPU and memory denial of service
High
Network
Low
None
None
ImpactCrass converts CSS scientific notation number values with unbounded exponentiation before it clamps the result to PatchesThis is fixed in Crass 1.0.7. Related
Affected versions
0.0.1
0.0.2
0.1.0
0.2.0
0.2.1
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
Fixed in
1.0.7
References Updated Oct 20, 2026 · Source: OSV.dev | ||
0.0.1
initial
2 CVEs
CVE-2026-116695
GHSA-pq4g-8rxf-4g29
Oct 28, 2026
Crass: Incorrect tokenization of bad URLs enables CSS sanitizer bypass
Medium
Network
Low
None
SummaryCrass's tokenizer didn't terminate a bad URL token at a DetailsWhile consuming the remnants of a bad URL (CSS Syntax Level 3, §4.3.15), Crass checked whether the previously consumed code point and the next code point formed a valid escape, in addition to checking the next two unconsumed code points. After an escaped backslash, the previously consumed code point is a backslash, so a following Browsers terminate the bad URL at that This bug has existed in every released version of Crass. ImpactCrass by itself only mis-tokenizes input. The security impact is on CSS sanitizers that use Crass to make allow/deny decisions and then re-serialize the CSS. Exploitation requires a sanitizer that doesn't reject bad URL tokens wherever they occur. Confirmed examples (verified in Chromium against the sanitizers' output):
Smuggled CSS can be used for UI redress (clickjacking or phishing overlays), loading attacker-controlled external resources, and, where rules or PatchesFixed in Crass 1.0.8. Users of Sanitize, Loofah, rails-html-sanitizer, or any other library that uses Crass to sanitize CSS should upgrade Crass to 1.0.8 or later. WorkaroundsThere are no practical workarounds other than upgrading. Rejecting any CSS input that contains the character sequence References
Affected versions
0.0.1
0.0.2
0.1.0
0.2.0
0.2.1
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
+ 1 more Show less
1.0.7
Fixed in
1.0.8
References
Updated Oct 28, 2026 · Source: OSV.dev
CVE-2026-61845
GHSA-6wmf-3r64-vcwv
Oct 20, 2026
Crass : Large numeric exponents cause CPU and memory denial of service
High
Network
Low
None
None
ImpactCrass converts CSS scientific notation number values with unbounded exponentiation before it clamps the result to PatchesThis is fixed in Crass 1.0.7. Related
Affected versions
0.0.1
0.0.2
0.1.0
0.2.0
0.2.1
1.0.0
1.0.1
1.0.2
1.0.3
1.0.4
1.0.5
1.0.6
Fixed in
1.0.7
References Updated Oct 20, 2026 · Source: OSV.dev |