CVE-2026-33306
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.
Nasıl düzeltilir
- bcrypt-ruby_project bcrypt-ruby3.1.22 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| bcrypt-ruby_project bcrypt-ruby | v < 3.1.22 | 3.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.
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.