Alpine Linux, kendi GitLab sunucusuna kritik bir uzaktan kod çalıştırma açığı üzerinden saldırı girişimi yaşandığını duyurdu; GitLab yükseltmesinin Ruby güvenlik açığını kapatmadığı ortaya çıktı.
Yazılım ve Uygulamalar
Admin4 okunma

Alpine Linux'un GitLab Sunucusuna CVSS 10.0 Açığıyla Saldırı Girişimi: Ruby Güncellemesi Neden Yetmedi?

Alpine Linux, kendi GitLab sunucusuna kritik bir uzaktan kod çalıştırma açığı üzerinden saldırı girişimi yaşandığını duyurdu; GitLab yükseltmesinin Ruby güvenlik açığını kapatmadığı ortaya çıktı.

Alpine Linux'un GitLab Sunucusuna CVSS 10.0 Açığıyla Saldırı Girişimi: Ruby Güncellemesi Neden Yetmedi?

Haber detayı

Alpine Linux, 28 Ekim'de yaptığı açıklamada projenin kendi GitLab sunucusuna, GitLab'ın yamayı yayımlamasından bir hafta sonra kritik bir güvenlik açığı aracılığıyla saldırı girişiminde bulunulduğunu bildirdi. CVSS puanı 10.0 olan CVE-2026-97229 numaralı açık, bir saldırganın CI yapılandırmasına yerleştirdiği özel hazırlanmış bir düzenli ifade aracılığıyla GitLab sunucusunda uzaktan kod çalıştırmasına olanak tanıyabiliyor. Alpine, saldırının başarılı olduğuna dair herhangi bir kanıt bulamadığını ancak bunu kesin olarak dışlayamadığını belirterek sunucuyu sıfırdan yeniden inşa etti ve tüm hesapların parolalarını sıfırladı.

Saldırı Nasıl Gelişti?​

Alpine, 13 Ekim'de sunucuyu 19.3.5 yerine yanlışlıkla 19.3.4 sürümüne yükseltti. Sunucu, 12 Ekim'de yayımlanan yamanın dışında kalmış hâlde beklerken 20 Ekim'de yeni kaydolmuş bir hesap sunucuyu yoklamaya başladı. Bu hesap 20 ve 21 Ekim'de sunucuya özel hazırlanmış CI yapılandırmaları gönderdi; GitLab çalışan süreçleri 8 kez çöktü. 21 Ekim'deki ana saldırı aynı zamanda 502 hatalarına ve CI işlerinin başarısız olmasına neden oldu. Alpine'e göre bu çökmelerin 4'ünde saldırgan istismarın bir bölümünü tamamlayıp bir sonraki adımda başarısız oldu.
Saldırganın Alpine'in GitLab konteyner imajını indirdiği de tespit edildi; Alpine bu durumun "istismarı tam olarak kendi yapılarına göre ayarladıklarına işaret ettiğini" söyledi. Hesap 23 Ekim'de engellendi. Saldırgan 25 ve 26 Ekim'de geri dönerek yeniden erişim sağlamaya çalıştı, ancak bu girişimler sonuçsuz kaldı. 26 Ekim'de Alpine, 22 Ekim'de gerçekleştirdiği 19.3.6 sürümüne yükseltmenin ardından sunucunun hâlâ savunmasız olduğunu fark etti. Ertesi gün GitLab'ı geliştiriciler ve derleme sunucuları dışında herkese kapattı ve yeniden inşa sürecini başlattı. Yeniden inşa 28 Ekim'de tamamlandı.

GitLab Yükseltmesi Açığı Neden Kapatmadı?​

Açığın kaynağı, GitLab'ın CI yapılandırmalarındaki düzenli ifadeleri derlemek için kullandığı Ruby'nin içindeki Onigmo düzenli ifade motorunda bulunuyor. GitLab'ın 12 Ekim'de yayımladığı düzeltme, yalnızca GitLab'ın kendi Linux paketleri ve konteyner imajları içinde gelen Ruby'yi yamaladı. Ruby'nin kendi düzeltilmiş sürümleri ise 22 ve 23 Ekim'de çıktı.
GitLab yükseltmesi, sunucunun kendi Ruby kurulumunu değiştirmiyor. Bu nedenle standart Ruby kullanan bir GitLab kurulumu, Ruby'nin kendisi güncellenmeden açık kalmaya devam ediyor. Alpine'in GitLab imajı da standart Ruby kullandığından 19.3.6 sürümüne geçiş açığı kapatmadı. Alpine bu durumu şöyle özetledi: "Kendi Ruby'si üzerinde çalışan, kaynaktan derlenen ya da kendi konteyner imajını kullanan sunucular için GitLab'ı yükseltmek yeterli değil." Bu tür kurulumların Ruby 3.3.13, 3.4.12, 4.0.9 veya daha yeni bir sürüme geçmesi gerekiyor. 29 Ekim itibarıyla GitLab'ın 12 ve 21 Ekim yamalarına ilişkin yayımladığı yazılar, kaynaktan derleme yapan yöneticilere Ruby'yi güncelleme talimatı içermiyordu. GitLab'ın kaynaktan kurulum kılavuzu ise minimum Ruby sürümü olarak hâlâ Nisan'da kullanım ömrünü tamamlayan ve artık yama almayacak olan Ruby 3.2'yi gösteriyor.

Etkilenebilecek Veriler ve Paket Bütünlüğü​

Alpine, saldırının başarılı olup olmadığını kesin olarak dışlayamadığını vurguladı. "Başarılı bir istismar çökme izi ve web günlüklerinde herhangi bir iz bırakmaz" diyen Alpine, saldırı gününe ait bazı günlüklerin, arka plan iş günlükleri ve eski konteynerin dosya sistemi dahil, artık mevcut olmadığını belirtti. Hem Alpine hem de barındırma sağlayıcısı giden ağ bağlantılarını kayıt altına almamıştı.
Saldırının başarılı olması hâlinde tüm kullanıcıların e-posta adresleri, adları ve IP adresleri; parola özetleri; iki faktörlü kimlik doğrulama sırrları; CI/CD değişkenleri ve çalıştırıcı token'ları; webhook, entegrasyon ve push mirror kimlik bilgileri; kişisel erişim token'ları; özel depolar ile gizli konular ve birleştirme istekleri açığa çıkmış olabilir. Alpine, parola sıfırlama ve yeni gizli anahtarlar oluşturmanın ötesinde çalıştırıcı token'larının, CI/CD değişkenlerinin, erişim token'larının ve entegrasyon kimlik bilgilerinin değiştirilip değiştirilmediğini açıklamadı.
Paket bütünlüğü açısından Alpine, 20-22 Ekim arasında aports'a eklenen her değişikliğin bilinen bir geliştirici tarafından kaydedilmiş bir push yoluyla geldiğini doğruladı. Bu doğrulamayı, saldırganın erişemeyeceğini belirttiği kaynaklara, yani bir geliştiricinin depo kopyasına ve 45 derleme sunucusunun tamamına dayanarak yaptı. Paketleri ve sürümleri imzalayan anahtarlar hiçbir zaman GitLab sunucusunda bulunmadı.

GitLab Yöneticileri ve Alpine Kullanıcıları Ne Yapmalı?​

GitLab'ın Linux paketini veya resmi konteyner imajlarını kullananların ilgili dalın en yeni sürümüne yükseltmesi yeterli. Kaynaktan derleme yapan ya da kendi Ruby'sini kullanan kurulumlar için GitLab güncellemesinin yanı sıra Ruby'nin 3.3.13, 3.4.12 veya 4.0.9 ve üzeri bir sürüme güncellenmesi zorunlu; Ruby 3.2, bu açık için yama almayacak. GitLab ayrıca kendi yönetimindeki sunucular için Sigma formatında altı tespit kuralı yayımladı; bu kuralların dördü deneysel nitelikte olup CI regexp uyarılarındaki saldırgan kalıpları, olağandışı uzun dosya yolları ve Onigmo'ya işaret eden Ruby çökme raporlarını arıyor.
Alpine kullanıcıları, gitlab.alpinelinux.org yeniden açıldığında "Parolanızı mı unuttunuz?" seçeneğiyle yeni bir parola belirlemek zorunda kalacak. Alpine ayrıca başka sitelerden sızdırılan parolalar kullanılarak kendi GitLab'ına otomatik giriş denemeleri yapıldığını tespit ettiğini belirtti; gitlab.alpinelinux.org parolasını başka yerlerde kullananların bu sitelerdeki parolalarını da değiştirmesi gerekiyor. alpinelinux/gitlab imajını kullananlar ise 27 Ekim'de yayımlanan ve Ruby 3.3.13 içeren 19.3.6 imajını yeniden çekmelidir; bu tarihten önce çekilen tüm imajlar savunmasız durumda. Alpine'in kendi Ruby paketleri zaten güncel: Alpine 3.22, 3.23, 3.24 ve edge'de Ruby 3.4.12, Alpine 3.21'de ise Ruby 3.3.13 mevcut; apk upgrade komutu güncellemeyi yükleyecek.
Rapid7, laboratuvar ortamında çalışan bir istismar geliştirerek 13 Ekim'de kavram kanıtı kodunu yayımladı. Bu istismar, yamalanmamış resmi GitLab 19.4.1 imajında git kullanıcısı olarak komut çalıştırmayı başardı; yamalı 19.4.2 imajında ise aynı girdi çalışmadı. Rapid7'nin test ettiği güzergâhta istismar, saldırganın önce kötü amaçlı bir .gitlab-ci.yml dosyası ve UTF-8 karakter içeren bir dosya yolu oluşturmasını gerektiriyor; yalnızca son CI lint isteği kimlik doğrulamasız. Rapid7, asıl raporun hâlâ gizli olduğunu ve bu yazma adımını atlayan yöntemi henüz bilmediğini belirtti. CVE-2026-97229, 28 Ekim'deki güncelleme itibarıyla CISA'nın Bilinen İstismar Edilen Güvenlik Açıkları kataloğunda yer almıyordu.

Sıkça Sorulan Sorular​

CVE-2026-97229 açığı tam olarak nedir ve nasıl çalışır?​

CVE-2026-97229, CVSS puanı 10.0 olan kritik bir güvenlik açığıdır. Açık, Ruby'nin içindeki Onigmo düzenli ifade motorunda bulunuyor. Bir saldırgan, CI yapılandırmasına özel hazırlanmış bir düzenli ifade yerleştirerek GitLab sunucusunda uzaktan kod çalıştırabilir. GitLab'ın advisory'si, belirli koşullar altında kimliği doğrulanmamış bir kullanıcının da sunucuda kod çalıştırabileceğini belirtiyor.

Alpine Linux'un GitLab sunucusuna yönelik saldırı başarılı oldu mu?​

Alpine, saldırının başarılı olduğuna dair herhangi bir kanıt bulamadı; zamanlama yoklamaları gecikme göstermedi, beklenmedik dosya, anahtar, kanca veya süreç tespit edilmedi, saldırgana geri gönderilen özel veri bulunamadı. Ancak Alpine bunu kesin olarak dışlayamıyor; zira başarılı bir istismar çökme izi ve web günlüklerinde herhangi bir iz bırakmaz. Saldırı gününe ait bazı günlükler artık mevcut değil ve giden ağ bağlantıları kayıt altına alınmamıştı.

GitLab'ı en yeni sürüme yükseltmek neden güvenlik açığını kapatmıyor?​

GitLab'ın yayımladığı düzeltme, yalnızca GitLab'ın kendi Linux paketleri ve resmi konteyner imajları içinde gelen Ruby'yi yamalıyor. GitLab yükseltmesi, sunucunun kendi Ruby kurulumunu değiştirmiyor. Bu nedenle standart Ruby kullanan, kaynaktan derlenen veya kendi konteyner imajını kullanan kurulumlar, Ruby'nin kendisi 3.3.13, 3.4.12 ya da 4.0.9 veya üzeri bir sürüme güncellenmeden açık kalmaya devam ediyor.

Saldırı Alpine Linux paketlerini etkiledi mi?​

Alpine, 20-22 Ekim arasında aports'a eklenen her değişikliğin bilinen bir geliştirici tarafından kaydedilmiş bir push yoluyla geldiğini, geliştiricinin depo kopyası ve 45 derleme sunucusu gibi saldırganın erişemeyeceği kaynaklara dayanarak doğruladı. 20-24 Ekim arasında derlenen her paket, git.alpinelinux.org'da yayımlanan aports değişikliklerinden geldi. Paketleri ve sürümleri imzalayan anahtarlar hiçbir zaman GitLab sunucusunda bulunmadı.

alpinelinux/gitlab konteyner imajını kullananlar ne yapmalı?​

alpinelinux/gitlab imajını kullananlar, 27 Ekim'de yayımlanan ve Ruby 3.3.13 içeren alpinelinux/gitlab:19.3.6 imajını yeniden çekmelidir. Bu tarihten önce çekilen 19.3.6 imajları ve tüm eski etiketler savunmasız durumda. Alpine'in kendi Ruby paketleri zaten güncel olduğundan Alpine 3.21 ve üzerini çalıştıran sistemlerde apk upgrade komutu güncellemeyi yükleyecek.

Etiketler

Yorumlar (0)

Yorum yapmak için giriş yapmalısınız.

Geri
Üst