🇰🇷 한글 설명
gopass 1.17.0 이전 버전의 파일시스템 저장소 백엔드에 경로 순회(path traversal) 취약점이 존재합니다. Prune 및 IsDir 함수에서 ../ 항목명을 처리하지 못해 비밀번호 저장소 외부의 디렉터리를 삭제할 수 있습니다. 공유 git 저장소에 쓰기 권한이 있는 협업자가 악의적인 항목을 추가하면, 피해자가 재귀적 gopass rm -r을 실행할 때 임의의 디렉터리 트리가 삭제될 수 있습니다.
💡 쉬운 설명
비밀번호 관리 도구 gopass의 결함으로, 공유 저장소에 접근할 수 있는 사람이 조작된 항목을 넣어 다른 사용자의 컴퓨터에서 저장소 밖의 폴더까지 삭제되게 만들 수 있습니다. 피해자가 폴더 삭제 명령을 실행하는 순간 의도하지 않은 데이터가 사라질 수 있습니다.
🇺🇸 원문 (English)
gopass before 1.17.0 contains a path traversal vulnerability in the filesystem storage backend that allows attackers to delete directories outside the password store via ../ entry names in Prune and IsDir. Collaborators with write access to a shared git-synced store can introduce crafted entries, causing a victim's recursive gopass rm -r to delete arbitrary directory trees.
📍 영향받는 시스템
gopass 1.17.0 이전 버전 (파일시스템 저장소 백엔드 사용 환경)
⚔️ 공격 벡터
쓰기 권한이 있는 공유 git 저장소에 ../ 경로가 포함된 악성 항목을 추가한 뒤, 피해자가 gopass rm -r 실행 시 외부 디렉터리 삭제 유도
🛡️ 대응 방법
gopass를 1.17.0 이상으로 업데이트하고, 신뢰할 수 없는 협업자의 저장소 쓰기 권한을 제한하며, 중요한 데이터는 백업을 유지
🔧 검증 코드
출력된 버전이 1.17.0 미만이면 취약하고, 1.17.0 이상이면 패치된 것입니다. 명령이 실패하면 gopass가 설치되어 있지 않은 것입니다.
gopass version 2>/dev/null | grep -oE '[0-9]+\.[0-9]+\.[0-9]+'