피드로 돌아가기
Dev.toSecurity
원문 읽기
pull_request_target 취약점을 이용한 42개 패키지 Supply-chain 공격 분석
Deep Dive: TanStack npm supply-chain compromise
AI 요약
Context
GitHub Actions의 pull_request_target 이벤트가 Base 레포지토리의 권한을 가진 채로 동작하는 구조적 취약점 존재. TanStack 프로젝트의 특정 워크플로우에서 Forked PR 코드를 검증 없이 실행함으로써 신뢰 경계(Trust Boundary)가 붕괴된 상황.
Technical Solution
- pull_request_target 트리거를 통한 Base 레포지토리의 Privileged Context 진입
- Forked PR의 머지 레포지토리를 Checkout 하여 공격자 제어 코드 실행
- pnpm cache poisoning을 통해 후속 정상 Release 워크플로우에 악성 코드 주입
- Runner 메모리 내의 단기 OIDC publish token을 추출하여 권한 탈취
- optionalDependencies 내 특정 Commit Hash 참조를 통한 악성 router_init.js 실행
- Session messenger의 E2EE 파일 업로드 서버를 활용한 C2 통신 및 데이터 유출
실천 포인트
1. pull_request_target 워크플로우 내 Fork 코드 Checkout 및 실행 여부 전수 조사
2. zizmor 등 정적 분석 도구를 활용한 GitHub Actions 보안 취약점 스캔
3. lockfile 내 @tanstack/setup 의존성 및 특정 커밋 해시(79ac49e) 포함 여부 확인
4. CI Runner 내 메모리 및 캐시 오염 가능성을 고려한 Ephemeral 환경 구성 검토