Security Alert: [low] [braces] Type: Regular Expression Denial of Service Advisory Version: <2.3.1 Current version: 0.1.5 Recommendation: Upgrade to version 2.3.1 or higher. Url: https://npmjs.com/advisories/786 Detail: Versions of `braces` prior to 2.3.1 are vulnerable to Regular Expression Denial of Service (ReDoS). Untrusted input may cause catastrophic backtracking while matching regular expressions. This can cause the application to be unresponsive leading to Denial of Service. Security Alert: [high] [cached-path-relative] Type: Prototype Pollution Advisory Version: <=1.0.1 Current version: 1.0.1 Recommendation: Update to version 1.0.2 or later. Url: https://npmjs.com/advisories/739 Detail: Version of `cached-path-relative` before 1.0.2 are vulnerable to prototype pollution. Security Alert: [moderate] [concat-stream] Type: Memory Exposure Advisory Version: >=1.3.0 <1.3.2 || >=1.4.0 <1.4.11 || >=1.5.0 <1.5.2 Current version: 1.5.0 Recommendation: Update to version 1.5.2, 1.4.11, 1.3.2 or later. If you are unable to update make sure user provided input into the `write()` function is not a number. Url: https://npmjs.com/advisories/597 Detail: Versions of `concat-stream` before 1.5.2 are vulnerable to memory exposure if userp provided input is passed into `write()` Versions <1.3.0 are not affected due to not using unguarded Buffer constructor. Security Alert: [low] [debug] Type: Regular Expression Denial of Service Advisory Version: <= 2.6.8 || >= 3.0.0 <= 3.0.1 Current version: 0.7.4 Recommendation: Version 2.x.x: Update to version 2.6.9 or later. Version 3.x.x: Update to version 3.1.0 or later. Url: https://npmjs.com/advisories/534 Detail: Affected versions of `debug` are vulnerable to regular expression denial of service when untrusted user input is passed into the `o` formatter. As it takes 50,000 characters to block the event loop for 2 seconds, this issue is a low severity issue. Security Alert: [low] [deep-extend] Type: Prototype Pollution Advisory Version: <=0.5.0 Current version: 0.4.2 Recommendation: Update to version 0.5.1 or later. Url: https://npmjs.com/advisories/612 Detail: Versions of `deep-extend` before 0.5.1 are vulnerable to prototype pollution. Security Alert: [high] [fstream] Type: Arbitrary File Overwrite Advisory Version: <1.0.12 Current version: 1.0.11 Recommendation: Upgrade to version 1.0.12 or later. Url: https://npmjs.com/advisories/886 Detail: Versions of `fstream` prior to 1.0.12 are vulnerable to Arbitrary File Overwrite. Extracting tarballs containing a hardlink to a file that already exists in the system and a file that matches the hardlink will overwrite the system's file with the co ntents of the extracted file. The `fstream.DirWriter()` function is vulnerable. Security Alert: [critical] [growl] Type: Command Injection Advisory Version: <1.10.2 Current version: 1.9.2 Recommendation: Update to version 1.10.2 or later. Url: https://npmjs.com/advisories/146 Detail: Affected versions of `growl` do not properly sanitize input prior to passing it into a shell command, allowing for arbitrary command execution. Security Alert: [moderate] [hoek] Type: Prototype Pollution Advisory Version: <= 4.2.0 || >= 5.0.0 < 5.0.3 Current version: 2.16.3 Recommendation: Update to version 4.2.1, 5.0.3 or later. Url: https://npmjs.com/advisories/566 Detail: Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution. The `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing th e `__proto__` property. This can be demonstrated like so: ```javascript var Hoek = require('hoek'); var malicious_payload = '{"__proto__":{"oops":"It works !"}}'; var a = {}; console.log("Before : " + a.oops); Hoek.merge({}, JSON.parse(malicious_payload)); console.log("After : " + a.oops); ``` This type of attack can be used to overwrite existing properties causing a potential denial of service. Security Alert: [high] [js-yaml] Type: Code Injection Advisory Version: <3.13.1 Current version: 3.8.4 Recommendation: Upgrade to version 3.13.1. Url: https://npmjs.com/advisories/813 Detail: Versions of `js-yaml` prior to 3.13.1 are vulnerable to Code Injection. The `load()` function may execute arbitrary code injected through a malicious YAML file. Objects that have `toString` as key, JavaScript code as value and are used as explicit m apping keys allow attackers to execute the supplied code through the `load()` function. The `safeLoad()` function is unaffected. An example payload is `{ toString: !<tag:yaml.org,2002:js/function> 'function (){return Date.now()}' } : 1` which returns the object { "1553107949161": 1 } Security Alert: [moderate] [js-yaml] Type: Denial of Service Advisory Version: <3.13.0 Current version: 3.8.4 Recommendation: Upgrade to version 3.13.0. Url: https://npmjs.com/advisories/788 Detail: Versions of `js-yaml` prior to 3.13.0 are vulnerable to Denial of Service. By parsing a carefully-crafted YAML file, the node process stalls and may exhaust system resources leading to a Denial of Service. Security Alert: [moderate] [lodash] Type: Prototype Pollution Advisory Version: <4.17.11 Current version: 3.10.1 Recommendation: Update to version 4.17.11 or later. Url: https://npmjs.com/advisories/782 Detail: Versions of `lodash` before 4.17.5 are vulnerable to prototype pollution. The vulnerable functions are 'defaultsDeep', 'merge', and 'mergeWith' which allow a malicious user to modify the prototype of `Object` via `{constructor: {prototype: {...}}}` causing the addition or modification of an existing property that will exist on all objects. Security Alert: [low] [lodash] Type: Prototype Pollution Advisory Version: <4.17.5 Current version: 3.10.1 Recommendation: Update to version 4.17.5 or later. Url: https://npmjs.com/advisories/577 Detail: Versions of `lodash` before 4.17.5 are vulnerable to prototype pollution. The vulnerable functions are 'defaultsDeep', 'merge', and 'mergeWith' which allow a malicious user to modify the prototype of `Object` via `__proto__` causing the addition or modification of an existing property that will exist on all objects. Security Alert: [moderate] [mime] Type: Regular Expression Denial of Service Advisory Version: < 1.4.1 || > 2.0.0 < 2.0.3 Current version: 1.3.6 Recommendation: Update to version 2.0.3 or later. Url: https://npmjs.com/advisories/535 Detail: Affected versions of `mime` are vulnerable to regular expression denial of service when a mime lookup is performed on untrusted user input. Security Alert: [high] [parsejson] Type: Regular Expression Denial of Service Advisory Version: <=0.0.3 Current version: 0.0.3 Recommendation: The `parsejson` package has not been functionally updated since it was initially released. Additionally, it provides functionality which is natively included in Node.js, and therefore the native `JSON.parse()` should be used, for both performance and security reasons. Url: https://npmjs.com/advisories/528 Detail: Affected versions of `parsejson` are vulnerable to a regular expression denial of service when parsing untrusted user input. Security Alert: [low] [randomatic] Type: Cryptographically Weak PRNG Advisory Version: <3.0.0 Current version: 1.1.6 Recommendation: Update to version 3.0.0 or later. Url: https://npmjs.com/advisories/157 Detail: Affected versions of `randomatic` generate random values using a cryptographically weak psuedo-random number generator. This may result in predictable values instead of random values as intended. Security Alert: [high] [sshpk] Type: Regular Expression Denial of Service Advisory Version: <1.13.2 || >=1.14.0 <1.14.1 Current version: 1.13.0 Recommendation: Update to version 1.13.2, 1.14.1 or later. Url: https://npmjs.com/advisories/606 Detail: Versions of `sshpk` before 1.13.2 or 1.14.1 are vulnerable to regular expression denial of service when parsing crafted invalid public keys. Security Alert: [moderate] [static-eval] Type: Sandbox Breakout / Arbitrary Code Execution Advisory Version: <=2.0.1 Current version: 0.2.4 Recommendation: Upgrade to version 2.0.2 or later. Url: https://npmjs.com/advisories/758 Detail: Versions of `static-eval`prior to 2.0.2 pass untrusted user input directly to the global function constructor, resulting in an arbitrary code execution vulnerability when user input is parsed via the package. ## Proof of concept ``` var evaluate = require('static-eval'); var parse = require('esprima').parse; var src = process.argv[2]; var payload = '(function({x}){return x.constructor})({x:"".sub})("console.log(process.env)")()' var ast = parse(payload).body[0].expression; console.log(evaluate(ast, {x:1})); ``` Security Alert: [moderate] [static-eval] Type: Sandbox Breakout / Arbitrary Code Execution Advisory Version: <=1.1.1 Current version: 0.2.4 Recommendation: Update to version 2.0.0 or later. Url: https://npmjs.com/advisories/548 Detail: Affected versions of `static-eval` pass untrusted user input directly to the global function constructor, resulting in an arbitrary code execution vulnerability when user input is parsed via the package. ## Proof of concept ``` var evaluate = require('static-eval'); var parse = require('esprima').parse; var src = '(function(){console.log(process.pid)})()'; var ast = parse(src).body[0].expression; var res = evaluate(ast, {}); // Will print the process id ``` Security Alert: [moderate] [stringstream] Type: Out-of-bounds Read Advisory Version: <=0.0.5 Current version: 0.0.5 Recommendation: No fix is currently available for this vulnerability. It is our recommendation to not install or use this module if user input is being passed in to `stringstream`. Url: https://npmjs.com/advisories/664 Detail: All versions of `stringstream` are vulnerable to out-of-bounds read as it allocates uninitialized Buffers when number is passed in input stream on Node.js 4.x and below. Security Alert: [high] [tar] Type: Arbitrary File Overwrite Advisory Version: <2.2.2 || >=3.0.0 <4.4.2 Current version: 2.2.1 Recommendation: For tar 4.x, upgrade to version 4.4.2 or later. For tar 2.x, upgrade to version 2.2.2 or later. Url: https://npmjs.com/advisories/803 Detail: Versions of `tar` prior to 4.4.2 for 4.x and 2.2.2 for 2.x are vulnerable to Arbitrary File Overwrite. Extracting tarballs containing a hardlink to a file that already exists in the system, and a file that matches the hardlink will overwrite the sys tem's file with the contents of the extracted file. Security Alert: [high] [tough-cookie] Type: Regular Expression Denial of Service Advisory Version: <2.3.3 Current version: 2.3.2 Recommendation: Update to version 2.3.3 or later. Url: https://npmjs.com/advisories/525 Detail: Affected versions of `tough-cookie` are susceptible to a regular expression denial of service. The amplification on this vulnerability is relatively low - it takes around 2 seconds for the engine to execute on a malicious input which is 50,000 characters in length. If node was compiled using the `-DHTTP_MAX_HEADER_SIZE` however, the impact of the vulnerability can be significant, as the primary limitation for the vulnerability is the default max HTTP header length in node. Security Alert: [moderate] [tunnel-agent] Type: Memory Exposure Advisory Version: <0.6.0 Current version: 0.4.3 Recommendation: Update to version 0.6.0 or later. Url: https://npmjs.com/advisories/598 Detail: Versions of `tunnel-agent` before 0.6.0 are vulnerable to memory exposure. This is exploitable if user supplied input is provided to the auth value and is a number. Proof-of-concept: ```js require('request')({ method: 'GET', uri: 'http://www.example.com', tunnel: true, proxy:{ protocol: 'http:', host:'127.0.0.1', port:8080, auth:USERSUPPLIEDINPUT // number } }); ``` Security Alert: [high] [ws] Type: Denial of Service Advisory Version: <1.1.5 || >=2.0.0 <3.3.1 Current version: 1.1.2 Recommendation: Update to version 3.3.1 or later. Url: https://npmjs.com/advisories/550 Detail: Affected versions of `ws` can crash when a specially crafted `Sec-WebSocket-Extensions` header containing `Object.prototype` property names as extension or parameter names is sent. ## Proof of concept ``` const WebSocket = require('ws'); const net = require('net'); const wss = new WebSocket.Server({ port: 3000 }, function () { const payload = 'constructor'; // or ',;constructor' const request = [ 'GET / HTTP/1.1', 'Connection: Upgrade', 'Sec-WebSocket-Key: test', 'Sec-WebSocket-Version: 8', `Sec-WebSocket-Extensions: ${payload}`, 'Upgrade: websocket', '\r\n' ].join('\r\n'); const socket = net.connect(3000, function () { socket.resume(); socket.write(request); }); }); ``` Security Alert: [high] [handlebars] Type: Prototype Pollution Advisory Version: <=4.0.13 || >=4.1.0 <4.1.2 Current version: 4.0.11 Recommendation: For handlebars 4.1.x upgrade to 4.1.2 or later. For handlebars 4.0.x upgrade to 4.0.14 or later. Url: https://npmjs.com/advisories/755 Detail: Versions of `handlebars` prior to 4.0.14 are vulnerable to Prototype Pollution. Templates may alter an Objects' prototype, thus allowing an attacker to execute arbitrary code on the server. Security Alert: [high] [cryptiles] Type: Insufficient Entropy Advisory Version: >=3.1.0 <3.1.3 || >=4.0.0 <4.1.2 Current version: 3.1.2 Recommendation: Update to version 3.1.3 or 4.1.2 or later. Url: https://npmjs.com/advisories/720 Detail: Versions of `cryptiles` from version 3.1.0 through 3.1.2, and versions 4.0.0 to version 4.1.1 are vulnerable to insufficient entropy. The `randomDigits` method generates digits that lack a perfect distribution over enough attempts. Security Alert: [low] [merge] Type: Prototype Pollution Advisory Version: <=1.2.0 Current version: 1.2.0 Recommendation: Update to version 1.2.1 or later. Url: https://npmjs.com/advisories/722 Detail: Versions of `merge` before 1.2.1 are vulnerable to prototype pollution. The `merge.recursive` function can be tricked into adding or modifying properties of the Object prototype.