SurrealDB w wersjach przed 3.1.0 zawiera podatność typu time-of-check/time-of-use (TOCTOU) w endpoincie HTTP /rpc, która pozwala nieuwierzytelnionym żądaniom na dziedziczenie stanu sesji uwierzytelnionego użytkownika. Jest to szczególnie groźne, ponieważ atakujący bez jakichkolwiek poświadczeń może przejąć uprawnienia aktywnych użytkowników.
▸ Pokaż oryginał (EN)
SurrealDB versions before 3.1.0 contain a time-of-check/time-of-use race condition in the HTTP /rpc endpoint that allows unauthenticated requests to inherit authenticated session state. Unauthenticated attackers can send concurrent requests to the /rpc endpoint while legitimate authenticated traffic is active to execute operations with hijacked user privileges.
Podatność polega na race condition pomiędzy momentem sprawdzenia stanu uwierzytelnienia a momentem jego faktycznego użycia (CWE-362, TOCTOU). Atakujący wysyła równoległe żądania do endpointu /rpc w tym samym czasie, gdy legalni użytkownicy prowadzą uwierzytelniony ruch. W wyniku wyścigu nieuwierzytelnione żądanie atakującego może przejąć stan sesji aktywnego, zalogowanego użytkownika i wykonywać operacje z jego uprawnieniami.
Nieuwierzytelniony atakujący może wykonywać operacje bazodanowe z uprawnieniami przejętego użytkownika, co może prowadzić do nieuprawnionego odczytu, modyfikacji lub usunięcia danych. Skuteczna eksploatacja stanowi pełny obejście mechanizmu uwierzytelnienia (Auth Bypass).
Należy zaktualizować SurrealDB do wersji 3.1.0 lub nowszej. Szczegóły dostępne w oficjalnym poradniku bezpieczeństwa pod adresem: https://github.com/surrealdb/surrealdb/security/advisories/GHSA-4vgr-h27g-cf9p
SurrealDB w wersjach przed 3.1.0
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XSurrealdb
APPSurrealdb< 3.1.0
Powiązane podatności
SurrealDB: injection SurrealQL przez eksport — privilege escalation
Format string vulnerability w SurrealDB — RCE przez scripting
SurrealDB — DoS poprzez przepełnienie stosu wywołaniami łańcuchów operatorów
SurrealDB — brak walidacji zakresu w niestandardowych trasach API
SurrealDB: Odczyt dowolnych plików przez filtr DEFINE ANALYZER