🇰🇷 한글 설명
Skim의 GitHub Actions 워크플로우에서 공격자 제어 fork 코드를 무제한 실행할 수 있는 취약점입니다. 모든 GitHub 사용자가 PR을 통해 민감한 토큰(SKIM_RS_BOT_PRIVATE_KEY, GITHUB_TOKEN)에 접근하는 악의적 코드를 실행할 수 있으며, 저장소 탈취 및 악성 코드 삽입을 초래합니다.
💡 쉬운 설명
GitHub의 자동 빌드 시스템이 누구나 제출한 코드를 아무 검증 없이 실행하는 문제입니다. 공격자가 pull request를 통해 악의적 코드를 제출하면 저장소의 비밀 토큰이 도용될 수 있습니다.
🇺🇸 원문 (English)
Skim is a fuzzy finder designed to through files, lines, and commands. The generate-files job in .github/workflows/pr.yml checks out attacker-controlled fork code and executes it via cargo run, with access to SKIM_RS_BOT_PRIVATE_KEY and GITHUB_TOKEN (contents:write). No gates prevent exploitation - any GitHub user can trigger this by opening a pull request from a fork. This vulnerability is fixed with commit bf63404ad51985b00ed304690ba9d477860a5a75.
📍 영향받는 시스템
Skim (commit bf63404ad51985b00ed304690ba9d477860a5a75 이전 모든 버전)
⚔️ 공격 벡터
공격자가 Skim fork에서 PR을 열면 .github/workflows/pr.yml의 generate-files job이 untrusted 코드를 cargo run으로 실행하여 환경 변수 토큰 탈취 가능
🛡️ 대응 방법
Skim을 commit bf63404ad51985b00ed304690ba9d477860a5a75 이상으로 업그레이드하거나 워크플로우에서 fork PR에 대한 secrets 접근 제한 설정
🔧 검증 코드
수정 커밋이 로그에 표시되면 취약점이 패치된 것이며, 해당 커밋 이상 버전에서는 보안이 보장됩니다.
git log --oneline --all | grep -E 'bf63404|fix.*fork|restrict.*secrets' | head -1