Do your applications use this vulnerable package?
In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.Test your applications
- Snyk ID npm:floody:20160115
- published 21 Jun 2017
- disclosed 15 Jan 2016
- credit ChALkeR
Introduced: 15 Jan 2016CVE NOT AVAILABLE CWE-201 Open this link in a new tab
How to fix?
floody to version 0.1.1 or higher.
Note This is vulnerable only for Node <=4
floody combines floods of small stream writes while not delaying or buffering writes when not flooded.
A possible memory disclosure vulnerability exists when a value of type
number is provided to the
write() method and results in the concatenation of uninitialized memory to the buffer collection.
This is a result of unobstructed use of the
Buffer constructor, whose insecure default constructor increases the odds of memory leakage.
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');
floody 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.
PoC by ChALKeR:
var f = require('floody')(process.stdout); f.write(1000); f.stop()
You can read more about the insecure
Buffer behavior on our blog.