목차
GNU C 라이브러리
glibc? GNU C 라이브러리란
GNU C 라이브러리(glibc)는 대부분의 리눅스 시스템에서 사용되는 시스템 라이브러리다. 표준 C 구현 및 C++을 지원하며, 리눅스 커널의 핵심 라이브러리를 제공하기 때문에, RHEL, CentOS, Ubuntu 등 리눅스를 커널로 사용하는 모든 운영 체제에서 사용된다.
취약한 버전
glibc 버전 2.36
및 이전 버전에 취약점이 존재한다. 2023년 1월 31일에 배포한 glibc 버전 2.39
에서 취약점이 수정되었다.
취약점 정보
CVE-2023-6246: 이 취약점은 glibc
의 __vsyslog_internal()
함수에서 발견되었으며, 시스템 로그를 남기기 위한 syslog
및 vsyslog
함수에서 호출된다. 힙 기반 버퍼오버플로우(BOF, Buffer Overflow) 취약점이 존재하며, 이를 통해 로컬 권한 상승(LPE, local privilege escalation)이 가능하다.
취약점 영향
이 취약점을 통해 공격자는 비정상적으로 긴 argv[0]
이나 openlog()
식별자 인수 와 같은 특정 조건 하에 로컬 권한 상승(LPE)이 가능하고, 결과적으로 시스템의 최고 관리자 권한을 얻을 수 있다. glibc 라이브러리가 대부분의 리눅스 배포판에 사용되고 있기 때문에, 다양한 공격에서 시스템 장악 목적 달성을 위해 사용될 수 있다.
취약여부 점검 방법
시스템이 취약한 버전의 glibc를 사용하는지 확인하기 위해서는 아래와 같이 ldd
명령으로 glibc 버전을 확인할 수 있다.
$ ldd --version
ldd (GNU libc) 2.34
Copyright (C) 2021 Free Software Foundation, Inc.
이 프로그램은 자유 소프트웨어입니다. 복사조건은 소스를 참조하십시오. 상품성
이나 특정 목적에 대한 적합성을 비롯하여 어떠한 보증도 하지 않습니다.
만든 사람: Roland McGrath 및 Ulrich Drepper.
패치 방법
취약점이 해결된 glibc 라이브러리 버전 2.39
이상으로 업데이트하거나 리눅스 배포판을 업데이트 한다. 전체 시스템에 영향을 끼치는 일이므로 데이터 백업 등 업데이트 실패시 시스템 롤백이 가능한 환경을 먼저 구성하고 진행한다.
TL;DR
GNU C 라이브러리(glibc)에서 힙 기반 버퍼오버플로우 취약점 CVE-2023-6246
이 확인되었다. 공격자가 로컬 계정 접근 권한을 획득한 경우, CVE-2023-6246
취약점을 통해 로컬 권한 상승(LPE)이 가능하며 시스템의 루트 권한을 얻을 수 있다. Debian, Ubuntu, Fedora 등 2.36
이전 버젼의 glibc를 사용하는 주요 리눅스 배포판이 취약하며, 취약점이 제거된 2.39
버전으로 업데이트함으로써 패치 할 수 있다.
참고자료
- GNU C Library Vulnerability Leads to Full Root Access
https://www.securityweek.com/gnu-c-library-vulnerability-leads-to-full-root-access/ - New Linux glibc flaw lets attackers get root on major distros
https://www.bleepingcomputer.com/news/security/new-linux-glibc-flaw-lets-attackers-get-root-on-major-distros/ - Glibc library vulnerability published
https://www.kaspersky.com/blog/cve-2023-6246-glibc-vulnerability/50369/ - National Vulnerability Database – CVE-2023-6246
https://nvd.nist.gov/vuln/detail/CVE-2023-6246