All the vulnerabilities related to the version 1.0.0 of the package
Prototype Pollution in getsetdeep
All versions of getsetdeep
are vulnerable to prototype pollution. The setDeep()
function does not restrict the modification of an Object's prototype, which may allow an attacker to add or modify an existing property that will exist on all objects.
No fix is currently available. Consider using an alternative package until a fix is made available.
Remote Memory Exposure in request
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.
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){});
Update to version 2.68.0 or later
Server-Side Request Forgery in Request
The request
package through 2.88.2 for Node.js and the @cypress/request
package prior to 3.0.0 allow a bypass of SSRF mitigations via an attacker-controller server that does a cross-protocol redirect (HTTP to HTTPS, or HTTPS to HTTP).
NOTE: The request
package is no longer supported by the maintainer.
Insecure Entropy Source - Math.random() in node-uuid
Affected versions of node-uuid
consistently fall back to using Math.random
as an entropy source instead of crypto
, which may result in guessable UUID's.
Update to version 1.4.4 or later.