CVE-2026-121416
WysokieCVSS 7.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 24 - wyżej niż 24% wszystkich znanych CVE
Streszczenie
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::*.
Ocena ryzyka
Użytkownik może obejść zakazy funkcji i uzyskać dostęp do operacji plikowych, które powinny być zablokowane. Może to prowadzić do nieautoryzowanego odczytu lub zapisu danych.
Rekomendacja
Zaktualizuj SurrealDB do wersji 3.3.1 lub nowszej. Do czasu aktualizacji ogranicz możliwość przesyłania zapytań przez użytkowników i monitoruj użycie funkcji plikowych.
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-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.
Oryginalny opis (angielski, źródło NVD)
SurrealDB 2.0.0 before 3.3.1 does not enforce --deny-funcs restrictions on method-style function calls in the streaming engine, because MethodPart::evaluate invokes resolved functions without a capability check. Authenticated users who can submit queries can run denied functions via method syntax, e.g. [1,2].map() or $f.put()/$f.get() to write and read file bucket data despite file::* denials.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

