피드로 돌아가기
Deep Dive: TanStack npm supply-chain compromise
Dev.toDev.to
Security

pull_request_target 취약점을 이용한 42개 패키지 Supply-chain 공격 분석

Deep Dive: TanStack npm supply-chain compromise

Shruti Kapoor2026년 5월 15일3advanced

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 환경 구성 검토

원문 읽기