🇰🇷 한글 설명
GNU C Library(glibc) 2.26에서 2.44 버전 사이에서 /etc/resolv.conf 또는 LOCALDOMAIN 환경 변수의 검색 목록에 200자 이상의 긴 도메인이 포함될 경우, DNS stub resolver 초기화 과정에서 어설션 실패(assertion failure)가 발생하여 프로세스가 중단됩니다. 이는 검색 목록을 고정 크기 버퍼로 복사할 때 발생하는 일관성 검사 오류로 인해 발생합니다.
💡 쉬운 설명
컴퓨터가 인터넷 주소를 찾는 과정에서 설정 파일에 너무 긴 도메인 이름이 들어있으면 프로그램이 갑자기 종료되는 문제입니다. 네트워크 설정(DHCP나 VPN)을 통해 공격자가 의도적으로 긴 이름을 전달하면 시스템의 특정 프로그램들을 강제로 멈추게 할 수 있습니다.
🇺🇸 원문 (English)
Initializing the DNS stub resolver from an /etc/resolv.conf file, or a LOCALDOMAIN environment variable, whose search list contains a domain of roughly 200 characters or more in the GNU C Library version 2.26 to 2.44 results in an assertion failure which aborts the process.
The resolver truncates the search list when copying it into the fixed-size _res.defdname buffer, then asserts that the copy is consistent with the full configuration. The consistency check compared against the wrong size and did not handle a first entry that does not fit, so a correctly truncated list failed the assertion. Any process that resolves names through the library is affected, including long-running processes that reload /etc/resolv.conf on the next query after it changes. Search domains are commonly written to /etc/resolv.conf from data received over DHCP or from a VPN server, so an attacker on the local network may be able to trigger this without privileges on the target system, subject to validation by the network configuration software.
📍 영향받는 시스템
GNU C Library (glibc) version 2.26 to 2.44
⚔️ 공격 벡터
로컬 네트워크의 DHCP 또는 VPN 서버를 통해 조작된 긴 검색 도메인을 전달하여 대상 시스템의 프로세스를 중단시킴
🛡️ 대응 방법
glibc를 최신 보안 패치가 적용된 버전으로 업데이트하거나, /etc/resolv.conf의 search 도메인 길이를 제한함
🔧 검증 코드
출력된 glibc 버전이 2.26에서 2.44 사이의 범위에 해당하면 취약한 상태임
ldd --version | grep -E 'ldd (GNU libc|glibc) [2][.][0-9]{2}|[2][.][4][0-4]'