Alpine Linux, kendi GitLab sunucusuna kritik bir uzaktan kod çalıştırma açığı üzerinden saldırı girişimi yaşandığını duyurdu; GitLab'ı güncellemek tek başına yeterli olmadığından sunucu sıfırdan yeniden kuruldu.
Siber Güvenlik
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'ı güncellemek tek başına yeterli olmadığından sunucu sıfırdan yeniden kuruldu.

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 yaklaşık bir hafta sonra, kritik bir güvenlik açığı üzerinden saldırı girişiminde bulunulduğunu bildirdi. CVE-2026-97229 koduyla takip edilen ve CVSS puanı 10.0 olan bu 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ıya ulaştığına dair herhangi bir kanıt bulamadığını ancak bunu kesin olarak dışlayamadığını da belirtti. Bu belirsizlik nedeniyle ekip, sunucuyu sıfırdan yeniden kurdu ve tüm hesapların parolalarını sıfırladı.

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

Alpine, 13 Ekim'de sunucusunu GitLab 19.3.5 yerine yanlışlıkla 19.3.4 sürümüne yükseltti. Sunucu, 12 Ekim'de yayımlanan yamayı içermeyen bu sürümde kalırken, 20 Ekim'de yeni kayıt olmuş bir hesap sunucuyu yoklamaya başladı. Söz konusu hesap, 20 ve 21 Ekim'de sunucuya özel hazırlanmış CI yapılandırmaları gönderdi; bu gönderimler GitLab işçi süreçlerini 8 kez çökertti. 21 Ekim'deki ana saldırı ayrıca 502 hatalarına yol açtı ve CI işlerinin başarısız olmasına neden oldu.
Alpine'in aktardığına göre bu çökmelerin 4'ünde saldırgan, açığı kısmen işletmeyi başardı ancak bir sonraki adımda takıldı. Saldırganın Alpine'in GitLab konteyner imajını da indirdiği tespit edildi; Alpine bu durumu, saldırganın açığı kendi yapılarına özel biçimde ayarlamaya çalıştığına işaret ettiği şeklinde yorumladı. Hesap 23 Ekim'de engellendi. Saldırgan 25 ve 26 Ekim'de erişimi yeniden kazanmaya çalıştı; ancak bu girişimler sonuçsuz kaldı.
Alpine, 26 Ekim'de 22 Ekim'de gerçekleştirdiği GitLab 19.3.6 yükseltmesine karşın sunucunun hâlâ savunmasız olduğunu fark etti. Ertesi gün sunucuyu geliştiriciler ve derleme sunucuları dışında herkese kapattı ve yeniden yapılandırma sürecini başlattı. Yeniden yapılandırma 28 Ekim'de tamamlandı; sunucu artık sorunu içermeyen Ruby 3.3.13 veya üzeri sürümüyle çalışıyor.

GitLab Güncellemesi Neden Açığı Kapatmadı?​

CVE-2026-97229'un kökü, Ruby'nin içine gömülü düzenli ifade motoru olan Onigmo'da yatıyor. GitLab, 12 Ekim'deki sürümünde bu açığı kendi Linux paketi ve konteyner imajlarının içinde paketlediği Ruby'yi yamayarak kapattı. Ruby'nin kendi düzeltilmiş sürümleri ise 22 ve 23 Ekim'de yayımlandı.
Alpine'in GitLab imajı, GitLab'ın kendi paketi yerine standart Ruby kullanıyordu. Bu nedenle GitLab'ı 19.3.6'ya yükseltmek, sistemin Ruby kurulumuna dokunmadı ve açık yerinde kaldı. Alpine bu deneyimden hareketle uyardı: Kendi Ruby kurulumunu kullanan, kaynaktan derleme yapan ya da kendi konteyner imajını oluşturan herkes için yalnızca GitLab'ı güncellemek yeterli değil; Ruby'nin de 3.3.13, 3.4.12, 4.0.9 veya daha yeni bir sürüme getirilmesi gerekiyor.
29 Ekim itibarıyla GitLab'ın 12 ve 21 Ekim'deki yama sürüm notları, kaynaktan derleme yapan yöneticilere Ruby'yi güncellemeleri gerektiğini açıkça belirtmiyordu. GitLab'ın kaynaktan kurulum kılavuzu da asgari sürüm olarak Nisan ayında kullanım ömrünü tamamlayan ve bu açık için herhangi bir yama almayacak olan Ruby 3.2'yi göstermeye devam ediyor.

Hangi Veriler Risk Altında Olabilir?​

Alpine, saldırının başarılı olması durumunda şu verilerin açığa çıkmış olabileceğini sıraladı: tüm kullanıcılara ait e-posta adresleri, isimler ve IP adresleri; parola özetleri; iki faktörlü kimlik doğrulama sırları; CI/CD değişkenleri ve runner token'ları; webhook, entegrasyon ve push mirror kimlik bilgileri; hash olarak saklanan kişisel erişim token'ları; özel depolar; gizli konular ve birleştirme talepleri.
Alpine, parola sıfırlama ve yeni gizli anahtarlar dışında runner token'larının, CI/CD değişkenlerinin, erişim token'larının veya entegrasyon kimlik bilgilerinin değiştirilip değiştirilmediğini henüz açıklamadı. Paket imzalama anahtarlarının hiçbir zaman GitLab sunucusunda bulunmadığını da ayrıca vurguladı.

Paketlerin Güvenilirliği ve Yapılan Doğrulamalar​

gitlab.alpinelinux.org sunucusu, Alpine'in paketlerinin üretildiği aports deposuna ev sahipliği yapıyor. 20-24 Ekim arasında derlenen paketler ve 21 Ekim sürümleri, GitLab dışındaki kayıtlarla karşılaştırılarak doğrulandı. Bu doğrulama; bir geliştiricinin depo kopyası ve 45 derleme sunucusunun tamamı baz alınarak gerçekleştirildi. Söz konusu sürümler, resmi Alpine Docker imajlarının temelini oluşturan minirootfs dosyalarını da kapsıyor. Alpine, kontrolleri sunucunun kapatıldığı 27 Ekim'e kadar uzatıyor.

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

GitLab'ın Linux paketi veya resmi konteyner imajını kullananların ilgili dalları için en güncel sürüme yükseltmesi yeterli. Kendi Ruby kurulumunu kullananların ise GitLab'ı güncellemelerinin yanı sıra Ruby'yi 3.3.13, 3.4.12, 4.0.9 veya üzeri bir sürüme taşımaları gerekiyor. Ruby 3.2, bu açık için herhangi bir yama almayacak; dolayısıyla bu sürümü kullanan sunucuların belirtilen sürümlerden birine geçmesi zorunlu.
Rapid7, 13 Ekim'de laboratuvar ortamında çalışan bir açık yayımladı. Bu açığın işleyebilmesi için saldırganın önce bir deponun dalına kötü amaçlı bir .gitlab-ci.yml dosyası ve UTF-8 karakter içeren bir dosya yolu işlemesi gerekiyor. Ancak bu ön koşul, yeni kullanıcıların kendi kendine kayıt olup proje oluşturabildiği sunucularda geçerli değil. Acil yama yapılamayan durumlarda Rapid7, anonim erişimi kısıtlamayı, güvenilmeyen kullanıcıların genel projelere yazmasını engellemeyi veya CI lint rotasını engellemeyi öneriyor; ancak bu adımların yalnızca kendi açık yolunu kapattığını, altta yatan güvenlik açığını gidermediğini de belirtiyor.
alpinelinux/gitlab imajını kullananların 19.3.6 etiketini yeniden çekmesi gerekiyor. 27 Ekim'de yayımlanan imaj Ruby 3.3.13 içeriyor; bu tarihten önce çekilen 19.3.6 dahil tüm eski etiketler savunmasız durumda. Alpine'in kendi Ruby paketleri ise güncellemeyi zaten içeriyor: Alpine 3.22, 3.23, 3.24 ve edge için Ruby 3.4.12; Alpine 3.21 için Ruby 3.3.13. apk upgrade komutu güncellemeleri yükleyecektir.
gitlab.alpinelinux.org'un yeniden herkese açılmasının ardından hesap sahiplerinin giriş sayfasındaki "Parolanızı mı unuttunuz?" seçeneğiyle yeni parola oluşturması gerekecek. Alpine ayrıca başka sitelerden sızdırılan parolalarla sunucusuna otomatik giriş denemeleri yapıldığını tespit ettiğini belirterek gitlab.alpinelinux.org parolasını başka yerlerde kullananların oradaki parolalarını da değiştirmesini tavsiye etti.

Sıkça Sorulan Sorular​

CVE-2026-97229 açığı tam olarak nedir ve neden bu kadar kritik?​

CVE-2026-97229, CVSS puanı 10.0 olan kritik bir güvenlik açığıdır. Açık, Ruby'nin içine gömülü düzenli ifade motoru Onigmo'da bulunuyor ve 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. GitLab'ın kendi açıklamasına göre belirli koşullar altında kimliği doğrulanmamış bir kullanıcının da sunucuda kod çalıştırması mümkün olabilir.

Alpine Linux neden GitLab'ı güncelledikten sonra hâlâ savunmasız kaldı?​

GitLab'ın 12 Ekim'deki yamasi, açığı kendi Linux paketi ve konteyner imajlarının içindeki Ruby'yi güncelleyerek kapattı. Alpine'in GitLab imajı ise GitLab'ın kendi paketi yerine standart Ruby kullanıyordu. Bu nedenle GitLab'ı 19.3.6'ya yükseltmek sistemin Ruby kurulumuna dokunmadı ve açık yerinde kaldı. Sorunun giderilebilmesi için Ruby'nin de ayrıca güncellenmesi gerekiyordu.

Saldırı başarılı oldu mu ve hangi veriler risk altında?​

Alpine, saldırının başarıya ulaştığına dair herhangi bir kanıt bulamadı; ancak bunu kesin olarak da dışlayamadı. Başarılı bir saldırı herhangi bir çökme ya da web günlüğünde iz bırakmayacağından ve saldırı gününe ait bazı günlükler artık mevcut olmadığından kesin bir sonuca ulaşmak mümkün olmadı. Risk altında olabilecek veriler arasında kullanıcı e-posta adresleri, isimler, IP adresleri, parola özetleri, iki faktörlü kimlik doğrulama sırları, CI/CD değişkenleri, runner token'ları, erişim token'ları, webhook kimlik bilgileri ve özel depolar sayılıyor.

Alpine'in paketleri ve sürümleri güvenilir mi?​

Alpine, 20-24 Ekim arasında derlenen paketleri ve 21 Ekim sürümlerini GitLab dışındaki kayıtlarla doğruladı. Bu doğrulama, bir geliştiricinin depo kopyası ve 45 derleme sunucusunun tamamı kullanılarak gerçekleştirildi. Paket imzalama anahtarlarının hiçbir zaman GitLab sunucusunda bulunmadığı da ayrıca belirtildi. Alpine, kontrolleri sunucunun kapatıldığı 27 Ekim'e kadar genişletiyor.

Kendi Ruby kurulumunu kullanan GitLab yöneticileri ne yapmalı?​

Kendi Ruby kurulumunu kullanan, kaynaktan derleme yapan ya da kendi konteyner imajını oluşturan yöneticilerin hem GitLab'ı en güncel sürüme yükseltmesi hem de Ruby'yi 3.3.13, 3.4.12, 4.0.9 veya daha yeni bir sürüme taşıması gerekiyor. Ruby 3.2, bu açık için herhangi bir yama almayacağından bu sürümü kullanan sunucuların belirtilen sürümlerden birine geçmesi zorunlu. Acil yama yapılamayan durumlarda Rapid7, anonim erişimi kısıtlamayı, güvenilmeyen kullanıcıların genel projelere yazmasını engellemeyi veya CI lint rotasını engellemeyi öneriyor; ancak bu adımların altta yatan açığı gidermediğini de vurguluyor.

Etiketler

Yorumlar (0)

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

Geri
Üst