🇰🇷 한글 설명
DH 키 또는 파라미터를 검사하는 과정에서 지나치게 긴 q 파라미터 값이 입력될 경우 계산 시간이 매우 오래 걸리는 문제가 있습니다. 신뢰할 수 없는 소스로부터 받은 키를 DH_check() 등의 함수로 검증할 때 서비스 거부(DoS) 공격이 발생할 수 있습니다.
💡 쉬운 설명
검증해야 할 데이터가 너무 크면 컴퓨터가 이를 계산하느라 과도하게 많은 시간을 쓰게 됩니다. 공격자가 일부러 복잡한 데이터를 보내 시스템을 멈추게 만들 수 있습니다.
🇺🇸 원문 (English)
Issue summary: Checking excessively long DH keys or parameters may be very slow.
Impact summary: Applications that use the functions DH_check(), DH_check_ex()
or EVP_PKEY_param_check() to check a DH key or DH parameters may experience long
delays. Where the key or parameters that are being checked have been obtained
from an untrusted source this may lead to a Denial of Service.
The function DH_check() performs various checks on DH parameters. After fixing
CVE-2023-3446 it was discovered that a large q parameter value can also trigger
an overly long computation during some of these checks. A correct q value,
if present, cannot be larger than the modulus p parameter, thus it is
unnecessary to perform these checks if q is larger than p.
An application that calls DH_check() and supplies a key or parameters obtained
from an untrusted source could be vulnerable to a Denial of Service attack.
The function DH_check() is itself called by a number of other OpenSSL functions.
An application calling any of those other functions may similarly be affected.
The other functions affected by this are DH_check_ex() and
EVP_PKEY_param_check().
Also vulnerable are the OpenSSL dhparam and pkeyparam command line applications
when using the "-check" option.
The OpenSSL SSL/TLS implementation is not affected by this issue.
The OpenSSL 3.0 and 3.1 FIPS providers are not affected by this issue.
📍 영향받는 시스템
OpenSSL의 DH_check(), DH_check_ex(), EVP_PKEY_param_check() 함수를 사용하는 애플리케이션 및 dhparam, pkeyparam 명령행 도구
⚔️ 공격 벡터
신뢰할 수 없는 출처로부터 조작된(매우 큰 q 값을 가진) DH 파라미터를 전달하여 검증 함수를 호출하게 함
🛡️ 대응 방법
OpenSSL을 최신 보안 패치가 적용된 버전으로 업데이트하거나, 검증 전 q 값이 p보다 큰지 확인하는 로직을 적용함
🔧 검증 코드
출력된 OpenSSL 버전을 확인하여 해당 취약점이 해결된 패치 버전인지 보안 권고문을 통해 대조함