CVE-2026-80212
Açıklama
Ruby için 0.7.2 öncesindeki resolv gem'inde bir sorun keşfedildi. Resolv::DNS::Resource.get_class, Resolv::DNS::Resource::Generic.create ve Resolv::DNS::SvcParam::Generic.create, bir yanıt çözümlenirken karşılaşılan her bilinmeyen DNS kaynak kaydı (tür, sınıf) çifti veya her bilinmeyen SvcParamKey için yeni bir sınıf oluşturur. Oluşturulan her sınıf, hem Resource (veya SvcParam::Generic) üzerinde bir sabit olarak hem de bir sınıf arama karmasında (ClassHash) bir girdi olarak kalıcı olarak kaydedilir ve böylece yanıt atıldıktan sonra da sınıf bu sabit aracılığıyla erişilebilir kalır. Tür ve sınıf değerlerinin her biri 16 bitlik değerlerdir ve dolayısıyla DNS yanıtlarını kontrol eden bir saldırganın (sahte bir yanıt veya kötü niyetli ya da ele geçirilmiş bir üst DNS sunucusu) seçebileceği yaklaşık 2^32 farklı (tür, sınıf) çifti vardır. On binlerce farklı bilinmeyen tür taşıyan birkaç yüz kilobaytlık tek bir yanıt, işlem belleğini kalıcı olarak onlarca megabayt artırır; tekrarlanan yanıtlar sınırsız şekilde birikir ve sabit her bir sınıfı canlı tuttuğu için çöp toplama (garbage collection) tarafından asla geri alınmaz. Saldırgan etkisindeki DNS yanıtları üzerinde Resolv::DNS::Message.decode fonksiyonunu çağıran tüm kod yolları bundan etkilenir. resolv varsayılan bir gem'dir ve bu nedenle herhangi bir ek bağımlılık olmaksızın standart bir Ruby kurulumundan erişilebilirdir.
Nasıl düzeltilir
- Ruby resolv0.3.2, 0.7.2 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Ruby resolv | v < 0.3.2, 0.4.0 ≤ v < 0.7.2 | 0.3.2, 0.7.2 |
Sürümünüzü kontrol edin
Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.
Attack Surface Management
Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.