Krytyczna luka pre-auth w MongoDB może wywołać awarię węzłów podczas failoveru - Security Bez Tabu

Krytyczna luka pre-auth w MongoDB może wywołać awarię węzłów podczas failoveru

Cybersecurity news

Wprowadzenie do problemu / definicja

W MongoDB ujawniono krytyczną podatność oznaczoną jako CVE-2026-118383, która dotyczy mechanizmu replikacji oraz przełączania ról w zestawach replik. Jest to luka typu pre-auth, co oznacza, że w określonych warunkach atakujący nie musi się uwierzytelniać, aby przygotować stan prowadzący do awarii procesu serwera.

Problem wynika z błędu use-after-free, czyli sytuacji, w której aplikacja odwołuje się do obszaru pamięci już wcześniej zwolnionego. Tego rodzaju podatności są szczególnie groźne w komponentach odpowiedzialnych za wysoką dostępność, ponieważ mogą prowadzić do niedostępności usług w momentach krytycznych operacyjnie.

W skrócie

CVE-2026-118383 została oceniona na 9.5 w skali CVSS v4.0 i dotyczy członków replica setów MongoDB, w tym także węzłów shardów oraz config serverów w środowiskach shardowanych. Podatność nie obejmuje instancji standalone mongod.

  • Atak wykorzystuje specjalnie przygotowane żądania ping z polem readConcern.afterOpTime.
  • Stan przygotowany przez atak może zostać aktywowany dopiero podczas późniejszego failoveru.
  • Najbardziej prawdopodobnym skutkiem jest awaria procesu mongod i zaburzenie dostępności klastra.
  • Producent opublikował poprawki dla wspieranych gałęzi.

Kontekst / historia

Podatność została ujawniona publicznie w listopadzie 2026 roku. Według dostępnych informacji problem wykryto wewnętrznie podczas działań związanych z hardeningiem bezpieczeństwa. Następnie niezależne analizy badaczy potwierdziły możliwość odtworzenia scenariusza awarii w środowisku laboratoryjnym.

Znaczenie tej luki wynika z architektury replica setów. W typowym wdrożeniu MongoDB jeden węzeł pełni rolę primary i obsługuje operacje zapisu, a pozostałe węzły odpowiadają za replikację danych. Gdy primary staje się niedostępny, klaster wybiera nowy węzeł główny. Jeśli nowo wybrany serwer ma zaległości replikacyjne, musi przejść etap catch-up przed rozpoczęciem obsługi nowych zapisów. To właśnie w tej fazie może dojść do aktywacji błędu.

Analiza techniczna

Od strony technicznej CVE-2026-118383 dotyczy logiki primary catch-up. Atakujący może wysłać dwa odpowiednio przygotowane żądania ping z parametrem readConcern.afterOpTime, które pozostawiają na podatnym węźle wewnętrzne mechanizmy oczekujące na osiągnięcie określonego punktu replikacji.

Żądania te nie powodują natychmiastowej awarii. Tworzą jednak stan, który może przetrwać do chwili, gdy dany członek replica setu zostanie wybrany na primary mimo opóźnienia względem innych węzłów. Po zakończeniu catch-up uruchamiana jest procedura czyszczenia stanu. Na podatnych wersjach może ona wykonać się podwójnie, co prowadzi do użycia pamięci po jej zwolnieniu i zakończenia procesu błędem segmentacji.

W praktyce atakujący nie ma pełnej kontroli nad całym łańcuchem zdarzeń. Nie może łatwo wymusić wyboru konkretnego węzła ani zagwarantować, że będzie on opóźniony w odpowiednim momencie. Mimo to przygotowany wcześniej stan może zostać aktywowany przy naturalnych zdarzeniach operacyjnych, takich jak restart, awaria primary, prace utrzymaniowe czy zwykły failover.

Publicznie opisane analizy koncentrują się głównie na scenariuszu denial-of-service. Jednocześnie sam charakter błędu pamięciowego oznacza, że incydent należy traktować bardzo poważnie, zwłaszcza w systemach produkcyjnych o wysokich wymaganiach dostępności.

Wersje zawierające poprawki obejmują między innymi: 9.0.7, 8.3.16, 8.0.37, 7.0.48, 6.0.30, 5.0.35 oraz 4.4.32. Wszystkie wcześniejsze wydania w tych gałęziach należy uznać za podatne.

Konsekwencje / ryzyko

Najbardziej bezpośrednim skutkiem wykorzystania luki jest zdalne doprowadzenie do awarii podatnego węzła bez uwierzytelnienia, jeśli spełnione zostaną odpowiednie warunki związane z replikacją i failoverem. W środowiskach o ograniczonej redundancji może to oznaczać utratę dostępności usługi, wydłużony czas odzyskiwania, brak primary lub niestabilność całego klastra.

Ryzyko rośnie tam, gdzie instancje MongoDB są nadmiernie eksponowane sieciowo lub gdzie kontrola dostępu do portów bazodanowych jest niewystarczająca. Szczególnie narażone są środowiska self-managed, w których poszczególne węzły mogą działać na różnych wersjach lub nie zostały objęte spójnym procesem aktualizacji.

W przypadku większych klastrów shardowanych skutki mogą objąć nie tylko pojedynczy replica set, ale także komponenty odpowiedzialne za szerszą dostępność całej platformy danych. Nawet jeśli najbardziej realnym skutkiem pozostaje DoS, podatności pamięciowe w procesie serwera zawsze wymagają traktowania priorytetowego.

Rekomendacje

Najważniejszym krokiem jest niezwłoczna aktualizacja wszystkich członków replica setów do wersji zawierających poprawkę. Dotyczy to zarówno głównych instancji produkcyjnych, jak i węzłów pomocniczych, środowisk kontenerowych oraz serwerów, które mogły pozostać poza wcześniejszymi oknami serwisowymi.

Organizacje korzystające z usług zarządzanych powinny sprawdzić, czy poprawki zostały już wdrożone w ramach maintenance window. W środowiskach self-managed warto przeprowadzić pełny audyt wersji na każdym członku klastra.

  • Ograniczyć dostęp sieciowy do MongoDB wyłącznie do zaufanych hostów aplikacyjnych i administracyjnych.
  • Zablokować publiczną ekspozycję portów bazodanowych.
  • Zweryfikować listy kontroli dostępu, segmentację sieci i reguły firewall.
  • Monitorować logi pod kątem nietypowych komend ping z readConcern.afterOpTime.
  • Analizować zdarzenia failover, wybory primary oraz awarie procesu mongod.
  • Przygotować procedury awaryjne odtworzenia quorum i restartu usług.

Dodatkowo zespoły bezpieczeństwa powinny zinwentaryzować wszystkie wdrożenia MongoDB, określić, które instancje działają jako członkowie replica setów, oraz sprawdzić ich ekspozycję w narzędziach ASM lub EASM.

Podsumowanie

CVE-2026-118383 pokazuje, jak niebezpieczne mogą być błędy pamięciowe w mechanizmach odpowiedzialnych za replikację i przełączanie ról w systemach bazodanowych. Choć wykorzystanie podatności wymaga określonego scenariusza operacyjnego, etap przygotowawczy może zostać wykonany bez uwierzytelnienia.

Dla organizacji korzystających z MongoDB priorytetem powinno być szybkie wdrożenie poprawek, ograniczenie powierzchni ataku oraz weryfikacja logów i zdarzeń failover. W środowiskach opartych na replica setach opóźnianie aktualizacji może przełożyć się bezpośrednio na ryzyko utraty dostępności usług.

Źródła

  1. https://thehackernews.com/2026/11/critical-pre-auth-mongodb-flaw-cve-2026.html
  2. https://securitylabs.datadoghq.com/articles/cve-2026-118383-mongodb-server-use-after-free/
  3. https://www.mongodb.com/community/forums/t/important-mongodb-security-update-available-action-required-november-10-2026/344843
  4. https://www.mongodb.com/resources/products/alerts