Selamlar,
Dün GitLab'ın CVSS 10 kimlik doğrulamasız RCE açığını (CVE-2026-110264) konuşmuştuk. 23 Ekim'de Ruby projesi asıl kök nedeni açıkladı: Onigmo regex motorundaki üç bellek bozulması hatası. Ruby 4.0.9, 3.4.12 ve 3.3.13 bu hataları kapatıyor. GitLab sunucusu işletmeseniz bile kullanıcı girdilerinden regex derleyen her Ruby uygulaması için bu konu önemli.
Konuda anlatılacaklar
- Hangi GitLab CVE'leri hangi Ruby hatalarına dayanıyor?
- Kimler etkileniyor?
- Neden Regexp.timeout yetmiyor?
- Yükseltme ve geçici önlem
- Kendi kodunuzda kontrol
1. CVE eşlemesi
Ruby resmi duyurusuna göre:
CVE-2026-89078 -> Cift free (alternation sonrasi parse hatasi)
CVE-2026-93577 -> Derlenmis desen boyutu tasmasi
CVE-2026-97229 -> Ayni tasma (CI/CD baglami)
CVE-2026-110264 -> Cok sayida tekrar iceren desende ID tasmasi2. Kimler etkileniyor?
Yalnızca saldırganın kontrol ettiği bir dizgeden regex derleyen uygulamalar:
Regexp.new(kullanici_girdisi)
Regexp.compile(...)
Regexp.union(...)
/#{kullanici_girdisi}/3. Regexp.timeout yetmiyor
Ruby açıkça yazıyor: Regexp.timeout bu hatalara karşı korumaz. Desen uzunluğunu sınırlamak da güvenilir değil; bazı hatalar kısa desenlerle tetiklenebiliyor. Tek sağlam yol: Ruby'yi yükseltmek veya güvenilmeyen girdiden regex derlememek.
4. Yükseltme
ruby -v
# Hedef: 4.0.9+ veya 3.4.12+ veya 3.3.13+
rbenv install 3.4.12 && rbenv local 3.4.12 # ornek
# GitLab Omnibus: resmi yamali surume gecin5. Kendi kodunuzda kontrol
# projede Regexp.new / Regexp.compile arayin
rg -n "Regexp\.(new|compile|union)" --type rubyUygulamalarınızda kullanıcıdan regex alıyor musunuz? Nasıl sınırlıyorsunuz?
Yasal uyarı
Bu yazı bilgilendirme ve savunma amaçlıdır. Anlatılan kontrolleri yalnızca kendi sistemlerinizde veya yazılı izinle yapın. İzinsiz erişim, tarama ve sömürü girişimleri TCK 243-245 kapsamında suçtur. TurkTeam white-hat bir topluluktur; çalıntı veri, hesap, combo/log paylaşımı ve hack hizmeti talepleri forum kurallarına aykırıdır.
Kaynaklar
