CVE-2026-33306 in bcrypt-rubyinformación

Resumen

por MITRE • 2026-03-24

bcrypt-ruby es un enlace Ruby para el algoritmo de hash de contraseñas bcrypt() de OpenBSD. Antes de la versión 3.1.22, un desbordamiento de entero en la implementación Java de BCrypt para JRuby puede causar cero iteraciones en el bucle de fortalecimiento. Las aplicaciones afectadas deben estar configurando el costo en 31 para que esto ocurra. La implementación de JRuby de bcrypt-ruby ('BCrypt.java') calcula el recuento de rondas de fortalecimiento de clave como un entero con signo de 32 bits. Cuando 'cost=31' (el máximo permitido por la gema), el desbordamiento de entero con signo hace que el recuento de rondas se vuelva negativo, y el bucle de fortalecimiento ejecuta cero iteraciones. Esto colapsa bcrypt de 2^31 rondas de fortalecimiento exponencial de clave a una computación en tiempo efectivamente constante — solo quedan la configuración inicial de clave EksBlowfish y la fase final de cifrado 64x. El hash resultante parece válido ('$2a$31$...') y se verifica correctamente a través de 'checkpw', haciendo que la debilidad sea invisible para la aplicación. Este problema se activa solo cuando se usa cost=31 o al verificar un hash '$2a$31$'. Este problema ha sido solucionado en la versión 3.1.22. Como solución alternativa, configure el costo en algo menor que 31.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Responsable

GitHub M

Reservar

2026-03-18

Divulgación

2026-03-24

Moderación

aceptado

Artículo

VDB-352579

CPE

listo

EPSS

0.00009

KEV

no

Actividades

muy bajo

Fuentes

Do you want to use VulDB in your project?

Use the official API to access entries easily!