SurrealDB przed wersją 3.1.5 zawiera podatność path traversal umożliwiającą użytkownikom bazy danych z rolą EDITOR lub OWNER odczytanie dowolnych plików dostępnych dla procesu SurrealDB. Podatność jest szczególnie groźna, gdy zmienna SURREAL_FILE_ALLOWLIST nie jest skonfigurowana.
▸ Pokaż oryginał (EN)
SurrealDB before 3.1.5 contains an arbitrary file read vulnerability in the DEFINE ANALYZER mapper filter that allows database users with EDITOR or OWNER roles to read files accessible to the SurrealDB process. Attackers can specify arbitrary file paths in the mapper filter and retrieve file contents through query error messages when the SURREAL_FILE_ALLOWLIST is empty or not configured.
Atakujący z rolą EDITOR lub OWNER może wskazać dowolną ścieżkę do pliku w parametrze filtra mapper polecenia DEFINE ANALYZER. SurrealDB nie waliduje prawidłowo podanej ścieżki, co stanowi klasyczny przypadek path traversal (CWE-22). Zawartość odczytywanego pliku jest następnie ujawniana atakującemu poprzez komunikaty o błędach zwracane przez silnik zapytań. Podatność jest możliwa do wykorzystania wyłącznie wtedy, gdy lista dozwolonych plików (SURREAL_FILE_ALLOWLIST) jest pusta lub w ogóle nieskonfigurowana.
Atakujący może odczytać dowolne pliki dostępne dla procesu SurrealDB na serwerze, w tym potencjalnie pliki konfiguracyjne, klucze prywatne, dane uwierzytelniające lub inne wrażliwe zasoby systemowe, co może prowadzić do dalszego naruszenia bezpieczeństwa środowiska.
Należy zaktualizować SurrealDB do wersji 3.1.5 lub nowszej. Jako dodatkowe zabezpieczenie tymczasowe należy skonfigurować zmienną SURREAL_FILE_ALLOWLIST, ograniczając dostęp do plików wyłącznie do dozwolonych ścieżek. Szczegóły dostępne w oficjalnym security advisory producenta pod adresem https://github.com/surrealdb/surrealdb/security/advisories/GHSA-cc8f-fcx3-gpjr
SurrealDB we wszystkich wersjach przed 3.1.5, gdy użytkownik posiada rolę EDITOR lub OWNER i zmienna środowiskowa SURREAL_FILE_ALLOWLIST jest pusta lub nieskonfigurowana.
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/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.5
Powiązane podatności
SurrealDB: Race condition w /rpc umożliwia przejęcie sesji uwierzytelnionej
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