🇰🇷 한글 설명
Git LFS가 원격 호스트의 URL에 포함된 줄바꿈 문자(LF/CR)를 검증하지 않고 git-credential 명령어에 전달하여 사용자의 Git 자격증명을 탈취당할 수 있습니다. 공격자는 악의적인 URL에 제어 문자를 삽입하여 인증 정보를 획득할 수 있습니다. v3.6.1 이상으로 즉시 업그레이드해야 합니다.
💡 쉬운 설명
Git LFS가 특수 문자가 포함된 URL을 안전하게 처리하지 못해 공격자가 당신의 Git 비밀번호를 도용할 수 있습니다. 이 문제는 v3.6.1부터 수정되었으므로 업데이트가 필수입니다.
🇺🇸 원문 (English)
Git LFS is a Git extension for versioning large files. When Git LFS requests credentials from Git for a remote host, it passes portions of the host's URL to the `git-credential(1)` command without checking for embedded line-ending control characters, and then sends any credentials it receives back from the Git credential helper to the remote host. By inserting URL-encoded control characters such as line feed (LF) or carriage return (CR) characters into the URL, an attacker may be able to retrieve a user's Git credentials. This problem exists in all previous versions and is patched in v3.6.1. All users should upgrade to v3.6.1. There are no workarounds known at this time.
📍 영향받는 시스템
Git LFS 3.6.1 미만의 모든 버전
⚔️ 공격 벡터
악의적인 저장소 URL에 URL 인코딩된 LF(\n) 또는 CR(\r) 문자를 삽입하여 git-credential 명령어를 조작
🛡️ 대응 방법
Git LFS를 v3.6.1 이상으로 업그레이드
🔧 검증 코드
출력이 'Safe'이면 v3.6.1 이상으로 보호됨, 'Vulnerable'이면 업그레이드 필요
git lfs version | grep -oP '(?<=git-lfs/)[0-9]+\.[0-9]+\.[0-9]+' | awk -F. '{if($1>3||($1==3&&$2>6)||($1==3&&$2==6&&$3>=1))print "Safe"else print "Vulnerable"}'