NodeBB w weryfikacji tokenów dostępu do API zawierał błędną logikę, która niezamierzenie przyznawała dostęp na poziomie tokena głównego (master token). Podatność umożliwia nieuwierzytelnionemu atakującemu pełny dostęp do API platformy forum.
▸ Pokaż oryginał (EN)
Nodebb is an open source Node.js based forum software. In affected versions incorrect logic present in the token verification step unintentionally allowed master token access to the API. The vulnerability has been patch as of v1.18.5. Users are advised to upgrade as soon as possible.
Błąd tkwi w kroku weryfikacji tokena — nieprawidłowa logika warunkowa powoduje, że żądanie może zostać potraktowane jako posiadające uprawnienia master token bez faktycznego uwierzytelnienia. Atakujący, wysyłając odpowiednio spreparowane żądanie do API, może obejść mechanizm kontroli dostępu (Auth Bypass) i uzyskać nieautoryzowany dostęp do wszystkich chronionych zasobów API.
Atakujący uzyskuje dostęp do API z uprawnieniami master token bez podawania poprawnych danych uwierzytelniających, co może prowadzić do pełnego przejęcia kontroli nad instancją forum, w tym odczytu, modyfikacji i usuwania danych.
Należy jak najszybciej zaktualizować NodeBB do wersji v1.18.5 lub nowszej, w której błąd został naprawiony. Patch dostępny jest w oficjalnym repozytorium projektu na GitHub (commit 04dab1d550cdebf4c1567bca9a51f8b9ca48a500).
NodeBB we wszystkich wersjach poprzedzających v1.18.5
Podatność została opisana przez badaczy z SonarSource, którzy opublikowali analizę techniczną wskazującą na możliwość osiągnięcia zdalnego wykonania kodu (RCE) z wykorzystaniem tej luki — odnośnik do wpisu blogowego zawarty jest w sekcji referencji.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HNodebb
APPNodebb1.15.0 – 1.18.4
Powiązane podatności
RCE w NodeBB via endpoint xmlrpc.php — wykonanie dowolnego kodu
NodeBB: path traversal umożliwiający zdalne wykonanie kodu JavaScript
NodeBB — przejęcie konta przez prototype pollution w socket.io
NodeBB: przejęcie konta przez przewidywalny token resetu hasła
NodeBB: prototype pollution i XSS w module uploader umożliwiające przejęcie konta