CRITICAL✓ PATCH🇬🇧 English

CVE-2022-35255

Słaba losowość w generowaniu kluczy WebCrypto w Node.js 18

CVSS 9.1v3.1pub. 2022-12-05upd. 2025-04-24

W Node.js 18 wykryto podatność polegającą na użyciu kryptograficznie słabego źródła losowości podczas generowania kluczy przez interfejs WebCrypto. Może to prowadzić do tworzenia kluczy kryptograficznych o niedostatecznej entropii, co znacząco obniża ich odporność na ataki.

Pokaż oryginał (EN)

A weak randomness in WebCrypto keygen vulnerability exists in Node.js 18 due to a change with EntropySource() in SecretKeyGenTraits::DoKeyGen() in src/crypto/crypto_keygen.cc. There are two problems with this: 1) It does not check the return value, it assumes EntropySource() always succeeds, but it can (and sometimes will) fail. 2) The random data returned byEntropySource() may not be cryptographically strong and therefore not suitable as keying material.

🤖 Analiza AI
Jak działa

Problem tkwi w funkcji SecretKeyGenTraits::DoKeyGen() w pliku src/crypto/crypto_keygen.cc, gdzie wywołanie EntropySource() nie sprawdza wartości zwracanej — kod zakłada, że funkcja zawsze się powiedzie, podczas gdy może ona zawieść. Dodatkowo dane losowe zwracane przez EntropySource() mogą nie być kryptograficznie silne, co oznacza, że nie nadają się jako materiał kluczowy. W rezultacie wygenerowane klucze mogą być przewidywalne lub powtarzalne, co podważa bezpieczeństwo całego systemu kryptograficznego opartego na WebCrypto API.

Skutki

Atakujący może być w stanie odtworzyć lub przewidzieć wygenerowane klucze kryptograficzne, co prowadzi do naruszenia poufności i integralności danych chronionych tymi kluczami.

Mitygacja

Należy zastosować patche dostępne u producenta zgodnie z referencjami. Dla dystrybucji Debian dostępna jest aktualizacja opisana w DSA-5326. Użytkownicy Siemens SINEC INS powinni zapoznać się z biuletynem SSA-332410.

Kogo dotyczy

Node.js 18 (oraz produkty oparte na tej wersji, m.in. Siemens SINEC INS — szczegółowe wersje wskazane w referencjach producenta)

Uwagi

Podatność zgłoszona za pośrednictwem platformy HackerOne (raport #1690000). Dotyczy wyłącznie Node.js 18 w związku ze zmianą wprowadzoną w EntropySource().

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
  • Debian

    OS
    Debian
    11.0
  • Node.js

    APP
    Nodejs
    16.0.0 – 16.12.016.13.0 – 16.17.1 (bez)15.0.0 – 15.14.018.0.0 – 18.9.1 (bez)
  • Siemens Sinec Ins

    APP
    Siemens
    1.0< 1.0
🟢
PATCH DOSTĘPNY
Aktualizacja od producenta gotowa. Wdrożenie w ramach standardowego cyklu.
CWE
Referencje

Powiązane podatności

CVE-2026-24061CRITICAL9.8⚠ KEVPL ✓ten sam produkt

GNU Inetutils telnetd: ominięcie uwierzytelnienia przez zmienną USER

CVE-2025-32463CRITICAL9.3⚠ KEVPL ✓ten sam produkt

Sudo: eskalacja uprawnień do root poprzez opcję --chroot (CVE-2025-32463)

CVE-2025-49113CRITICAL9.9⚠ KEVPL ✓ten sam produkt

RCE przez deserializację PHP w Roundcube Webmail (parametr _from)

CVE-2025-32433CRITICAL10.0⚠ KEVPL ✓ten sam produkt

Erlang/OTP SSH — nieuwierzytelniony RCE (CVSS 10.0)

CVE-2025-24201CRITICAL10.0⚠ KEVPL ✓ten sam produkt

Apple WebKit: out-of-bounds write umożliwiający ucieczkę z sandbox przeglądarki