CVE-2026-93596
ŚrednieCVSS 4.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 19 - wyżej niż 19% wszystkich znanych CVE
Streszczenie
Podatność w ArcadeDB przed wersją 26.9.1 pozwala uwierzytelnionemu użytkownikowi o niskich uprawnieniach na obejście kontroli dostępu ACL na poziomie typów wierzchołków i krawędzi. Dzieje się to przez wysłanie żądania wsadowego do punktu końcowego POST /api/v1/batch/{database} z domyślnym równoległym przetwarzaniem, które nie wiąże tożsamości użytkownika z wątkami roboczymi. W efekcie użytkownik może zapisywać krawędzie do chronionych wierzchołków, modyfikując dane grafu bez autoryzacji.
Ocena ryzyka
Organizacje polegające na kontroli dostępu opartej na typach lub grupach mogą doświadczyć nieautoryzowanej modyfikacji danych grafowych, co może prowadzić do naruszenia integralności danych i nieautoryzowanego dostępu do informacji.
Rekomendacja
Zaleca się zaktualizowanie ArcadeDB do wersji 26.9.1 lub nowszej, która zawiera pełną poprawkę. Do czasu aktualizacji można ustawić równoległe przetwarzanie (parallelFlush) na false, aby odrzucać takie żądania.
Inne podatności w ArcadeDB
Zobacz wszystkie- CVE-2026-93594Wysokie
ArcadeDB (com.arcadedb:arcadedb-engine) do 26.8.1 egzekwuje reguły kontroli dostępu per typ/rekord tylko w LocalBucket, opierając się na identyfikatorze pliku. Ścieżki wykonywania zapytań, które docierają do danych przez pliki indeksu LSM lub silnik TimeSeries, nie wywołują tego sprawdzenia, więc uwierzytelniony użytkownik bez uprawnień readRecord/deleteRecord może odczytać wartości kluczy indeksu, identyfikatory rekordów, wartości MAX/MIN, próbki TimeSeries, poznać liczbę rekordów i usuwać wpisy indeksu, co desynchronizuje indeks z danymi. Nazwy indeksów i typów są odkrywalne przez SELECT FROM schema:indexes. Problem dotyczy wdrożeń embedded i serwerowych oraz wszystkich transportów. Naprawiono w 26.9.1.
- CVE-2026-65831Wysokie
ArcadeDB przed wersją 26.7.1 pozwala użytkownikowi z rolą czytelnika na wysłanie POST /api/v1/command/{database} z language: js, ponieważ PolyglotQueryEngine.command, analyze i registerFunctions nie egzekwują autoryzacji administratora bazy danych. GraalPolyglotEngine pozwala również obejść whitelistę allowedPackages poprzez odbicie z obiektu bazy danych do dowolnych klas hosta.
- CVE-2026-54077Wysokie
W ArcadeDB przed wersją 26.6.1 instrukcja IMPORT DATABASE nie wymagała uprawnień administracyjnych i przekazywała źródło do modułu importu bez walidacji. Uwierzytelniony użytkownik z dostępem do poleceń SQL przez /api/v1/command lub /api/v1/query może podać adresy HTTP/HTTPS, aby wykonać żądania do usług wewnętrznych, lub ścieżki file://, aby odczytać pliki dostępne dla procesu serwera i zaimportować je jako rekordy. Importer XML umożliwia też przetwarzanie DTD i encji zewnętrznych.
- CVE-2026-75854Krytyczne
ArcadeDB przed wersją 26.8.1 zawiera podatność braku uwierzytelnienia w pluginie Redis wire-protocol, co pozwala nieuwierzytelnionym atakującym na odczyt, zapis i usuwanie danych. Atakujący mogą łączyć się z portem Redis i wykonywać dowolne polecenia na dowolnej bazie danych bez podawania poświadczeń.
- CVE-2026-75852Krytyczne
ArcadeDB przed wersją 26.8.1 nie egzekwuje uwierzytelniania SASL dla poleceń danych w pluginie MongoDB wire-protocol. Nieuwierzytelnieni atakujący mogą wydawać polecenia insert, find, update, delete i create na dowolnej bazie danych, łącząc się z portem 27017 bez poświadczeń.
- CVE-2026-75851Krytyczne
Serwer ArcadeDB (com.arcadedb:arcadedb-server) w wersjach 26.7.3 i wcześniejszych nie propaguje uwierzytelnionego podmiotu do asynchronicznych wątków roboczych poleceń. Gdy polecenie HTTP jest wysyłane z awaitResponse:false, wykonuje się na asynchronicznym workerze, którego DatabaseContext nie ma powiązanego użytkownika, co powoduje, że brama autoryzacji skryptów staje się nieaktywna. Użytkownik z dostępem tylko do odczytu do jednej bazy danych może wysłać asynchroniczne polecenie JavaScript (language=js) przez endpoint /api/v1/command, aby uruchomić kod z nieograniczonym dostępem do hosta (np. database.getSecurity().createUser) i utworzyć administratora całego serwera, eskalując do pełnej kontroli administracyjnej. Naprawione w wersji 26.8.1.
- CVE-2026-75843Krytyczne
ArcadeDB przed wersją 26.8.1 nie wiąże uwierzytelnionego podmiotu z wątkiem wykonawcy transakcji gRPC w beginTransaction, co pozwala uwierzytelnionym użytkownikom z prawami odczytu na wykonywanie poleceń JavaScript bez kontroli autoryzacji skryptów. Atakujący mogą wykonać executeCommand z identyfikatorem transakcji, aby uruchomić nieograniczony JavaScript tworzący konta administratora całego serwera.
- CVE-2026-67342Krytyczne
ArcadeDB przed wersją 26.7.2 zawiera podatność na ominięcie autoryzacji w handlerach HTTP dla endpointów szeregów czasowych, batch, Prometheus i Grafana. Atakujący może uzyskać dostęp do baz danych i modyfikować je bez odpowiednich uprawnień, wywołując bezpośrednio podatne endpointy z dowolnymi parametrami bazy danych.
- CVE-2026-67341Krytyczne
ArcadeDB przed wersją 26.7.2 nie egzekwuje kontroli autoryzacji skryptów dla instrukcji SQL DEFINE FUNCTION z językiem js. Atakujący z dostępem do bazy danych może wykonać dowolny kod JavaScript, przesyłając instrukcje DEFINE FUNCTION, omijając zabezpieczenia ograniczające skryptowanie do administratorów.
- CVE-2026-44221Krytyczne
ArcadeDB w wersjach od 21.10.1 do 26.4.1 zawiera dwie wady: (1) funkcja ServerSecurityUser.getDatabaseUser() zwraca użytkownika bazy z niezainicjalizowaną mapą dostępu do plików, co powoduje zezwolenie na wszystko; (2) metoda ArcadeDBServer.createDatabase() pomija ustawienie factory.setSecurity(...), przez co nowo utworzona baza danych ma wyłączoną autoryzację na poziomie rekordów. Uwierzytelniony użytkownik lub token API może odczytywać, zapisywać i modyfikować schemat w dowolnej bazie na tym samym serwerze.
Oryginalny opis (angielski, źródło NVD)
ArcadeDB before 26.9.1 (com.arcadedb:arcadedb-engine <= 26.8.1) fails to bind the authenticated principal onto the DatabaseAsyncTransaction async worker threads used by the parallel edge-connect phase of POST /api/v1/batch/{database}. Because those workers have no current user, LocalDatabase.checkPermissionsOnFile returns early and allows the write, bypassing per-type CREATE_RECORD/UPDATE_RECORD ACL enforcement. In deployments that rely on per-type or per-group ACLs, an authenticated low-privilege user holding CREATE_RECORD on an edge type E but with CREATE_RECORD/UPDATE_RECORD revoked on a vertex type V can submit a graph edge-load batch request (with parallelFlush at its default value of true) and durably append edges to protected vertices of type V by writing records into V's <V>_out_edges/<V>_in_edges buckets, resulting in unauthorized modification of graph adjacency. Setting parallelFlush=false causes the request to be correctly rejected. This is an incomplete fix of GHSA-c23x-pqcj-7hfm, which bound the principal only on the HTTP handler thread.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

