메인 콘텐츠로 건너뛰기
블로그 안전 2022년 3월 20일 - 26일 Linode 시큐리티 다이제스트

Linode Security Digest - 2022년 3월 20일~26일

리노드 시큐리티 다이제스트

이번 주, 우리는 리눅스 커널에서 몇 가지 높은 심각도 취약점을 논의 할 것이다, Apache, 그리고 열립니다.

리눅스 커널에서 ICMPv6 서비스 거부

CVE-2022-0742 를 사용하면 누구나 130 또는 131 형의 ICMPv6 메시지를 보내고 호스트가 메모리가 부족하게 만드는 커널의 메모리 누수를 악용 할 수 있습니다. 공격자가 몇 패킷만 전송하여 전체 시스템에 대한 서비스 거부를 일으킬 수 있으므로 이 취약점은 주목할 만합니다.

근본 원인 – 근본 원인을 찾기 위해 가장 좋은 장소는 git 커밋 역사 자체입니다. 수정 프로그램의 저자는 처음에 함수 synchronize_net()ipv6_mc_down() 내부에 추가된 이유를 조사하는 동안 이것을 발견했습니다. 커밋의 저자는 igmp6_event_query()igmp6_event_report() 가 패킷에 대한 정보를 보유하기 위해 리눅스 커널에서 사용하는 데이터 구조인 skbs를 삭제하는 것을 발견했습니다. 이 취약점은 아직 분석 중입니다.

이 취약점에는 몇 가지 주의 사항이 있습니다. 

  • 이는 사용 가능한 커널 이 5.13 이전날짜로 Red Hat 엔터프라이즈 Linux버전에 영향을 미치지 않습니다.
  • 안정적인 분기가 영향을 받았다.

이 취약점을 해결할 수 있는 유일한 방법은 커널을 업데이트하는 것입니다. 이 취약점을 해결하기 위한 패치가 이미 업스트림에 적용되었습니다.

Apache 보안 자문

우리가 주로 초점을 맞출 수있는 취약점은 CVE-2022-23943이지만 먼저 권고의 다른 CCV를 신속하게 요약할 것입니다. 이 권고에서 나올 다른 취약점은 CVE-2022-22720, http 요청 밀수를 허용하는 취약점입니다. httpd.conf의 LimitXMLRequestBody가 350MB보다 크면 정수가 32비트 시스템에 정수 오버플로를 허용하는 CVE-2022-22721도 있습니다. CVE-2022-22719는 초기화되지 않은 변수가 mod_lua 인해 충돌을 일으킵니다. 

mo d_sed 선택 사항입니다. Apache 대부분의 Linux 시스템에서 기본적으로 설치하거나 활성화되지 않은 모듈입니다. 웹 페이지에서 텍스트를 대체하는 데 사용됩니다. Apache sed 명령의 작동 방식과 유사한 패턴을 사용하여 사용됩니다.

CVE-2022-23943은 DoS를 일으킬 수 있는 메모리 손상 취약점입니다. 메모리 손상 취약점은 mod_sed 발생합니다. 악용은 mod_sed 필터를 통해 많은 양의 데이터를 전송하여 트리거됩니다. 보낸 패킷이 2GB보다 크면 서명된 정수 오버플로가 발생하여 충돌이 발생합니다. 4GB 이상을 보내면 정수 오버플로도 발생합니다.

근본 원인 - 근본 원인은 memcpy가 호출될 때 appendmem_to_linebuf 함수에서 발생합니다. 적용된 수정 프로그램은 함수 매개 변수에서 참조된 버퍼를 변경하여 int. Apr_size_t 대신 apr_size_t 사용하도록 변경하여 서명된 4바이트의 사용과 서명되지 않은 8바이트를 사용할 수 있습니다.

이 취약점에는 몇 가지 주의 사항이 있습니다.

  • mod_sed 거의 사용되지 않습니다. 그리고
  • mod_sed 수동으로 설치하고 구성해야 합니다. 일반적으로 다른 패키지에 대한 종속성으로 당겨지지 않습니다.

이 취약점에 대한 권장 수정 사항은 다음과 같습니다.

  • 업데이트 Apache 2.4.52보다 큰 버전으로
  • mod_sed 비활성화

httpd.conf에서 LimitRequestBody 1073741824 설정하여 부분 완화를 적용할 수 있습니다. 그러나 악의적인 클라이언트가 2GB보다 큰 요청을 보내는 것을 차단합니다. 공격자는 여전히 mod_sed 트리거하여 2GB이상의 파일을 읽을 수 있어 악용이 발생할 수 있습니다.

OpenSSL의 서비스 거부

OpenSSL은 인증서를 관리, 생성, 확인 및 서명하는 라이브러리 및 명령줄 프로그램입니다. 그것은 가장 오래된 오픈 소스 암호화 라이브러리 중 하나이며 리눅스 시스템에서 거의 보편적으로 어디서나 사용됩니다.

OpenSSL은 모듈식 제곱근을 계산하는 BN_mod_sqrt() 함수를 사용합니다. 그것은 비 프라임 moduli 영원히 루프 할 수있는 버그가 포함되어 있습니다. 압축된 형태로 타원형 곡선 공용 키가 포함된 인증서 또는 압축 된 형태로 인코딩 된 기본 점이있는 명시적 타원형 곡선 매개 변수를 확인하는 데 사용됩니다. 인증서를 만들어 DoS를 발생시키기 위해 공격자는 헥스 편집기와 같은 타원형 곡선을 사용하여 수학적으로 무효화되는 인증서를 수정해야 합니다.

근본 원인 - 취약점의 핵심은 압축 된 형식으로 포인트와 EC 키의 구문 분석에; OpenSSL은 이러한 유형의 키를 구문 분석하는 동안 압축된 점을 확장하여 곡선이 정의된 프라임 p 의 정사각형 루트 모둘로를 계산하려고 합니다. 그러나 p의 원시 성은 요구 사항인 BN_mod_sqrt() 에서도 아무 데도 확인되지 않습니다. 따라서 구현의 버그는 p 가 예상대로 프라임되지 않기 때문에 무한 루프를 일으킵니다. OpenSSL에 대한 권고는 여기에서 찾을 수 있습니다. 현재 패치된 버전은 다음과 같습니다.

  • 오픈SSL 3.0.2
  • 오픈SSL 1.1.1n  
  • 오픈SSL 1.0.2zd 

또한 이 취약점을 성공적으로 악용하는 데 몇 가지 주의 사항이 있으며 다음 조건을 충족해야 합니다.

  • 공격자는 특정 유효하지 않은 매개 변수를 사용하여 타원형 곡선 암호화를 사용하여 인증서를 생성하거나 기존 인증서를 수정합니다.
  • 공격자는 OpenSSL을 통해 로컬 액세스를 통해 인증서를 확인하거나 사용자가 제공한 인증서를 확인하는 mTLS 를 사용하여 웹 응용 프로그램에 제공해야 합니다.

내용

댓글 남기기

이메일 주소는 게시되지 않습니다. 필수 필드가 표시됩니다 *