NodeBB w wersjach od 2.5.0 do 2.8.7 zawiera podatność path traversal w mechanizmie eksportu użytkowników, która pozwala na dowolne wykonanie plików JavaScript na serwerze. Podatność uzyskała maksymalny wynik CVSS 10.0, co czyni ją wyjątkowo krytyczną.
▸ Pokaż oryginał (EN)
NodeBB is Node.js based forum software. Starting in version 2.5.0 and prior to version 2.8.7, due to the use of the object destructuring assignment syntax in the user export code path, combined with a path traversal vulnerability, a specially crafted payload could invoke the user export logic to arbitrarily execute javascript files on the local disk. This issue is patched in version 2.8.7. As a workaround, site maintainers can cherry pick the fix into their codebase to patch the exploit.
Podatność wynika z połączenia dwóch elementów: użycia składni destrukturyzacji obiektów (object destructuring assignment) w kodzie obsługującym eksport danych użytkownika oraz błędu path traversal (CWE-22). Atakujący może spreparować specjalnie skonstruowany payload, który trafia do logiki eksportu użytkownika i wskazuje na dowolny plik JavaScript znajdujący się na lokalnym dysku serwera. Plik ten zostaje następnie wykonany przez środowisko uruchomieniowe Node.js bez wymagania uwierzytelnienia ani interakcji ze strony użytkownika.
Atakujący może doprowadzić do zdalnego wykonania kodu (RCE) na serwerze — w zależności od zawartości dostępnych plików na dysku może przejąć pełną kontrolę nad systemem, wykraść dane lub zakłócić działanie usługi.
Należy zaktualizować NodeBB do wersji 2.8.7, w której podatność została załatana. Administratorzy, którzy nie mogą przeprowadzić pełnej aktualizacji, mogą jako obejście (workaround) ręcznie zastosować poprawkę (cherry pick) z repozytorium GitHub (commit ec58700f6dff8e5b4af1544f6205ec362b593092).
NodeBB w wersjach od 2.5.0 (włącznie) do 2.8.7 (wyłącznie).
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:HNodebb
APPNodebb2.5.0 – 2.8.7 (bez)
Powiązane podatności
RCE w NodeBB via endpoint xmlrpc.php — wykonanie dowolnego kodu
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
NodeBB — pominięcie uwierzytelnienia w weryfikacji tokenów API (Auth Bypass)