🇰🇷 한글 설명
libgit2 라이브러리의 git_delta_apply 함수에서 델타 객체 헤더의 res_sz 값을 검증 없이 메모리 할당에 사용하여 발생하는 취약점입니다. 공격자가 조작된 팩 데이터를 제공할 경우 과도한 메모리 할당을 유도하여 시스템 자원을 고갈시킬 수 있습니다.
💡 쉬운 설명
악의적으로 조작된 Git 데이터를 읽을 때 컴퓨터의 메모리를 과도하게 사용하게 만들어 시스템을 멈추게 할 수 있는 문제입니다. 마치 가짜 주문서를 통해 식당의 모든 재료를 한꺼번에 주문하여 식당을 마비시키는 것과 같습니다.
🇺🇸 원문 (English)
libgit2 is a portable C implementation of the Git core methods provided as a linkable library with a solid API, allowing to build Git functionality into your application. Prior to 1.8.6 and 1.9.5, git_delta_apply in src/libgit2/delta.c trusts the attacker-controlled res_sz value parsed by hdr_sz from a delta object header and passes that amount to git__malloc before validating delta instructions. Malicious pack data supplied through git_clone, git_fetch, git_remote_fetch, git_indexer_append, or a local attacker-supplied repository can use a very small multi-level OFS_DELTA chain to retain extremely large allocations and exhaust memory. This issue is fixed in versions 1.8.6 and 1.9.5.
📍 영향받는 시스템
libgit2 버전 1.8.6 미만 및 1.9.5 미만
⚔️ 공격 벡터
git_clone, git_fetch 등을 통해 조작된 팩 데이터를 전달하거나 로컬 저장소를 이용한 공격
🛡️ 대응 방법
libgit2를 1.8.6 또는 1.9.5 이상의 최신 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 1.8.6 또는 1.9.5보다 낮은지 확인하십시오.
pkg-config --modversion libgit2 2>/dev/null || dpkg -l | grep libgit2 | awk '{print $3}'