CVE-2025-71392
WysokieCVSS 8.0Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 38 - wyżej niż 38% wszystkich znanych CVE
Streszczenie
Podatność w SurrealDB przed wersjami 2.0.5, 2.1.5 i 2.2.2 pozwala na wstrzyknięcie SurrealQL poprzez nieprawidłowe escapowanie nazw tabel i pól w eksporcie CLI. Uwierzytelniony użytkownik systemowy z rolą OWNER lub EDITOR może utworzyć tabelę lub pole o złośliwej nazwie, która po zaimportowaniu kopii zapasowej przez uprzywilejowanego użytkownika wykonuje wstrzyknięty kod, prowadząc do eskalacji uprawnień i przejęcia instancji SurrealDB.
Ocena ryzyka
Organizacja narażona jest na eskalację uprawnień i całkowite przejęcie instancji SurrealDB przez atakującego z rolą OWNER lub EDITOR. Aplikacje pozwalające użytkownikom na definiowanie własnych tabel lub pól są dodatkowo podatne na uniwersalne wstrzyknięcie SurrealQL drugiego rzędu, nawet przy sanityzacji parametrów zapytań.
Rekomendacja
Niezwłocznie zaktualizuj SurrealDB do wersji 2.0.5, 2.1.5 lub 2.2.2 w zależności od używanej gałęzi. Ogranicz przyznawanie ról OWNER i EDITOR oraz unikaj umożliwiania użytkownikom definiowania własnych nazw tabel i pól.
Inne podatności w SurrealDB
Zobacz wszystkie- CVE-2026-109343Wysokie
SurrealDB przed wersją 3.3.0 umożliwia dostęp między dzierżawcami, ponieważ instrukcja SurrealQL USE przełącza sesję na dowolną przestrzeń nazw/bazę danych bez sprawdzania, czy poziom uwierzytelnienia wywołującego go obejmuje. Uwierzytelnieni użytkownicy przestrzeni nazw, baz danych lub rekordów mogą przełączyć się na innego dzierżawcę i czytać, tworzyć, aktualizować lub usuwać wiersze w tabelach, których PERMISSIONS na to pozwalają, takich jak PERMISSIONS FULL.
- CVE-2026-109342Średnie
SurrealDB w wersjach od 3.0.0 do 3.3.0 zawiera lukę braku uwierzytelniania w metodzie RPC revoke, która pozwala użytkownikom o niskich uprawnieniach lub nieuwierzytelnionym wywołującym unieważniać tokeny odświeżania innych użytkowników bez dowodu posiadania. Atakujący mogą uzyskać identyfikatory grantów przez ACCESS SHOW ALL z uprawnieniem VIEWER lub wyciekłe tokeny, a następnie trwale unieważnić tokeny odświeżania, wymuszając ponowne uwierzytelnienie.
- CVE-2026-109341Wysokie
SurrealDB przed wersją 3.3.0 zawiera podatność obejścia autoryzacji, która pozwala wywołującym z uprawnieniami zapisu na poziomie tabeli na odczyt pól ograniczonych przez SELECT poprzez rozwiązywanie wskaźników JSON Patch względem niezredukowanego rekordu. Atakujący mogą użyć operacji PATCH copy lub move, aby skopiować ukryte pola do czytelnych miejsc, lub nadużyć błędów niezgodności testu jako wyroczni ujawniającej.
- CVE-2026-109340Średnie
SurrealDB w wersjach od 3.1.0 do 3.3.0 zawiera lukę obejścia autoryzacji, która pozwala uwierzytelnionym użytkownikom usuwać chronione krawędzie grafu poprzez wywołanie REFERENCE ON DELETE CASCADE. Atakujący z uprawnieniem do usuwania w tabeli referencyjnej może usunąć rekord, którego kaskada wyłącza sprawdzanie uprawnień dla czyszczenia krawędzi, usuwając krawędzie mimo klauzuli PERMISSIONS FOR delete w tabeli krawędzi.
- CVE-2026-109339Średnie
SurrealDB w wersjach od 3.1.0 do 3.3.0 pozwala modułom Surrealism wyczerpać pamięć serwera, ponieważ linie stdout/stderr modułu są buforowane bez ograniczeń w pamięci hosta, omijając skonfigurowany limit pamięci modułu. Atakujący może uruchomić złośliwy moduł zainstalowany przez właściciela, który zapisuje dane wyjściowe bez znaków nowej linii, powodując awarię serwera i odmowę usługi dla wszystkich przestrzeni nazw i baz danych.
- CVE-2026-109338Średnie
SurrealDB w wersjach przed 3.3.0 zawiera lukę odmowy usługi, która pozwala użytkownikom z możliwością wykonywania zapytań na awarię serwera poprzez odczytywanie nie-ASCII wartości nagłówków w osadzonym JavaScripcie. Atakujący z włączonym skryptowaniem może odczytać takie wartości przez Headers get(), entries(), values() lub getSetCookie(), albo zwrócić je z punktów końcowych fetch(), powodując przerwanie procesu serwera.
- CVE-2026-109337Średnie
SurrealDB w wersjach przed 3.3.0 zawiera lukę obejścia autoryzacji, która pozwala użytkownikom rekordów wywnioskować wartości pól ukrytych przez uprawnienia SELECT na poziomie pola, używając predykatów LIVE SELECT WHERE na $before lub $after. Atakujący mogą tworzyć powtarzające się predykaty i obserwować, czy powiadomienia są dostarczane przy CREATE, UPDATE lub DELETE, aby potwierdzić lub zawęzić wartości zastrzeżonych pól.
- CVE-2026-109336Średnie
SurrealDB w wersjach przed 3.3.0 zawiera lukę obejścia autoryzacji, która pozwala użytkownikom rekordów odczytywać pola ukryte przez uprawnienia SELECT na poziomie pola poprzez projekcje LIVE SELECT. Atakujący mogą projektować zastrzeżone pola z niezredukowanych parametrów $after lub $before pod aliasem, aby otrzymać dokładne przechowywane wartości w powiadomieniach CREATE, UPDATE i DELETE.
- CVE-2026-109335Średnie
SurrealDB w wersjach od 3.0.0 do 3.3.0 zawiera lukę ujawnienia informacji, która pozwala użytkownikom rekordów odczytywać wartości ukryte przez uprawnienia SELECT na poziomie pola poprzez pola COMPUTED. Atakujący mogą wybierać rekordy, których czytelne pola COMPUTED pochodzą z ukrytych pól, lub używać klauzul RETURN przy zapisie z $before/$after, aby ujawnić ukryte wartości.
- CVE-2026-109334Wysokie
SurrealDB przed wersją 3.3.0 nie sprawdza wybranej przez wywołującego przestrzeni nazw lub bazy danych względem poziomu, na którym uwierzytelniony jest użytkownik systemowy na poziomie przestrzeni nazw lub bazy danych, co umożliwia dostęp między dzierżawcami. Uwierzytelniony atakujący może ustawić nagłówki Surreal-NS/Surreal-DB na /sql lub wywołać metodę RPC use, aby czytać, tworzyć, modyfikować i usuwać wiersze oraz odczytywać wartości DEFINE PARAM w innym dzierżawcy, jeśli PERMISSIONS tabel na to pozwalają.
Oryginalny opis (angielski, źródło NVD)
SurrealDB before 2.0.5, 2.1.x before 2.1.5, and 2.2.x before 2.2.2 fails to properly escape table and field names in the command-line export command. An authenticated System User with OWNER or EDITOR roles can create tables or fields with malicious names containing SurrealQL. When a higher-privileged user subsequently imports the exported backup, the injected SurrealQL executes, enabling privilege escalation and root-level takeover of the SurrealDB instance. Applications that let users define custom tables or fields are also exposed to a universal second-order SurrealQL injection even when query parameters are sanitized.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

