High severity · published Mar 17, 2021
CVE-2021-27292
ua-parser-js >= 0.7.14, fixed in 0.7.24, uses a regular expression which is vulnerable to denial of service
7.5
CVSS
3.4%
EPSS
No
On KEV
Description
ua-parser-js >= 0.7.14, fixed in 0.7.24, uses a regular expression which is vulnerable to denial of service. If an attacker sends a malicious User-Agent header, ua-parser-js will get stuck processing it for an extended period of time.
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Attack vector
Network
Complexity
Low
Privileges
None
User interaction
None
Confidentiality
None
Integrity
None
Availability
High
Scope
Unchanged
Exploitation
Is it being used?
Exploit prediction (EPSS)3.4% · higher than 89% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
UA
Ua-parser-js · Ua-parser-js Project
0.7.14 before 0.7.24 · source: NVD
References
NVD
https://nvd.nist.gov/vuln/detail/CVE-2021-27292
CVE.org
https://www.cve.org/CVERecord?id=CVE-2021-27292
Exploit
https://gist.github.com/b-c-ds/6941d80d6b4e694df4bc269493b7be76
Patch
https://github.com/faisalman/ua-parser-js/commit/809439e20e273ce0d25c1d04e111dcf6011eb566
Patch
https://github.com/pygments/pygments/commit/2e7e8c4a7b318f4032493773732754e418279a14
More from Ua-parser-js
8.8
CVE-2021-4229
A vulnerability was found in ua-parser-js 0.7.29/0.8.0/1.0.0
7.5
CVE-2022-25927
Versions of the package ua-parser-js from 0.7.30 and before 0.7.33, from 0.8.1 and before 1.0.33 are vulnerable to Regular Expression Denial of Service (ReDoS) via the trim()…
7.5
CVE-2020-7793
The package ua-parser-js before 0.7.23 are vulnerable to Regular Expression Denial of Service (ReDoS) in multiple regexes (see linked commit for more info)
7.5
CVE-2020-7733
The package ua-parser-js before 0.7.22 are vulnerable to Regular Expression Denial of Service (ReDoS) via the regex for Redmi Phones and Mi Pad Tablets UA
5.3
CVE-2026-48125
UAParser.js: Unbounded `Sec-CH-UA-Model` parsing can trigger ReDoS in `withClientHints()`
