Kritické CVSS 9,5 Aktuálně
MongoDB opravuje kritickou chybu v replikaci: útočník bez přihlášení může shodit server, za určitých podmínek i spustit kód
MongoDB 10. listopadu 2026 zveřejnil zranitelnost CVE-2026-118383 s hodnocením CVSS 4.0 9,5. Chyba typu use-after-free v replikaci se projeví ve chvíli, kdy nově zvolený primární uzel replica setu dokončuje dohánění dat. Spustit ji lze požadavky bez přihlášení. Výsledkem je pád serveru, za určitých podmínek i spuštění libovolného kódu. Samostatné instance zasažené nejsou. O zneužívání se zatím neví.
Ve zkratce
- Týká se: správců samostatně provozovaných replica setů a shardovaných clusterů MongoDB. Samostatné instance (standalone mongod) zasažené nejsou.
- Opravené verze: 9.0.7, 8.3.16, 8.0.37, 7.0.48, 6.0.30, 5.0.35 a 4.4.32 (alert MongoDB z 10. 11. 2026).
- Chyba je v dohánění dat po volbě nového primárního uzlu. Stačí síťový přístup k databázi, přihlášení ne. CVSS 4.0 9,5, CVSS 3.1 9,0, vysoká složitost útoku.
- MongoDB indikátory napadení ani dočasná řešení nezveřejnil, chybu našel interně.
Zranitelnosti: CVE-2026-118383
Co se stalo
MongoDB zveřejnil 10. listopadu 2026 bezpečnostní alert ke zranitelnosti CVE-2026-118383 v databázovém serveru MongoDB Server. Jde o chybu typu use-after-free (CWE-416) v replikaci. Přidělující autorita (MongoDB) ji hodnotí CVSS 4.0 9,5 a CVSS 3.1 9,0 – kritická závažnost. Opravené verze vyšly pro všechny větve od 4.4 po 9.0.
Podle MongoDB chybu lze spustit požadavky bez přihlášení. Výsledkem je pád serveru, za určitých podmínek i spuštění libovolného kódu. Chybu našel MongoDB interně, o zneužívání nepíše.
Ve stejný den MongoDB vydal alerty i k dalším chybám (např. CVE-2026-120828, vyčerpání paměti, 8,7). Tento článek se věnuje té nejvážnější.
Technické podrobnosti
- Komponenta: replikace v MongoDB Server, konkrétně fáze dohánění dat (catch-up) po volbě nového primárního uzlu replica setu.
- Typ chyby: použití uvolněné paměti. Podle záznamu SERVER-138175 šlo o opětovný vstup (re-entrancy) do funkce
CatchupState::abort(). - Podmínky: útočník potřebuje jen síťový přístup k členu replica setu, přihlášení ani součinnost uživatele ne. Chyba se ale projeví jen ve chvíli, kdy nově zvolený primární uzel dokončuje dohánění dat – proto vysoká složitost útoku (AC:H).
- Oprava: kromě odstranění chyby MongoDB v rámci SERVER-138119 omezil volbu
readConcernafterOpTimejen na interní systémové uživatele.
Pro kontext: replica set je běžný způsob provozu MongoDB v produkci – jeden primární uzel přijímá zápisy, sekundární uzly drží kopii dat a při výpadku si zvolí nového primárního. Ten si nejdřív od ostatních členů dotáhne nejnovější zápisy, které ještě neměl (fáze catch-up, délku řídí nastavení settings.catchUpTimeoutMillis), a teprve potom začne přijímat zápisy. Právě při ukončení této fáze chyba nastává.
MongoDB ukázkový kód nezveřejnil a my ho nepřinášíme.
Koho se to týká
| Větev | Zasažené verze | Opravená verze |
|---|---|---|
| 9.0 | 9.0.0 až před 9.0.7 | 9.0.7 |
| 8.3 | 8.3.0 až před 8.3.16 | 8.3.16 |
| 8.0 | 8.0.0 až před 8.0.37 | 8.0.37 |
| 7.0 | 7.0.0 až před 7.0.48 | 7.0.48 |
| 6.0 | 6.0.0 až před 6.0.30 | 6.0.30 |
| 5.0 | 5.0.0 až před 5.0.35 | 5.0.35 |
| 4.4 | 4.4.0 až před 4.4.32 | 4.4.32 |
Zasažení jsou členové replica setů, včetně členů shardů a config serverů. Samostatný mongod podle MongoDB zasažený není. Verzi a roli zjistíte v mongosh:
db.version()
rs.status().members.map(m => [m.name, m.stateStr])
Jak poznat napadení
MongoDB indikátory napadení nezveřejnil. Z praxe doporučujeme:
- Projděte log
mongodkolem voleb primárního uzlu (záznamy oelectionacatchup) a hledejte neočekávané pády procesu nebo restarty od systemd či Kubernetes. - Zkontrolujte, odkud se k portu databáze (výchozí 27017) připojovaly adresy mimo vaše aplikační servery. Adresy z logu rychle vytáhnete naším extraktorem IOC – běží jen ve vašem prohlížeči.
- Při podezření na spuštění kódu prověřte procesy a soubory spuštěné pod uživatelem, pod kterým běží
mongod.
Co udělat
- Aktualizujte všechny členy replica setu na opravenou verzi své větve – postupně, nejdřív sekundární uzly, nakonec primární (po
rs.stepDown()). Uvědomte si, že volba nového primárního uzlu je přesně chvíle, kdy se chyba projevuje – do aktualizace omezte síťový přístup. - Omezte přístup k databázi: port MongoDB má být dostupný jen z aplikačních serverů a ostatních členů clusteru (firewall,
net.bindIp). Přihlášení proti této chybě nechrání. To je naše doporučení, MongoDB dočasná řešení neuvádí. - Zjistěte, kde databáze naslouchá: na serveru
ss -tlnp | grep mongoda v/etc/mongod.confhodnotunet.bindIp. Adresa0.0.0.0znamená všechna rozhraní – pak musí přístup hlídat firewall. - Ověřte verzi příkazem
db.version()na každém členu po aktualizaci. - Balíčky z distribucí a obrazy kontejnerů (
mongo:8.0apod.) aktualizujte podle jejich vydavatele.
Časová osa
Aktualizace
- 12. 11. 2026 – první verze článku.
Časté otázky
Mám jen jeden server MongoDB. Týká se mě to?
Podle MongoDB samostatný mongod zasažený není. Pokud ale instanci spouštíte s volbou replSet (i jako replica set s jediným členem), považujte ji za zasaženou a aktualizujte. Stav ověříte příkazem rs.status() v mongosh.
Proč je složitost útoku vysoká?
Chyba se projeví jen v určité chvíli – když nově zvolený primární uzel dokončuje dohánění dat (catch-up). Volba nového primárního uzlu nastává například při výpadku, restartu nebo údržbě. Proto má CVSS 3.1 složku AC:H. Dopad je ale vysoký, takže výsledné skóre zůstává kritické.
Co MongoDB Atlas?
Alert MongoDB stav cloudové služby Atlas neuvádí. Verzi svého clusteru ověříte v konzoli Atlasu; pokud je starší než opravená verze dané větve, sledujte oznámení MongoDB o údržbě.
Zdroje
- MongoDB – Security Alerts: CVE-2026-118383 (anglicky)
- NVD – CVE-2026-118383 (CWE-416, CVSS 4.0 9,5)
- MongoDB JIRA – SERVER-138175: oprava use-after-free v CatchupState::abort() (anglicky)
- MongoDB JIRA – SERVER-138119: readConcern afterOpTime jen pro systémové uživatele (anglicky)
- CISA – Known Exploited Vulnerabilities Catalog (anglicky)
Našli jste v článku chybu? Dejte nám vědět, opravu vyznačíme.