CVE-2026-75851
KrytyczneCVSS 9.9Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 24 - wyżej niż 24% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Użytkownik z ograniczonymi uprawnieniami może uzyskać pełną kontrolę administracyjną nad serwerem, co może prowadzić do całkowitego naruszenia bezpieczeństwa systemu.
Rekomendacja
Zaleca się natychmiastową aktualizację ArcadeDB do wersji 26.8.1 lub nowszej, która usuwa tę podatność.
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-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-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.
- CVE-2026-93598Wysokie
ArcadeDB (com.arcadedb:arcadedb-engine) do 26.8.1 zawiera niekompletną listę zabronioną w sandboxie skryptów polyglot: HostClassLookupFilter.DENIED wymienia java.util.ResourceBundle jako nazwę klasy, co nie obejmuje podklas, a ScriptTriggerExecutor.ALLOWED_PACKAGES zezwala na java.util.*. Użytkownik z uprawnieniem UPDATE_SCHEMA może odwołać się do java.util.PropertyResourceBundle lub java.util.ListResourceBundle i wywołać ResourceBundle.getBundle(String), aby odczytać zasoby .properties ze ścieżki klas aplikacji, ujawniając poufne dane konfiguracyjne. Naprawiono w 26.9.1.
- CVE-2026-93597Wysokie
ArcadeDB w wersjach przed 26.9.1 nie waliduje adresów przejściowych IPv6 w zabezpieczeniu SSRF używanym przez IMPORT DATABASE i polecenia serwera. Uwierzytelnieni atakujący mogą dostarczyć adresy URL rozwiązujące się do adresów NAT64, 6to4 lub Teredo zawierających wewnętrzne adresy IPv4 (RFC 1918 lub loopback), aby uzyskać dostęp do usług wewnętrznych i punktów końcowych metadanych chmury.
- CVE-2026-93596Średnie
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.
Oryginalny opis (angielski, źródło NVD)
ArcadeDB server (com.arcadedb:arcadedb-server) in versions 26.7.3 and earlier fails to propagate the authenticated principal to asynchronous command worker threads. When an HTTP command is submitted with awaitResponse:false, it executes on an async worker whose DatabaseContext has no bound user, causing the scripting authorization gate to become a no-op. A user with only read access to a single database can submit an asynchronous JavaScript (language=js) command via the /api/v1/command endpoint to run code with unrestricted host access (e.g., database.getSecurity().createUser) and create a server-wide administrator, escalating to full administrative control. Fixed in 26.8.1.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

