Ruby 3.3.13, 3.4.12 ve 4.0.9 için güvenlik güncellemeleri yayımlandı
23 Ekim 2026 tarihli Ruby sürümleri, düzenli ifade derleme motorundaki önemli hataları gideriyor. GitLab bağlantılı güvenlik açıkları, etkilenen uygulamalar ve güvenli güncelleme adımlarını inceliyoruz.
Kısa özet: Ruby ekibi 3.3.13, 3.4.12 ve 4.0.9 sürümlerini 23 Ekim 2026’da yayımladı. Üçü de Ruby’nin Onigmo düzenli ifade motorundaki, GitLab tarafından bildirilen dört CVE ile ilişkili hataların düzeltmelerini içeriyor. Özellikle güvenilmeyen girdilerden dinamik Regexp oluşturan uygulamaların güncellenmesi önemli.
Ruby’nin Ekim 2026 güncellemeleri neden önemli?
Ruby; Ruby on Rails uygulamaları, API servisleri, arka plan işleri ve otomasyon sistemlerinde sıklıkla kullanılıyor. Bu projelerde düzenli ifadeler; metinleri ayıklamak, biçimleri doğrulamak ve kullanıcı tarafından belirlenen kuralları işlemek için tercih edilebiliyor.
23 Ekim duyurusu, yalnızca uygulama kodundan değil, Ruby’nin kendi Regexp derleme mekanizmasından kaynaklanan sorunlara odaklanıyor. GitLab’ın araştırmasına göre özel hazırlanmış desenler belirli koşullarda belleği bozabiliyor ve GitLab sunucularında uzaktan kod çalıştırma riskine dönüşebiliyordu. Ruby ekibi, bu sorunların temelindeki hataları üç desteklenen sürüm serisinde düzeltti.
Önemli ayrım: Bu açıklar, uygulama saldırganın denetlediği bir metni düzenli ifade deseni olarak derliyorsa gündeme geliyor. Yalnızca geliştiricilerin yazdığı sabit Regexp desenlerini kullanan uygulamalar bu özel hatalardan etkilenmiyor.
Ruby 3.3.13, 3.4.12 ve 4.0.9 ile neler değişti?
Her üç sürüm, duyuruda belirtilen Regexp düzeltmelerinin tamamını içeriyor. Ancak her seride ek değişikliklerin kapsamı ve bakım durumu farklı. Mevcut Ruby ana sürümünde kalarak güvenlik yamasına geçmek genellikle iyi bir ilk adım; ana sürüm değiştirmek ayrıca uyumluluk testi gerektirir.
Ruby 3.3.13, güvenlik bakımı aşamasındaki 3.3 serisine Regexp düzeltmelerini getiriyor; ayrıca varsayılan resolv gem’ini 0.3.2 sürümüne çıkarıyor. Ruby 3.4.12, ilgili Regexp hatalarına ek olarak diğer hata düzeltmelerini de kapsıyor. Ruby 4.0.9 ise özellikle daha önce 4.0.8’e kadar tamamlanmamış olan tekrar desenleriyle ilişkili son Regexp düzeltmesini içeriyor.
Not: Bunlar 23 Ekim 2026 duyurusundaki güvenlik sürümleridir. Kurulum gününde aynı seri için daha yeni bir yama çıkmışsa desteklenen en son yamayı tercih edin.
GitLab ile ilişkili Regexp güvenlik açıkları
Ruby’nin kullandığı Onigmo motoru, bir metnin düzenli ifade desenine çevrilmesi sırasında çalışır. GitLab, kullanıcıların belirlediği bazı CI yapılandırma desenlerini Regexp.new ile derlediğinden, kötü niyetli örneklerin bellek sorunlarına neden olabildiği bir kullanım alanı ortaya çıktı.
Çok sayıda tekrar içeren desenlerde tamsayı taşması
Belirli düzenli ifade tekrar desenleri, derleyicinin iç kimliklerinin sınırı aşmasına neden olabiliyordu. Sorunun giderildiği ilk Ruby 4.0 sürümü 4.0.9; ilgili düzeltme 3.4.12 ve 3.3.13 sürümlerinde de bulunuyor. Etkinin oluşması için saldırganın kontrolündeki bir desenin uygulama tarafından derlenmesi gerekiyor.
Desen ayrıştırmada double free
Alternatif içeren bir desen ayrıştırılırken hata meydana geldiğinde aynı bellek alanının iki kez serbest bırakılmasına neden olan sorun. Düzeltme: 3.3.13 / 3.4.12; Ruby 4.0 serisinde 4.0.0 itibarıyla mevcut.
Derlenmiş desen boyutunda taşma
Regexp derleme sürecinde ortaya çıkan tamsayı taşması. Düzeltme: 3.3.13 / 3.4.12; Ruby 4.0 serisinde 4.0.8 itibarıyla mevcut.
CI/CD desen derleyicisi sorunu
GitLab CI/CD senaryolarıyla ilişkili başka bir tamsayı taşması kaydı. Ruby’deki temel hata, bir önceki Regexp boyut taşmasıyla aynı düzeltmeyle gideriliyor.
Regexp.timeout tek başına yeterli değil
Resmî Ruby duyurusuna göre Regexp.timeout bu bellek hatalarını önlemiyor. Desen uzunluğunu sınırlamak da her durumda koruma sağlamıyor; güvenilmeyen desenleri derlemekten kaçının.
Resolv güncellemeleri ve uygulama kapsamı
Regexp sorunlarının dışında, Ruby ekosistemindeki DNS çözümleme bileşeni resolv için de ayrı bir güvenlik duyurusu bulunuyor. Özellikle Ruby 3.3.13, varsayılan resolv sürümünü 0.3.2 düzeyine taşıdığı için dikkat çekiyor.
- CVE-2026-80212: Saldırgan tarafından yönlendirilebilen DNS yanıtlarının,
resolvkullanan uygulamalarda belleğin tükenmesine ve servis kesintisine neden olabilmesi. - CVE-2026-80213: Çok uzun alan adlarıyla yapılan bazı işlemlerde, doğrulanan ana makine adı ile çözümlenen hedefin farklılaşabilmesi.
- Ruby 3.3 serisi: Varsayılan
resolv 0.3.2, yukarıdaki iki güvenlik açığının düzeltmesini içeriyor. - Ruby 3.4 ve 4.0 serileri: Ruby çalışma zamanını Regexp yamaları için güncellemek, projede kullanılan
resolvsürümünü güvenli düzeye getirdiğiniz anlamına gelmeyebilir. İlgili gem için 0.7.2 veya üzerini ayrıca doğrulayın. - Gerçek maruziyet: Bu DNS açıkları yalnızca
Resolvkullanan kod yollarında gündeme gelir; işletim sistemi çözümleyicisiyle çalışan sıradan bağlantıların hepsi aynı şekilde etkilenmez.
Geliştiriciler için güvenli Ruby güncelleme adımları
Yerel geliştirme ortamında görülen sürüm ile uygulamanın sunucuda, container içinde veya CI/CD iş akışında kullandığı Ruby farklı olabilir. Bu nedenle güncellemeyi her ortamda ayrı doğrulamak gerekir.
Aktif Ruby ve Bundler sürümünü kontrol edin
Önce projede hangi Ruby’nin kullanıldığını belirleyin. .ruby-version, Gemfile ve üretim ortamındaki gerçek çalışma zamanını karşılaştırın.
# Aktif Ruby sürümünü görüntüle ruby -v # Ruby yorumlayıcısının yolunu kontrol et which ruby # Projenin Bundler sürümünü kontrol et bundle -v
Mevcut ana seriniz için güvenlik sürümünü yükleyin
rbenv ve güncel ruby-build kullanıyorsanız aşağıdaki örneklerden yalnızca projenize uygun olanı çalıştırın. Farklı bir sürüm yöneticisi kullanıyorsanız o aracın yönergelerini izleyin.
# Ruby 3.3 serisini kullanan projeler rbenv install 3.3.13 # Ruby 3.4 serisini kullanan projeler rbenv install 3.4.12 # Ruby 4.0 serisini kullanan projeler rbenv install 4.0.9 # Örnek: Projede 3.4.12 sürümünü seç rbenv local 3.4.12 ruby -v
Gem bağımlılıklarını ve resolv sürümünü denetleyin
Yeni Ruby yorumlayıcısında bundle install çalıştırın. resolv gem’inin gerçekten kullanılan sürümünü kontrol edin; özellikle 3.4 ve 4.0 projelerinde gerekirse Gemfile üzerinden güvenli sürüme geçip kilit dosyasını güncelleyin.
# Bağımlılıkları kur ve doğrula bundle install bundle check # Projedeki resolv sürümünü kontrol et bundle exec ruby -r resolv -e 'puts Gem.loaded_specs["resolv"]&.version' # Projenizde tanımlıysa testleri çalıştırın bundle exec rake test
Regexp kullanımını ve güvenilmeyen girdileri gözden geçirin
Kullanıcı ya da dış servis verisinden Regexp.new, Regexp.compile, Regexp.union veya interpolasyonla desen üreten kod yollarını inceleyin. Düzeltmeleri uyguladıktan sonra bile kullanıcı girdilerini doğrudan Regexp olarak derlememek daha güvenlidir.
Üretim ortamını güncelleyin ve yeniden doğrulayın
Docker taban imajlarını, uygulama sunucularını ve CI/CD çalıştırıcılarını güncelleyin. Ardından testleri, hata kayıtlarını ve çalışan sürecin Ruby sürümünü doğrulayın. Sadece yerel bilgisayardaki Ruby’nin güncellenmesi üretim ortamını korumaz.
Ruby güvenlik güncellemeleri hakkında merak edilenler
Ruby 3.3.13, 3.4.12 veya 4.0.9 sürümüne geçmeli miyim?
Bu sürüm serilerinden birini kullanıyorsanız ilgili güvenlik sürümüne veya aynı seride yayımlanan daha yeni bir yamaya geçmeniz öneriliyor. Geçiş öncesi uygulamanızın ve gem bağımlılıklarınızın uyumluluğunu test edin.
Bu açıklar her Ruby on Rails uygulamasını etkiliyor mu?
Hayır. Duyurudaki Regexp sorunları, saldırganın kontrol ettiği desenlerin Ruby tarafından derlenmesi koşulunda ortaya çıkıyor. Yalnızca geliştiricilerin tanımladığı sabit desenleri kullanan uygulamalar bu özel hatalardan etkilenmiyor.
Regexp.timeout ayarı riski ortadan kaldırıyor mu?
Hayır. Ruby ekibi bu hataların derleme sırasında oluştuğunu, Regexp.timeout ayarının bunlara karşı koruma sağlamadığını açıkça belirtiyor.
Ruby sürümünü yükseltmek resolv açıklarını da giderir mi?
Ruby 3.3.13, varsayılan resolv 0.3.2 güncellemesini içerir. Ruby 3.4 ve 4.0 kullanıyorsanız projenin çözdüğü resolv sürümünü ayrıca kontrol edin; resmî tavsiye bu serilerde resolv 0.7.2 sürümüdür.
GitLab’ın CVE kayıtları Ruby’nin kendi CVE’leri mi?
Bu dört CVE, GitLab tarafından duyurulan ürün güvenlik kayıtlarıdır. Ruby ekibi, bunların dayandığı temel Onigmo hatalarını düzelttiğini belirtiyor; yazının hazırlandığı tarihte Ruby için aynı hatalara ayrıca CVE atandığını açıklamıyor.
Resmî Ruby sürüm notları ve güvenlik kaynakları
Bu içerik, Ruby ekibinin 23 Ekim 2026 tarihli sürüm duyuruları, Regexp düzeltme açıklaması, resolv güvenlik bildirimi ve sürüm yaşam döngüsü esas alınarak hazırlanmıştır.
- 01 — Ruby Project — GitLab CVE’leriyle ilişkili Regexp düzeltmeleri
- 02 — Ruby 3.3.13 resmî sürüm notları
- 03 — Ruby 3.4.12 resmî sürüm notları
- 04 — Ruby 4.0.9 resmî sürüm notları
- 05 — Ruby Project — resolv güvenlik duyurusu
- 06 — Ruby sürümleri ve bakım takvimi
- 07 — Programming Report — Yazılım dili haber akışı