CVE-2026-33306

Yüksək

Təsvir

bcrypt-ruby, OpenBSD bcrypt() parol həşləmə alqoritmi üçün Ruby bağlanmasıdır (binding). Versiya 3.1.22-dən əvvəl, JRuby üçün Java BCrypt tətbiqindəki tam ədəd daşması (integer overflow) gücləndirmə dövründə sıfır iterasiyaya səbəb ola bilər. Bunun baş verməsi üçün təsirlənmiş tətbiqlərdə cost dəyəri 31 olaraq təyin edilməlidir. bcrypt-ruby-nin JRuby tətbiqi (`BCrypt.java`) açarın gücləndirilməsi raund sayını imzalı 32-bitlik tam ədəd kimi hesablayır. `cost=31` olduqda (gem tərəfindən icazə verilən maksimum dəyər), imzalı tam ədəd daşması raund sayının mənfi olmasına səbəb olur və gücləndirmə dövrü **sıfır iterasiya** ilə icra edilir. Bu, bcrypt-i eksponensial açar gücləndirməsinin 2^31 raundundan effektiv olaraq sabit zamanlı hesablama səviyyəsinə endirir — yalnız ilkin EksBlowfish açar qurulumu və yekun 64x şifrələmə mərhələsi qalır. Nəticədə alınan həş düzgün görünür (`$2a$31$...`) və `checkpw` vasitəsilə düzgün şəkildə təsdiqlənir, bu da zəifliyi tətbiq üçün görünməz edir. Bu problem yalnız cost=31 istifadə edildikdə və ya `$2a$31$` həşi təsdiqlənərkən yaranır. Problem versiya 3.1.22-də aradan qaldırılıb. Müvəqqəti həll yolu kimi cost dəyərini 31-dən kiçik bir rəqəmə təyin edin.

CiddilikYüksək
CVSS7.5
İstismar ehtimalı15. faiz dərəcəsi0,2%
MəhsulBcrypt-ruby
Dərc24 mar 2026
İlk görülmə24 mar 2026

Necə düzəltmək olar

Yeniləyin
  • bcrypt-ruby_project bcrypt-ruby3.1.22 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
bcrypt-ruby_project bcrypt-rubyv < 3.1.223.1.22

Versiyanızı yoxlayın

Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.

Intelligence 360 paketində

Attack Surface Management

Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.

CVE-2026-33306 · Bcrypt-ruby · Dark Radar