취약점 개요
2023년 10월, GNU C 라이브러리 동적 로더의 힙 버퍼 오버플로우(Heap Buffer Overflow) 취약점이 공개됐다. 이 취약점은 ‘Looney Tunables’라고 불리며, 로컬 사용자가 GLIBC_TUNABLES 환경 변수와 setUID가 포함된 프로그램을 이용해 자신의 권한을 상승시킬 수 있게 한다. 리눅스 기반 시스템인 Ubuntu, Debian, Fedora, gentoo, Amazon Linux 등에서 취약점이 발생한다. 취약점의 공식 관리 번호는 CVE-2023-4911이다.
Looney Tunables 취약점은 GLIBC_TUNABLES 환경 변수 문자열을 처리하는 과정에서 발생한다. 정상적인 경우에는 tunable1=AAA:tunable2=BBB와 같은 형식으로 작성되지만, tunable1=tunable2=BBB처럼 값이 이중 할당된 형식으로 작성된 경우 name-value를 올바르게 판단하지 못하고, 이중 처리가 일어나 버퍼 크기보다 큰 결과가 기록되는 힙 버퍼 오버플로우가 발생한다. 이를 통해 조작된 라이브러리가 로드되어 권한 상승이 이루어진다.
또한, GNU C 라이브러리 동적 로더는 프로그램에 필요한 공유 라이브러리를 검색한 뒤, 이를 메모리에 로드하여 실행 파일과 연결한다. 하지만, 이 과정이 setUID 혹은 setGID가 포함된 프로그램에서는 높은 권한으로 실행되기 때문에 보안 위협이 발생한다.
Looney Tunables 취약점은 리눅스 기반 시스템으로 구현된 서버, IoT, 클라우드 서비스 등 다양한 환경에 영향을 미친다. 이러한 시스템에 공격자가 침투하여 권한을 상승시킬 경우, 금전적 손실 뿐만 아니라 물리적 피해가 발생할 수 있다. 실제로 해킹 그룹 킨싱(Kinsing)은 클라우드에 침투하여 권한 상승을 통해 클라우드 자격 증명을 추출하고 암호 화폐를 채굴하는 등의 악성 행위로 피해를 주고 있다.
영향받는 소프트웨어 버전
CVE-2023-4911에 취약한 소프트웨어는 다음과 같다.
* 해당 버전 외에 GNU C 라이브러리를 사용하는 OS에서 취약점이 발생할 가능성이 있음
공격 시나리오
CVE-2023-4911을 이용한 공격 시나리오는 다음과 같다. (후략)
<표 1> 공격 시나리오
더 자세한 내용은 리포트 다운로드를 통해 확인하세요! (클릭)