OpenSSL 라이브러리에서 서비스 거부 취약점이 보고되었습니다.

이 취약점은 BN_mod_sqrt() 함수의 검증 부족으로 인해 발생됩니다.

원격 공격자는 OpenSSL 라이브러리를 사용하여 OpenSSL 서버 또는 응용프로그램에 조작된 패킷을 전송하여 이 취약점을 이용할 수 있습니다. 공격에 성공하면, 영향을 받는 서비스에서 서비스 거부 상태가 발생할 수 있습니다.

 

영향을 받는 OpenSSL 버전은 1.0.21.1.1, 3.0 이며, 해당 버전은 아래 버전에서 해결되었습니다.

 

  •      OpenSSL 3.0.2 (3.0.0, 3.0.1에 영향을 미침)
  •      OpenSSL 1.1.1n (1.1.1-1.1m에 영향을 미침)
  •      OpenSSL 1.0.2zd (1.0.2-1.0.2zc에 영향을 미침)

 

취약점의 식별자는 CVE-2022-0778이며 CVSS(v3) 6.1점으로 평가되었습니다.

 

 

기술 개요:

이 취약점은 모듈로 제곱근을 계산하는 데 사용되는 인터페이스 함수인 BN_mod_sqrt()에서 비롯되며 매개변수 p가 소수여야 하지만 함수에 검사가 없으므로 내부에 무한 루프가 발생할 수 있습니다. 이 함수는 다음 형식의 증명서를 해석할 때 사용됩니다.

 

  •      인증서에 압축 형식의 타원 곡선 공개 키가 포함된 경우.
  •      기준점이 압축 형식으로 인코딩 된 명시적인 타원 곡선 매개변수를 가진 인증서.

 

, 이 함수는 인증서를 해석할 경우 점 좌표를 압축 해제할 때 호출합니다. 따라서 외부에서는 불법적인 명시적 곡선 매개변수가 있는 인증서를 만들어, DoS 공격을 유발하고 무한루프를 발생시킬 수 있습니다.

 

 

문제의 트리거:

  •      압축된 형태의 타원 곡선 공개 키가 포함된 인증서 구문 분석.
  •      압축 형식으로 인코딩 된 기준점이 있는 명시적 타원 곡선 매개변수.
  •      유효하지 않은 명시적 곡선 매개변수가 있는 인증서 작성.
  •      명시적 타원 곡선 매개변수를 포함할 수 있는 조작된 개인 키 구문 분석.

 

 

트리거 조건:

  •      서버 인증서를 사용하는 TLS 클라이언트.
  •      클라이언트 인증서를 사용하는 TLS 서버.
  •      고객으로부터 인증서 또는 개인 키를 받는 호스팅 제공업체.
  •      인증 기관이 가입자의 인증 요청을 구문 분석.
  •      ASN.1 타원 곡선 매개변수를 구문 분석하는 기타 모든 것.
  •      매개변수 값을 제어하는 ​​BN_mod_sqrt()를 사용하는 OpenSSL 응용 프로그램.

 

 

공격 전달:

다음 애플리케이션 프로토콜을 사용하여 이 취약점을 악용하는 공격을 전달할 수 있습니다.

  •      SSL/TLS, OpenSSL

 

 

 

 

 

해결 방안:

이 취약점으로 인한 위험은 다음 방법을 통해 완화하거나 제거할 수 있습니다.

  •      이 취약점을 제거하는 OpenSSL 제공 패치를 적용합니다.
  •      신뢰할 수 없는 사용자에 대한 쓰기 권한을 제거합니다.

OpenSSL에서 이 취약성에 대해 릴리스한 코드 변경사항은 아래의 링크를 참고하시기 바랍니다.

 

OpenSSL 제공 코드 변경

 

 

 

 

 

 

 

Posted by 로버무트

댓글을 달아 주세요