SurrealDB przed wersją 1.1.1 zawiera podatność typu format string w funkcji rquickjs Exception::throw_type, aktywną gdy włączony jest moduł skryptowy. Podatność umożliwia atakującemu odczyt dowolnych obszarów pamięci lub wykonanie kodu z uprawnieniami procesu SurrealDB.
▸ Pokaż oryginał (EN)
SurrealDB before 1.1.1 contains a format string vulnerability in the rquickjs Exception::throw_type function when scripting is enabled. Attackers with scripting privileges can supply format string sequences in error inputs to read arbitrary memory or execute code with SurrealDB process privileges.
Atakujący posiadający uprawnienia do wykonywania skryptów może dostarczyć specjalnie spreparowane sekwencje format string w danych wejściowych błędów przekazywanych do funkcji Exception::throw_type w bibliotece rquickjs. Podatność wynika z braku odpowiedniej walidacji i sanityzacji danych wejściowych przed ich użyciem jako ciągu formatującego (CWE-134 — niekontrolowany ciąg formatujący). Skutkuje to możliwością odczytu dowolnych lokalizacji pamięci procesu lub wykonaniem złośliwego kodu.
Atakujący może odczytać wrażliwe dane z pamięci procesu SurrealDB lub wykonać dowolny kod z uprawnieniami tego procesu, co może prowadzić do pełnego przejęcia kontroli nad serwerem bazy danych.
Należy zaktualizować SurrealDB do wersji 1.1.1 lub nowszej. Jeśli natychmiastowa aktualizacja nie jest możliwa, należy rozważyć wyłączenie funkcji skryptowych (scripting) w konfiguracji SurrealDB w celu ograniczenia powierzchni ataku.
SurrealDB w wersjach przed 1.1.1 z włączonym modułem skryptowym (scripting).
Podatność wymaga posiadania przez atakującego uprawnień do wykonywania skryptów w SurrealDB (PR:L), co ogranicza powierzchnię ataku do uwierzytelnionych użytkowników z odpowiednimi uprawnieniami. Szczegóły dostępne w oficjalnym security advisory na GitHub (GHSA-q3gg-m8hr-h4x4).
CVSS:4.0/AV:N/AC:H/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XDelskayn Rquickjs
APPDelskayn< 0.4.2Surrealdb
APPSurrealdb< 1.1.1
Powiązane podatności
SurrealDB: Race condition w /rpc umożliwia przejęcie sesji uwierzytelnionej
SurrealDB: injection SurrealQL przez eksport — privilege escalation
SurrealDB: Odczyt dowolnych plików przez filtr DEFINE ANALYZER
SurrealDB — brak walidacji zakresu w niestandardowych trasach API
SurrealDB — DoS poprzez przepełnienie stosu wywołaniami łańcuchów operatorów