Wins blog

글로벌 정보보안 파트너! Global Security  No.1 윈스는 국가대표 정보보안 기업에서 글로벌 강소기업으로 도약합니다.

보안 정보

앞 내용 보기 다음 내용 보기
취약점 정보[CVE-2018-1303] Apache httpd mod_cache_socache DOS
작성일 2018-04-13 조회 916

개요

Apache httpd 에 DOS 취약점이 존재한다. 해당 취약점은 HTTP 요청문의 헤더를 제대로 검증하지 않아 발생한다.

 

* CVE 코드: CVE-2018-1303

* 취약한 버전: Apache Software Foundation httpd 2.4.6 to 2.4.29

* 취약점 발생 위치: read_table()

 

 

확인 내역

 

Apache HTTP 서버는 RFC 2616 호환 HTTP 캐싱을 제공하는 mod_cache 모듈과 함께 제공된다. mod_cache는 저장소 관리의 다양한 구현을 제공하기 위해 다른 모듈을 필요로 하는데, mod_cache_socache는 이러한 스토리지 관리 모듈 중 하나이다.

 

mod_cache_socache는 스토리지 관리자를 기반으로 공유된 객체 캐시를 구현한다. 헤더와 바디는 캐시된 응답 URL을 기반으로 싱글 키 아래에 함께 저장 된다.

 

해당 취약점은 mod_cache_socache를 캐시 스토리지 관리로 사용하는 Apache HTTP Server에서 발생하는 것으로, 정수형 오버플로우가 발생한다. 캐시 된 응답을 검색하는 과정에서 mod_cache_socache는 read_table()을 사용하여 캐시에 저장된 HTTP 헤더를 구문 분석한다. read_table()은 각 헤더 문자열을 파싱하고, 버퍼 메모리를 할당한다. 할당 된 버퍼 메모리에는 HTTP 헤더 이름과 값이 저장된다.

 

read_table()가 다음과 같은 값이 없는 HTTP 헤더를 처리 시, 헤더 값의 시작과 끝 위치를 잘못 계산하게 된다.

header_name :

 

read_table() 함수에서는 " "문자를 slider 포인터로, “:” 문자를 colon 포인터로 처리한다. 그리고 루프 구문을 통해 colon 포인터를 증가시켜 공백이 아닌 경우가 발견 될 때까지 모든 공백 문자를 건너뛴다. 그러나 여기에서는 위에서 설명 한 것과 같이 값이 없는 HTTP 헤더로 인해, read_table()은 " "과 " "을 공백 문자로 처리하여 " "문자를 지나 colon을 증가 시켜 colon이 slider보다 큰 값이 되게 된다.

 

colon과 slider의 값은 HTTP 헤더 값의 길이를 계산하는데 사용되는 값이므로, 아래 계산식을 통해 HTTP 헤더 길이 값이 매우 큰 부호 없는 정수가 되는 것을 확인 할 수 있다.

length = slider - colon

 

read_table()은 이 부호없는 정수 값을 HTTP 헤더 값에 사용 할 메모리 할당 사이즈 값으로 사용한다. 만약, 할당 크기를 충족할 수 없는 경우, 할당 함수는 프로세스 중단 신호를 발생시켜 클라이언트에 캐시 된 HTTP 응답을 제공하지 못하게 한다. 그 결과 서비스 거부가 발생하게 된다.

 

다음은 해당 취약점을 유발시키는 소스코드 부분의 일부이다. 위에서 설명한 slider 와 colon을 계산하는 과정들이 포함되어 있는 것을 확인 할 수 있다.

[그림1] modules/cache/mod_cache_socache.c

 

다음은 공격 패킷 정보이다. 다음과 같이 값이 없는 헤더 값들이 여러개가 등장하게 됨으로, 해당 값을 처리하는 과정에서 서비스 거부가 발생하게 된다.

[그림2] 공격 트래픽 정보

 

대응 방안

1. 최신 버전으로 업데이트

해당 벤더사에서 발표한 보안 업데이트 내용을 참고하여 최신의 버전으로 업데이트 한다.

https://httpd.apache.org/security/vulnerabilities_24.html


 

참조

http://seclists.org/oss-sec/2018/q1/266?utm_source=dlvr.it&utm_medium=twitter

https://httpd.apache.org/security/vulnerabilities_24.html

첨부파일 첨부파일이 없습니다.
태그 CVE-2018-1303  DOS  Apache  mod_cache_socache