CVE-2026-121419
WysokieCVSS 8.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 25 - wyżej niż 25% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Atakujący może przejąć sesję MCP innego użytkownika i działać z jego uprawnieniami, co może prowadzić do nieautoryzowanych operacji na danych. Ryzyko dotyczy wdrożeń SurrealDB z MCP i wieloma użytkownikami korzystającymi z tej samej metody dostępu.
Rekomendacja
Zaktualizuj SurrealDB do wersji 3.3.0 lub nowszej. Do czasu aktualizacji ogranicz dostęp do MCP i monitoruj podejrzane sesje.
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-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.
- 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 from 3.1.0 before 3.3.0 contains an improper authentication vulnerability where the MCP BoundSubject fingerprint uses the access method name instead of per-user identity for JWT/Bearer access. Attackers with a valid low-privilege token for the same access method and a victim's mcp-session-id can hijack the session and execute MCP tools with the victim's roles and permissions.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

