GitLab'de Kritik Uzaktan Kod Yürütme Açığı: Güncelleme Çağrısı

GitLab sistemlerinde, uzaktan kod yürütme (RCE) ile sonuçlanan kritik bir zafiyet zinciri ortaya çıkarıldı. Depthfirst araştırmacıları tarafından keşfedilen bu açık, platformun kullandığı Oj adlı Ruby JSON ayrıştırıcısındaki iki farklı bellek hatasının birleştirilmesiyle tetikleniyor. Söz konusu zafiyet, saldırganın herhangi bir yönetici yetkisine veya CI erişimine ihtiyaç duymadan, sadece bir projeye veri gönderebilen kimlik doğrulamalı bir kullanıcı olmasıyla istismar edilebiliyor.
Araştırmacılar, bu hataların yaklaşık beş yıldır Oj kütüphanesinde bulunduğunu ve GitLab'in 15.2.0 sürümünden itibaren bu zafiyetten etkilendiğini belirtti. GitLab, 10 Haziran tarihinde bu hataları gideren bir yama yayınlamış olsa da, düzeltmeyi bir güvenlik açığı olarak değil, genel bir hata düzeltmesi olarak listeledi. Bu durum, sistem yöneticilerinin yamayı acil olarak değerlendirmemesine ve riskin devam etmesine neden oldu.
Saldırı, GitLab'in Jupyter dosyalarını işlemek için kullandığı ipynbdiff aracı üzerinden gerçekleşiyor. Araştırmacılar, bir commit diff işlemi sırasında tetiklenen bu süreçte, bellek yığınındaki işaretçileri manipüle ederek sistem üzerinde komut çalıştırmayı başardı. Başarılı bir istismar durumunda saldırganlar, GitLab'in Puma işçilerini çalıştıran git kullanıcısı yetkilerine sahip oluyor. Bu yetki seviyesi; kaynak kodlarına erişim, Rails sırlarının çalınması, hizmet kimlik bilgilerinin ele geçirilmesi ve ağ içerisindeki diğer servislere yanal geçiş yapılması gibi ciddi riskleri beraberinde getiriyor.
Zafiyetten etkilenen sürümler arasında 15.2.0 ile 18.10.7, 18.11.0 ile 18.11.4 ve 19.0.0 ile 19.0.1 aralıkları yer alıyor. 15.2 sürümünden önceki sürümler farklı bir ayrıştırıcı kullandığı için bu açıktan etkilenmiyor. 15.2 ile 18.9 arasındaki sürümler ise artık güvenlik desteği almadığı için bu kurulumların acilen desteklenen güncel sürümlere taşınması gerekiyor.



