CVE-2026-33306

Yüksek

Açıklama

bcrypt-ruby, OpenBSD bcrypt() parola özetleme algoritması için bir Ruby bağlamasıdır. Versiyon 3.1.22 öncesinde, JRuby için olan Java BCrypt uygulamasındaki bir tamsayı taşması (integer overflow), güçlendirme döngüsünde sıfır yinelemeye neden olabilir. Bunun gerçekleşmesi için etkilenen uygulamaların maliyeti (cost) 31 olarak ayarlamış olması gerekir. bcrypt-ruby'nin JRuby uygulaması (`BCrypt.java`), anahtar güçlendirme tur sayısını imzalı 32 bitlik bir tamsayı olarak hesaplar. `cost=31` olduğunda (gem tarafından izin verilen maksimum değer), imzalı tamsayı taşması tur sayısının negatif olmasına neden olur ve güçlendirme döngüsü **sıfır yineleme** ile çalışır. Bu durum, bcrypt'i 2^31 turluk üstel anahtar güçlendirmeden, etkili olarak sabit zamanlı bir hesaplamaya indirger; yalnızca başlangıçtaki EksBlowfish anahtar kurulumu ve final 64x şifreleme aşaması kalır. Ortaya çıkan özet geçerli görünür (`$2a$31$...`) ve `checkpw` aracılığıyla doğru şekilde doğrulanır, bu da zafiyeti uygulama için görünmez kılar. Bu sorun yalnızca cost=31 kullanıldığında veya `$2a$31$` özeti doğrulandığında tetiklenir. Bu sorun versiyon 3.1.22'de düzeltilmiştir. Geçici çözüm olarak, maliyet 31'den daha düşük bir değere ayarlanmalıdır.

ÖnemYüksek
CVSS7.5
İstismar olasılığı15. yüzdelik%0,2
ÜrünBcrypt-ruby
Yayın24 Mar 2026
İlk görülme24 Mar 2026
Zayıflık türüCWE-190Tamsayı taşması

Nasıl düzeltilir

Güncelleyin
  • bcrypt-ruby_project bcrypt-ruby3.1.22 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
bcrypt-ruby_project bcrypt-rubyv < 3.1.223.1.22

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.

Intelligence 360 paketinde

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.