🇰🇷 한글 설명
libcurl이 CURLOPT_ACCEPT_ENCODING 옵션을 사용하여 gzip 압축 해제를 수행할 때, zlib 1.2.0.3 이하 버전을 사용하면 정수 오버플로가 발생할 수 있습니다. 이로 인해 공격자가 제어하는 데이터에 의해 libcurl에서 버퍼 오버플로가 발생할 수 있는 취약점입니다.
💡 쉬운 설명
인터넷 데이터를 압축 해제하는 과정에서 계산 오류가 발생하여 메모리 공간을 넘어서는 데이터가 써지는 문제입니다. 이를 통해 해커가 컴퓨터의 제어권을 뺏거나 프로그램을 강제로 종료시킬 수 있습니다.
🇺🇸 원문 (English)
When libcurl is asked to perform automatic gzip decompression of
content-encoded HTTP responses with the `CURLOPT_ACCEPT_ENCODING` option,
**using zlib 1.2.0.3 or older**, an attacker-controlled integer overflow would
make libcurl perform a buffer overflow.
📍 영향받는 시스템
zlib 1.2.0.3 이하 버전을 사용하는 모든 libcurl 기반 시스템
⚔️ 공격 벡터
공격자가 조작된 content-encoded HTTP 응답을 전송하여 libcurl의 압축 해제 로직을 유도함
🛡️ 대응 방법
zlib 버전을 1.2.0.4 이상으로 업데이트하거나 최신 버전의 libcurl을 사용함
🔧 검증 코드
출력된 zlib의 버전이 1.2.0.3 이하인지 확인하여 취약 여부를 판단함
pkg-config --modversion zlib 2>/dev/null || dpkg -l | grep zlib 2>/dev/null || rpm -q zlib 2>/dev/null