🇰🇷 한글 설명
libgit2의 HTTP 전송 계층에서 초기 리다이렉트를 처리할 때 인증 정보를 잘못된 URL로 전달하는 취약점이 발견되었습니다. 공격자가 신뢰할 수 있는 Git 호스트를 제어하거나 오픈 리다이렉트를 이용할 경우, 사용자의 HTTP 기본 인증 정보나 개인 액세스 토큰이 외부 호스트로 유출될 수 있습니다.
💡 쉬운 설명
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, the built-in HTTP transport in src/libgit2/transports/http.c follows an offsite initial redirect, and handle_remote_auth and handle_auth pass transport->owner->url instead of transport->server.url to the credential callback when the redirected host returns 401 Unauthorized. A callback that scopes credentials to the original trusted URL can therefore return GIT_CREDENTIAL_USERPASS_PLAINTEXT credentials that libgit2 stores in transport->server.cred and sends as an Authorization header to the redirected host. An attacker who controls a trusted Git host or an open redirect on that host can disclose HTTP Basic credentials, personal access tokens, or equivalent credentials. This issue is fixed in versions 1.8.6 and 1.9.5.
📍 영향받는 시스템
libgit2 1.8.6 및 1.9.5 미만 버전
⚔️ 공격 벡터
신뢰할 수 있는 Git 호스트의 오픈 리다이렉트 또는 호스트 탈취를 통한 인증 정보 탈취
🛡️ 대응 방법
libgit2를 1.8.6 또는 1.9.5 이상의 최신 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 libgit2의 버전이 1.8.6 또는 1.9.5보다 낮은지 확인하십시오.
pkg-config --modversion libgit2 2>/dev/null || dpkg -l | grep libgit2