ruby'nin regex motoru yine patlamış, gitlab'da 4 tane kritik açık çıktı

Posted on 24 Eki 2026

arkadaşlar, ruby dili kendi içindeki regex motorunda 3 tane ciddi bug bulmuş ve hemen yamalamış. bu buglar yüzünden gitlab’da 4 tane kritik seviye açık ortaya çıkmış. yani kısacası, ruby 4.0.9, 3.4.12 ve 3.3.13 versiyonlarını hemen yayınlamışlar. bu işin fırıldağı biraz ciddi, o yüzden şunu bi dinleyin.

nedir bu regex motoru meselesi?

ruby’nin kullandığı regex motoru onigmo deniyor. bu motor, yazı içinde pattern matching yaparken kullanılıyor. ama bu sefer öyle bir pattern bulunmuş ki, ruby o pattern’ı compile ederken hafızayı bozuyor. yani memory corruption denen bela var. sonuç? uzaktan kod çalıştırma (RCE) yani saldırgan sunucunuza kendi kodunu çalıştırabiliyor.

gitlab bu açıkları nasıl buldu?

gitlab’ın kendi sunucularında bu açıklar kullanılmaya başlanmış. özel olarak hazırlanmış bir regex pattern yoluyla saldırganlar bellek bozmasını tetikleyip, kendi kodlarını çalıştırmayı başarmışlar. geçen bir ay içinde 4 tane kritik seviye açık patche edilmiş. yani bu açıklar aktif olarak sömürülüyor demek.

etkilenen sistemler

SistemDurum
Ruby 4.0.x✅ Ruby 4.0.9’a güncelleyin
Ruby 3.4.x✅ Ruby 3.4.12’ye güncelleyin
Ruby 3.3.x✅ Ruby 3.3.13’e güncelleyin
GitLab✅ Son yamaları uygulayın
Rails Uygulamaları✅ Ruby versiyonunu güncelleyin

şimdi ne yapacaksınız:

1. ruby versiyonunu kontrol edin

ruby --version

eğer yukarıdaki versiyonlardan daha eski bir sürüm kullanıyorsanız, acil güncelleyin.

2. ruby’yi güncelleyin

rbenv kullanıyorsanız:

rbenv install 4.0.9
rbenv install 3.4.12
rbenv install 3.3.13
rbenv global 4.0.9  # veya istediğiniz versiyon

rvm kullanıyorsanız:

rvm install ruby-4.0.9
rvm install ruby-3.4.12
rvm install ruby-3.3.13
rvm use ruby-4.0.9  # veya istediğiniz versiyon

apt/yum ile kurulu ise:

# ubuntu/debian
sudo apt update
sudo apt upgrade ruby

# centos/rhel
sudo yum update ruby

3. rails uygulamalarınızı yeniden başlatın

sudo systemctl restart rails-app
# veya docker kullanıyorsanız:
docker restart rails-container

4. gemfile’ınızı kontrol edin

eğer regex işlemleri yapan gemler kullanıyorsanız, onların da güncel olduğundan emin olun:

bundle update
bundle install

geçici çözümler

spoiler: bu açık regex pattern matching yoluyla tetikleniyor. eğer hemen update yapamıyorsanız:

  1. regex girdisini filtreleyin: kullanıcıdan gelen regex pattern’larını strict bir şekilde kontrol edin
  2. input validation: gelen verileri regex’e sokmadan önce sanitize edin
  3. ağ seviyesi koruma: eğer gitlab sunucunuz varsa, onu sadece güvenilir IP’lerden erişilebilir hale getirin
  4. monitoring: sistem loglarında anormal regex pattern’ları arayın

uyarılar

dikkat:

  • yedek almadan bu işe girişmeyin, ruby güncellemesi sonrası uygulamalar kırılabilir
  • test ortamında önce deneyin, sonra production’a geçin
  • gitlab kullanıyorsanız, gitlab’ın kendi yamaları da var, onları da kontrol edin
  • bu açık aktif olarak sömürülüyor, acil yamalayın

kaynaklar


Bu içerik yapay zeka tarafından oluşturulmuştur.