Uwierzytelniony użytkownik może wywołać awaryjne zamknięcie procesu serwera MongoDB (mongod) poprzez użycie wyrażenia agregacji `$_internalIndexKey` z nieprawidłowo obsługiwaną specyfikacją compound wildcard index. Podatność umożliwia atak typu Denial of Service na każdy dostępny serwer MongoDB, do którego atakujący posiada konto.
▸ Pokaż oryginał (EN)
The `$_internalIndexKey` aggregation expression can be used by any authenticated user to crash a MongoDB server (mongod). The expression fails to handle compound wildcard index specifications, triggering an internal consistency check that aborts the server process. The user must be able to run an aggregation pipeline.
Wyrażenie agregacji `$_internalIndexKey` nie obsługuje poprawnie specyfikacji compound wildcard index. Gdy takie wyrażenie zostanie użyte w potoku agregacji (aggregation pipeline), wyzwala wewnętrzną weryfikację spójności (internal consistency check), która kończy się niepowodzeniem i powoduje natychmiastowe przerwanie procesu serwera (abort). Do wywołania podatności wystarczy uprawnienie do uruchamiania aggregation pipeline — jest to standardowe uprawnienie przysługujące typowym użytkownikom bazy danych.
Atakujący może spowodować awaryjne zakończenie procesu mongod, co skutkuje niedostępnością serwera bazy danych (Denial of Service). Atak może być wielokrotnie powtarzany przez uwierzytelnionego użytkownika w celu utrzymania ciągłej niedostępności usługi.
Należy zastosować patche dostępne u producenta zgodnie z referencjami (https://jira.mongodb.org/browse/SERVER-123081). Jako środek tymczasowy należy ograniczyć uprawnienia użytkowników do uruchamiania aggregation pipeline wyłącznie do zaufanych kont oraz monitorować logi serwera pod kątem nieoczekiwanych awarii procesu mongod.
Wersje wskazane w referencjach producenta (MongoDB). Podatność dotyczy instancji mongod, na których uwierzytelnieni użytkownicy mają możliwość uruchamiania aggregation pipeline.
Podatność sklasyfikowana jako CWE-617 (Reachable Assertion) — mechanizm polega na wyzwoleniu wewnętrznego asercji przez celowo spreparowane zapytanie. Wektor CVSS wskazuje na wymagane uwierzytelnienie (PR:L), brak wpływu na poufność i integralność danych, przy wysokim wpływie na dostępność (VA:H).
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/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:Y/R:A/V:X/RE:X/U:XMongodb
APPMongodb7.0.0 – 7.0.39 (bez)8.0.0 – 8.0.28 (bez)8.2.0 – 8.2.12 (bez)8.3.0 – 8.3.7 (bez)
Powiązane podatności
Heap Buffer Overflow w MongoDB (tryb compute) podczas przetwarzania BSON
MongoDB: podatność w kompresji protokołu sieciowego — DoS i modyfikacja pamięci
Mismatched length fields in Zlib compressed protocol headers may allow a read of uninitialized heap memory by ...
MongoDB – wyczerpanie pamięci przez wyrażenia generujące duże tablice (DoS)
MongoDB: DoS przez nieprawidłowe polecenie transakcji — CWE-617