CVE-2017-16026: Input Validation
Affected versions of request will disclose local system memory to remote systems in certain circumstances. When a multipart request is made, and the type of body is number, then a buffer of that size will be allocated and sent to the remote server as the body.
Proof of Concept
js var request = require('request'); var http = require('http');
var serveFunction = function (req, res){ req.on('data', function (data) { console.log(data) }); res.end(); }; var server = http.createServer(serveFunction); server.listen(8000);
request({ method: "POST", uri: 'http://localhost:8000', multipart: [{body:500}] },function(err,res,body){});
Recommendation
Update to version 2.68.0 or later
Other sources
Request is an http client. If a request is made using multipart, and the body type is a number, then the specified number of non-zero memory is passed in the body. This affects Request >=2.2.6 <2.47.0 || >2.51.0 <=2.67.0.
Affected Software
Event History
Frequently Asked Questions
What is the severity of CVE-2017-16026?
The severity of CVE-2017-16026 is high (5.9).
How does CVE-2017-16026 affect request?
CVE-2017-16026 affects certain versions of the `request` package.
What is the impact of CVE-2017-16026?
CVE-2017-16026 can disclose local system memory to remote systems in certain circumstances.
How can I fix CVE-2017-16026?
To fix CVE-2017-16026, upgrade to version 2.68.0 or apply the appropriate patches.
Where can I find more information about CVE-2017-16026?
You can find more information about CVE-2017-16026 on the NVD website and GitHub.