bouncy castle background

Se ha informado de una grave vulnerabilidad de omisión de autenticación en Bouncy Castle, una popular biblioteca de criptografía de código abierto.

Cuando se explota, la vulnerabilidad (CVE-2020-28052) puede permitir que un atacante obtenga acceso a cuentas de usuario o administrador debido a una debilidad criptográfica en la forma en que se verifican las contraseñas.

Bouncy Castle es un conjunto de API de criptografía que utilizan los desarrolladores de Java y C # / .NET que crean aplicaciones de seguridad que prefieren no preocuparse por desarrollar sus propios algoritmos criptográficos.

Solo la versión .NET de Bouncy Castle se ha descargado más de 16.000.000 de veces, lo que demuestra la gravedad de las vulnerabilidades en Bouncy Castle, una biblioteca en la que confían los desarrolladores de aplicaciones de misión crítica.

Algoritmo de hash de contraseña defectuoso

Esta semana, dos investigadores Matti Varanka y Tero Rontti del Centro de Investigación de Ciberseguridad Synopsys han revelado una vulnerabilidad de omisión de autenticación en Bouncy Castle.

La falla, rastreada como CVE-2020-28052, existe en la clase OpenBSDBcrypt de Bouncy Castle, que implementa el algoritmo hash de contraseña Bcrypt.

Es decir, la función Bcrypt.doCheckPassword () responsable de realizar una coincidencia de hash de contraseña byte a byte tiene una lógica errónea.

“El código busca un índice de caracteres de 0 a 59 inclusive, en lugar de verificar que los caracteres en las posiciones de 0 a 59 coincidan”, se lee en el informe publicado por Synopsys.

“Esto significa que las contraseñas que dan como resultado hash que, por ejemplo, no contienen bytes entre 0x00 y 0x3B coinciden con cualquier otro hash de contraseña que no los contenga. Pasar esta verificación significa que un atacante no necesita un byte-for- coincidencia de bytes con el valor hash almacenado “, continúa el informe.

Vulnerabilidad de API de castillo hinchable CVE-2020-28052
Código vulnerable para CVE-2020-28052 en la función Bcrypt.doCheckPassword () de Bouncy Castle

Básicamente, esto se reduce a forzar un conjunto de cadenas que producirán un hash que, cuando se compara con la función doCheckPassword () , devuelve verdadero (es decir, coincide con éxito).

La explotación exitosa de la falla significa que un atacante podría usar la fuerza bruta de la contraseña de cualquier cuenta de usuario, incluida la del administrador, si las verificaciones de contraseña basadas en hash de una aplicación utilizan Bouncy Castle.

Alta tasa de éxito en los primeros 1000 intentos

Si bien las contraseñas seguras tardan mucho en descifrarse mediante la fuerza bruta, esta falla de implementación “cortocircuita” la rutina de verificación, dejando escapar esta suposición.

En promedio, los investigadores observaron que el 20% de las contraseñas probadas podrían ser forzadas en los primeros mil intentos como resultado de explotar esta vulnerabilidad.

“Algunos hash de contraseña requieren más intentos, determinados por la cantidad de bytes que se encuentran entre 0 y 60 (1 a 59). Además, nuestra investigación muestra que todos los hash de contraseña se pueden omitir con suficientes intentos. En raras ocasiones, algunos hash de contraseña se pueden omitir con cualquier aportación “, afirma el informe.

La autenticación basada en hash de Bcrypt , según los investigadores, se utiliza para verificaciones de autenticación en aplicaciones web y API.

Dado eso, a la vulnerabilidad se le ha asignado una calificación CVSS 3.1 de gravedad alta .

Según los investigadores, tanto Bouncy Castle 1.65 como 1.66 se ven afectados por esta falla, pero no las versiones anteriores a 1.65.

Bouncy Castle ha aplicado una solución para esta vulnerabilidad en las versiones 1.67 y superiores y se anima a los desarrolladores a aplicar la actualización.

Artículos relacionados:

Los errores críticos del analizador XML de Golang pueden provocar el desvío de la autenticación SAML

Lightning Network revela vulnerabilidades criptográficas “preocupantes”

El complemento de WordPress con 5 millones de instalaciones tiene una vulnerabilidad crítica

HPE revela un software crítico de gestión de servidores de día cero

Sophos corrige la vulnerabilidad de inyección de SQL en su sistema operativo Cyberoam