
CVE-2022-0778의 개념 증명 익스플로잇, OpenSSL의 BN_mod_sqrt() 함수에서의 서비스 거부 취약점, 테스트 및 분석을 위한 Docker 기반 랩 환경 포함.
Contributors
CVE-2022-0778 취약점은 OpenSSL에서 소수의 제곱근을 계산하는 BN_mod_sqrt()함수에 영향을 미칩니다.
이 함수가 소수 기반이 아닌 악의적으로 조작된 인증서를 처리할 때, 패치되지 않은 서버는 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 문을 for 문으로 변경되었습니다.Ubuntu 환경 구성
docker compose up -d 테스트 환경 실행
docker run -it --rm -p 12345:12345 yywing/cve-2022-0778 --addr 0.0.0.0:12345
docker compose exec curl top 프로세스 상태 확인
docker compose exec curl bash bash 실행
curl -k https://172.17.0.1:12345 12345 포트로 HTTPS 요청 전송

docker run -it --rm -p 12345:12345 yywing/cve-2022-0778 --addr 0.0.0.0:12345 명령을 실행하여 Docker 이미지를 시작합니다.
docker compose exec curl top 명령어를 실행해 현재 실행 중인 프로세스들의 상황을 살펴봅니다.
docker compose exec curl bash를 입력한 후, curl -k https://172.17.0.1:12345 12345 포트로 HTTPS 요청 전송을 합니다.