ruby'nin regex motoru yine patlamış, gitlab'da 4 tane kritik açık çıktı
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
| Sistem | Durum |
|---|---|
| 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:
- regex girdisini filtreleyin: kullanıcıdan gelen regex pattern’larını strict bir şekilde kontrol edin
- input validation: gelen verileri regex’e sokmadan önce sanitize edin
- ağ seviyesi koruma: eğer gitlab sunucunuz varsa, onu sadece güvenilir IP’lerden erişilebilir hale getirin
- 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
- The Hacker News - Ruby Fixes Three Regex Engine Bugs
- Ruby Official Security Advisory
- GitLab Security Advisories
- Onigmo Regex Engine Repository
Bu içerik yapay zeka tarafından oluşturulmuştur.
