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-121423Średnie
SurrealDB przed wersją 3.3.0 zawiera lukę nieograniczonej rekurencji, która pozwala uwierzytelnionym użytkownikom przerwać proces surreald poprzez wywołanie przepełnienia stosu na głęboko zagnieżdżonych wartościach. Atakujący mogą wielokrotnie uruchamiać instrukcje UPDATE owijające przechowywaną tablicę w nią samą, a następnie SELECT lub EXPORT, powodując trwałą odmowę usługi dla wszystkich dzierżawców.
- CVE-2026-121422Średnie
SurrealDB od wersji 3.1.0 przed 3.3.0 zawiera lukę server-side request forgery, która pozwala właścicielom bazy danych ominąć reguły deny-net dla konkretnych portów, używając adresów URL JWKS z domyślnymi portami. Atakujący mogą skonfigurować metodę dostępu JWT lub record, której adres URL JWKS pomija port 80 lub 443, powodując ślepe żądania GET do jawnie zabronionych usług wewnętrznych.
- CVE-2026-121421Średnie
SurrealDB od wersji 3.1.0 przed 3.3.0 zawiera lukę server-side request forgery w dopasowywaniu zdolności sieciowych, ponieważ reguły --deny-net dla konkretnych portów (HOST:PORT lub IP:PORT) dopasowują tylko dosłowny ciąg hosta, podczas gdy sprawdzanie rozwiązanego adresu IP pomija port. Uwierzytelnieni użytkownicy mogą wywoływać funkcje http::* z nazwą hosta rozwiązującą się do zabronionego adresu IP lub adresu IP zabronionego hosta, aby dotrzeć do zablokowanych usług wewnętrznych.
- CVE-2026-121420Niskie
SurrealDB od 3.2.0 przed 3.3.0 zawiera podatność na fałszowanie żądań po stronie serwera w sprawdzeniu is_private_ip w FilteringResolver, które nie odpakowuje adresów IPv6 NAT64, 6to4 i Teredo. Uwierzytelnieni użytkownicy wywołujący wychodzące żądania HTTP przez funkcje http SurrealQL mogą użyć adresów przejściowych osadzających prywatne cele IPv4, aby dotrzeć do localhost, usług wewnętrznych lub punktów końcowych metadanych chmury.
- CVE-2026-121419Wysokie
SurrealDB od wersji 3.1.0 przed 3.3.0 zawiera podatność na nieprawidłowe uwierzytelnianie, w której odcisk MCP BoundSubject używa nazwy metody dostępu zamiast tożsamości użytkownika dla dostępu JWT/Bearer. Atakujący z ważnym tokenem o niskich uprawnieniach dla tej samej metody dostępu i identyfikatorem mcp-session-id ofiary może przejąć sesję i wykonywać narzędzia MCP z rolami i uprawnieniami ofiary.
- CVE-2026-121418Średnie
SurrealDB od wersji 3.1.0 przed 3.3.0 zawiera lukę nieprawidłowej autoryzacji, która pozwala użytkownikom rekordów wywnioskować wartości zastrzeżonych pól, ponieważ planista strumieniowania używa indeksów na polach z restrykcyjnymi uprawnieniami SELECT. Atakujący mogą wysyłać zapytania pełnotekstowe MATCHES, złożone B-tree lub HNSW KNN przeciwko zastrzeżonym polom, aby dowiedzieć się, które rekordy zawierają zgadywane wartości lub najbliższe wektory.
- CVE-2026-121417Wysokie
SurrealDB przed wersją 3.3.0 zawiera podatność use-after-free w backendach KV surrealdb-core, które przekazują pożyczony stan transakcji do domknięć affinitypool::spawn_local polegających na Drop przyszłości dla bezpieczeństwa. Osadnicy Rusta, którzy wyciekają wysłaną przyszłość (np. przez mem::forget) i porzucają transakcję, powodują, że wątki puli czytają i zapisują zwolnioną pamięć, grożąc awariami lub uszkodzeniem pamięci.
- CVE-2026-121416Wysokie
SurrealDB w wersjach od 2.0.0 przed 3.3.1 nie egzekwuje ograniczeń --deny-funcs dla wywołań funkcji w stylu metodowym w silniku strumieniowym, ponieważ MethodPart::evaluate wywołuje rozwiązane funkcje bez sprawdzenia uprawnień. Uwierzytelnieni użytkownicy mogący przesyłać zapytania mogą uruchamiać zabronione funkcje składnią metodową, np. [1,2].map() lub $f.put()/$f.get() do zapisu i odczytu danych bucketów plików mimo zakazów file::*.
- 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.
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

