Nokogiri's CSS selector tokenizer contains regular expressions whose construction may result in exponential regex backtracking on adversarial selectors. Three ReDoS vectors are addressed in this release:
The public CSS selector methods that funnel through the affected tokenizer are Nokogiri::CSS.xpath_for, Node#css, Node#at_css, Searchable#search, and CSS::Parser#parse.
Upgrade to Nokogiri >= 1.19.3.
If users are unable to upgrade, two options are available:
Regexp.timeout (Ruby 3.2+, JRuby 9.4+) to bound parse time.The Nokogiri maintainers have evaluated this as High Severity (CVSS 7.5, AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H).
An attacker able to inject user-supplied text into a CSS selector parse method can cause exponential backtracking, resulting in a potential denial of service.
Vector 1 was responsibly reported by @colby-swandale. Vectors 2 and 3 were discovered by @flavorjones during the response to the original report.
{
"cwe_ids": [
"CWE-1333"
],
"github_reviewed_at": "2026-05-06T18:24:18Z",
"github_reviewed": true,
"severity": "HIGH",
"nvd_published_at": null
}