CVE-2022-24713

Regular expression denial of service in Rust's regex crate

Published Mar 8, 2022 CVSS 3.1 · 7.5 High EPSS 14.5% KEV · Not listed
Description
regex is an implementation of regular expressions for the Rust language. The regex crate features built-in mitigations to prevent denial of service attacks caused by untrusted regexes, or untrusted input matched by trusted regexes. Those (tunable) mitigations already provide sane defaults to prevent attacks. This guarantee is documented and it's considered part of the crate's API. Unfortunately a bug was discovered in the mitigations designed to prevent untrusted regexes to take an arbitrary amount of time during parsing, and it's possible to craft regexes that bypass such mitigations. This makes it possible to perform denial of service attacks by sending specially crafted regexes to services accepting user-controlled, untrusted regexes. All versions of the regex crate before or equal to 1.5.4 are affected by this issue. The fix is include starting from regex 1.5.5. All users accepting user-controlled regexes are recommended to upgrade immediately to the latest version of the regex crate. Unfortunately there is no fixed set of problematic regexes, as there are practically infinite regexes that could be crafted to exploit this vulnerability. Because of this, it us not recommend to deny known problematic regexes.

Remediation

No solution or workaround provided in the CVE record

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Debian DLA Debian DLA DLA-2971-1 firefox-esr security update
Debian DLA Debian DLA DLA-2978-1 thunderbird security update
Debian DSA Debian DSA DSA-5113-1 firefox-esr security update
Debian DSA Debian DSA DSA-5118-1 thunderbird security update
EUVD EUVD EUVD-2022-1468 regex is an implementation of regular expressions for the Rust language. The regex crate features built-in mitigations to prevent denial of service attacks caused by untrusted regexes, or untrusted input matched by trusted regexes. Those (tunable) mitigations already provide sane defaults to prevent attacks. This guarantee is documented and it's considered part of the crate's API. Unfortunately a bug was discovered in the mitigations designed to prevent untrusted regexes to take an arbitrary amount of time during parsing, and it's possible to craft regexes that bypass such mitigations. This makes it possible to perform denial of service attacks by sending specially crafted regexes to services accepting user-controlled, untrusted regexes. All versions of the regex crate before or equal to 1.5.4 are affected by this issue. The fix is include starting from regex 1.5.5. All users accepting user-controlled regexes are recommended to upgrade immediately to the latest version of the regex crate. Unfortunately there is no fixed set of problematic regexes, as there are practically infinite regexes that could be crafted to exploit this vulnerability. Because of this, it us not recommend to deny known problematic regexes.
Github GHSA Github GHSA GHSA-m5pq-gvj9-9vr8 Rust's regex crate vulnerable to regular expression denial of service
Ubuntu USN Ubuntu USN USN-5370-1 Firefox vulnerabilities
Ubuntu USN Ubuntu USN USN-5610-1 rust-regex vulnerability
History
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Weaknesses

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Apr 23, 2025, 6:58 PM
Reserved
Feb 10, 2022, 12:00 AM
Status
Modified
Published
Mar 8, 2022, 7:15 PM
Modified
Jun 17, 2026, 4:32 AM
Severity
Low
Public date
Apr 5, 2022, 12:00 AM