CRITICAL🇬🇧 English

CVE-2022-36045

NodeBB: przejęcie konta przez przewidywalny token resetu hasła

CVSS 9.0v3.1pub. 2022-08-31upd. 2024-11-21

NodeBB Forum Software w funkcji `utils.generateUUID` używało kryptograficznie słabego generatora liczb pseudolosowych (`Math.random()`), co umożliwia atakującemu przewidzenie kodu resetu hasła. Podatność pozwala na przejęcie dowolnego konta bez jakiegokolwiek udziału jego właściciela.

Pokaż oryginał (EN)

NodeBB Forum Software is powered by Node.js and supports either Redis, MongoDB, or a PostgreSQL database. It utilizes web sockets for instant interactions and real-time notifications. `utils.generateUUID`, a helper function available in essentially all versions of NodeBB (as far back as v1.0.1 and potentially earlier) used a cryptographically insecure Pseudo-random number generator (`Math.random()`), which meant that a specially crafted script combined with multiple invocations of the password reset functionality could enable an attacker to correctly calculate the reset code for an account they do not have access to. This vulnerability impacts all installations of NodeBB. The vulnerability allows for an attacker to take over any account without the involvement of the victim, and as such, the remediation should be applied immediately (either via NodeBB upgrade or cherry-pick of the specific changeset. The vulnerability has been patched in version 2.x and 1.19.x. There is no known workaround, but the patch sets listed above will fully patch the vulnerability.

🤖 Analiza AI
Jak działa

Funkcja `utils.generateUUID`, dostępna we wszystkich praktycznych wersjach NodeBB (od co najmniej v1.0.1), generowała tokeny resetu hasła z użyciem `Math.random()` — funkcji niekryptograficznej, której wyniki są przewidywalne. Atakujący, wywołując wielokrotnie funkcję resetu hasła dla wybranego konta, mógł zgromadzić wystarczającą ilość próbek, a następnie za pomocą specjalnie przygotowanego skryptu obliczyć poprawny token resetu. Posiadając prawidłowy token, atakujący przejmuje pełną kontrolę nad kontem ofiary bez jej wiedzy ani interakcji.

Skutki

Atakujący może przejąć kontrolę nad dowolnym kontem użytkownika platformy NodeBB — w tym kontami administratorów — bez jakiegokolwiek udziału ofiary, co prowadzi do pełnego naruszenia poufności, integralności i dostępności danych konta.

Mitygacja

Należy niezwłocznie zaktualizować NodeBB do wersji 2.x lub 1.19.x, w których podatność została załatana. Alternatywnie możliwe jest zastosowanie konkretnych zestawów zmian (cherry-pick) wskazanych w referencjach producenta (commity: 81e3c1ba i e802fab8 w repozytorium GitHub). Nie istnieje żadne znane obejście (workaround) — jedynym skutecznym zabezpieczeniem jest zastosowanie patcha.

Kogo dotyczy

Wszystkie instalacje NodeBB — podatność obecna co najmniej od wersji v1.0.1; dotyczy wszystkich wersji starszych niż 1.19.x (linia 1.x) oraz starszych niż 2.x (linia 2.x)

Uwagi

Producent w oficjalnym komunikacie bezpieczeństwa wprost zaleca natychmiastowe zastosowanie remediacji ze względu na możliwość przejęcia konta bez udziału ofiary. Podatność sklasyfikowana jako CWE-330 (użycie niewystarczająco losowych wartości) oraz CWE-338 (użycie kryptograficznie słabego PRNG).

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

    APP
    Nodebb
    2.0.0< 1.19.8
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
CWE
Referencje

Powiązane podatności

CVE-2023-43187CRITICAL9.8PL ✓ten sam produkt

RCE w NodeBB via endpoint xmlrpc.php — wykonanie dowolnego kodu

CVE-2023-26045CRITICAL10.0PL ✓ten sam produkt

NodeBB: path traversal umożliwiający zdalne wykonanie kodu JavaScript

CVE-2022-46164CRITICAL9.4PL ✓ten sam produkt

NodeBB — przejęcie konta przez prototype pollution w socket.io

CVE-2021-43787CRITICAL9.0PL ✓ten sam produkt

NodeBB: prototype pollution i XSS w module uploader umożliwiające przejęcie konta

CVE-2021-43786CRITICAL9.8PL ✓ten sam produkt

NodeBB — pominięcie uwierzytelnienia w weryfikacji tokenów API (Auth Bypass)