Geri Dön

Kritik Kimlik Doğrulama Öncesi MongoDB Açığı (CVE-2026-118383) Devralma Sırasında Geride Kalan Sunucuları Çökertebilir
SiTech AI Team3 dk okuma

Kritik Kimlik Doğrulama Öncesi MongoDB Açığı (CVE-2026-118383) Devralma Sırasında Geride Kalan Sunucuları Çökertebilir

MongoDB, iki kimlik doğrulamasız ping isteğinden sonra geride kalmışken bir seçim kazanırsa çoğaltma kümesi üyesini çökertebilen kritik kimlik doğrulama öncesi use-after-free açığı CVE-2026-118383 için düzeltmeler yayımladı.

MongoDB, iki kimlik doğrulamasız istek aldıktan sonra çoğaltmada geride kalmışken bir seçim kazanırsa çoğaltma kümesi üyesini çökertebilen MongoDB Server'daki kritik kimlik doğrulama öncesi açığı CVE-2026-118383 için düzeltilmiş sürümler yayımladı. Açık, CVSS 4.0 ölçeğinde 10 üzerinden 9.5 puan alan bir use-after-free açığıdır. Etkilenen üyeler arasında çoğaltma kümesi üyeleri ile parçalanmış kümelerin shard ve config sunucu üyeleri bulunur; tek başına çalışan bir mongod etkilenmez.

Açığın işleyişi

Güvenlik açığı bulunan sürümlerde kimlik doğrulamayı açmak bu iki isteği durdurmaz. Bunlar readConcern.afterOpTime değeri taşıyan ping komutlarıdır ve her biri sunucudan çoğaltmanın belirli bir noktaya ulaşmasını beklemesini ister; bu da waiter adı verilen bekleyen bir bildirim oluşturur. Waiter'lar sona ermez ve üye yeniden başlatılana, geri alınana (rollback) ya da primary görevinden ayrılıncaya kadar kalır. Çökme, bunları alan üye başka bir üyenin gerisindeyken sonraki bir seçimi kazandığında olur; yakalama (catch-up) sona erince temizlik iki kez çalışır ve serbest bırakılmış belleği yeniden kullanır, bu da yeni primary'nin yazmaları kabul etmeden önce çökmesine yol açar. Araştırmacılar, bu koşullar sağlandığında çökmenin bir zamanlama yarışı kazanmaya bağlı olmadığını ve bir saldırganın hedeflenen üyeyi geride bırakamayacağını, seçimi kazandıramayacağını ya da bunlardan birinin ne zaman olduğunu göremeyeceğini söyledi.

Etkilenen sürümler ve düzeltmeler

MongoDB, etkilenen her dal için düzeltilmiş bir sürüm yayımladı ve bir dalın ilk sürümünden itibaren dal içindeki her daha eski sürüm etkilenir. Kendi kendini yöneten (self-managed) dağıtımların her çoğaltma kümesi üyesinde düzeltilmiş sürümü bulundurması gerekir; yükseltmeden sonra yöneticiler, bakım sırasında çevrimdışı olanlar ve container içindeki üyeler dahil, her üyenin çalıştırdığı sürümü kontrol etmelidir. MongoDB Atlas kümeleri bakım sırasında düzeltilmiş sürümleri otomatik olarak alır ve bakımı erteleyen müşteriler yükseltmeyi mümkün olan en kısa sürede uygulamalıdır. 8.2 dalı listelenen etkilenen sürümler arasında değildir ve en yeni sürümü 8.2.12'dir, ancak GitHub'da yayımlanan bir kavram kanıtı (proof of concept), yalnızca test amaçlı bir ayar kullanılarak yapılan laboratuvar testinde 8.2.12'nin hatayı hâlâ gösterdiğini bildirir. Şirketin yaşam döngüsü takvimine göre 8.2 dalı 31 Temmuz'da kullanım ömrü sonuna ulaştı.

Tespit ve azaltma

Bir üye yükseltilene kadar araştırmacılar, veritabanına ağ erişimini yalnızca ona ihtiyaç duyan sistemlerle sınırlamayı önerir; bu, iki isteği kimlerin gönderebileceğini sınırlar ama açığı düzeltmez. Yerleştirme (planting) veya bir çökme aramak için yapılandırılmış günlüklerde şu kayıtları kontrol edin: MaxTimeMSExpired ile sonlanan, readConcern.afterOpTime taşıyan kimlik doğrulamasız bir ping için ID 51803 ile COMMAND Slow query girişi; ID 21359 ile primary catch-up'a giren ve tek bir geçişte ID 21363 ile iki kez çıkan bir üye; ve bu çıkışlardan sonra CatchupState::abort_inlock() içeren ölümcül bir sinyal veya geri iz (backtrace). İstekler devralmadan (failover) önce gelebileceğinden aynı üyenin daha eski günlükleri de kontrol edilmelidir.

Kod çalıştırma iddiaları

MongoDB, açığın belirli koşullar altında sunucu sürecinde keyfi kod çalıştırma ile de sonuçlanabileceğini söylüyor. Laboratuvarda araştırmacılar kod çalıştırma elde edemediklerini ve sonuçlarının saldırının başka ortamlarda ne sıklıkla işe yarayacağını göstermediğini söyledi. Kavram kanıtı kodu hatayı bir laboratuvar çoğaltma kümesinde yeniden üretir; güvenilir modu uzak bir saldırganın etkinleştiremeyeceği yalnızca test amaçlı bir ayar gerektirir ve belirtilen etkisi çökme veya bellek bozulmasıdır. Kimlik doğrulama kapalıyken yapılan kavram kanıtı laboratuvar testinde düzeltilmiş 8.0.37, yerleştirilen waiter'ları kabul etti ama temizliği yalnızca bir kez çalıştırdı.

Kaynaklar: The Hacker News

SiTech

SiTech — AI destekli web geliştirme

Hızlı ve modern web siteleri kuruyor, AI'yı gerçek iş akışlarına taşıyoruz. Projeniz veya sorunuz mu var? Yardımcı olmaktan mutluluk duyarız.