Find, fix and prevent vulnerabilities in your code.
high severity
- Vulnerable module: simple-get
- Introduced through: prebuild-install@2.1.2
Detailed paths
-
Introduced through: genext2fs@nodeos/genext2fs#6047f976261fe3393687b97b0009d40bc91bca3c › prebuild-install@2.1.2 › simple-get@1.4.3Remediation: Upgrade to prebuild-install@2.5.1.
Overview
Affected versions of this package are vulnerable to Information Exposure. When getting Location response header after fetching a remote url with Cookie, it will follow that url and fetch it with the provided cookie which will be then leaked to the attacker .
Remediation
Upgrade simple-get to version 2.8.2, 3.1.1, 4.0.1 or higher.
References
medium severity
- Vulnerable module: tunnel-agent
- Introduced through: prebuild-install@2.1.2
Detailed paths
-
Introduced through: genext2fs@nodeos/genext2fs#6047f976261fe3393687b97b0009d40bc91bca3c › prebuild-install@2.1.2 › tunnel-agent@0.4.3Remediation: Upgrade to prebuild-install@2.2.0.
Overview
tunnel-agent is HTTP proxy tunneling agent. Affected versions of the package are vulnerable to Uninitialized Memory Exposure.
A possible memory disclosure vulnerability exists when a value of type number is used to set the proxy.auth option of a request request and results in a possible uninitialized memory exposures in the request body.
This is a result of unobstructed use of the Buffer constructor, whose insecure default constructor increases the odds of memory leakage.
Details
Constructing a Buffer class with integer N creates a Buffer of length N with raw (not "zero-ed") memory.
In the following example, the first call would allocate 100 bytes of memory, while the second example will allocate the memory needed for the string "100":
// uninitialized Buffer of length 100
x = new Buffer(100);
// initialized Buffer with value of '100'
x = new Buffer('100');
tunnel-agent's request construction uses the default Buffer constructor as-is, making it easy to append uninitialized memory to an existing list. If the value of the buffer list is exposed to users, it may expose raw server side memory, potentially holding secrets, private data and code. This is a similar vulnerability to the infamous Heartbleed flaw in OpenSSL.
Proof of concept by ChALkeR
require('request')({
method: 'GET',
uri: 'http://www.example.com',
tunnel: true,
proxy:{
protocol: 'http:',
host:"127.0.0.1",
port:8080,
auth:80
}
});
You can read more about the insecure Buffer behavior on our blog.
Similar vulnerabilities were discovered in request, mongoose, ws and sequelize.
Remediation
Upgrade tunnel-agent to version 0.6.0 or higher.
Note This is vulnerable only for Node <=4