{"id":"CVE-2026-116695","aliases":[],"title":"Crass: Incorrect tokenization of bad URLs enables CSS sanitizer bypass","titleSource":"GitHub_M","descriptionSource":"GitHub_M","products":[{"vendor":"rgrove","name":"crass","platforms":[],"versions":[{"version":"< 1.0.8","status":"affected"}],"source":"GitHub_M","url":"https://www.cve.org/CVERecord?id=CVE-2026-116695"}],"remediation":[],"description":"Crass is a Ruby CSS parser that is compliant with the CSS Syntax Level 3 specification. Prior to 1.0.8, Crass incorrectly treats a closing parenthesis after an escaped backslash as escaped while consuming the remnants of a bad URL. Crass therefore keeps declarations, style rules, or at-rules inside a bad URL token even though a browser treats them as live CSS. A sanitizer that parses untrusted CSS with Crass and reserializes it without rejecting the bad URL can allow CSS used for UI redress, external resource loading, or CSS-based data exfiltration, but this issue does not enable script execution in modern browsers. This issue is fixed in version 1.0.8.","severity":"medium","score":5.3,"published":"2026-10-27T20:10:34.010Z","modified":"2026-10-27T20:10:34.010Z","withdrawn":false,"knownExploited":false,"affected":[],"references":["https://github.com/rgrove/crass/security/advisories/GHSA-pq4g-8rxf-4g29","https://github.com/rgrove/crass/commit/689fc45c632fdf3803b2f4e844ffc9cca3b08f34","https://github.com/rgrove/crass/releases/tag/v1.0.8"],"sources":[{"name":"CVE","id":"CVE-2026-116695","modified":"2026-10-27T20:10:34.010Z","url":"https://www.cve.org/CVERecord?id=CVE-2026-116695"}],"assessments":[{"source":"GitHub_M","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N","score":5.3}],"sourceAffected":[],"kev":{"status":"not-listed","checkedAt":"2026-10-28T20:15:32.897Z"},"coverage":[{"source":"NVD","status":"not-checked"},{"source":"GHSA","status":"not-checked"},{"source":"EUVD","status":"not-checked"},{"source":"EPSS","status":"not-checked"}],"evidence":[]}