피드로 돌아가기
Mini Shai-Hulud: un gusano de cadena de suministro que explotó TanStack y el ecosistema npm.
Dev.toDev.to
Security

OIDC 토큰 탈취를 통한 5억 건 이상의 npm/PyPI 공급망 공격 발생

Mini Shai-Hulud: un gusano de cadena de suministro que explotó TanStack y el ecosistema npm.

Cristian Carrillo2026년 5월 12일6advanced

Context

GitHub Actions와 OIDC 기반의 자동화된 배포 파이프라인 신뢰 구조를 악용한 공급망 공격 사례임. SLSA 증명서와 패키지 서명을 통한 무결성 검증 체계가 런타임 코드 주입 및 메모리 직접 접근 방식에 의해 무력화된 한계를 보여줌.

Technical Solution

  • Forked Repository 내 @tanstack/setup 패키지를 통한 악성 prepare 스크립트 주입 및 pnpm 캐시 오염 유도
  • CI/CD 러너의 프로세스 메모리(/proc/*/mem)에 직접 접근하여 유효한 OIDC 토큰을 추출하는 메모리 덤프 기법 적용
  • 탈취한 OIDC 토큰을 이용해 SLSA 무결성 검증을 통과하는 가짜 패키지 버전을 npm 레지스트리에 직접 배포
  • npm bypass_2fa 토큰을 탐색하여 메인테이너의 모든 패키지로 악성 코드를 자동 전파하는 Worm 구조 설계
  • 런타임 시 obfuscated 코드를 실행하여 정적 분석 도구와 보안 스캐너의 탐지를 회피하는 동적 페이로드 전략 채택

- GitHub Actions의 id-token: write 권한을 배포 전용 Job으로 한정하고 테스트/CI 단계에서는 배제 - pull_request_target 워크플로우의 실행 범위를 보호된 브랜치로 제한하고 Forked 코드 실행 전 검증 단계 추가 - 신규 패키지 버전 도입 시 24~72시간의 Cooldown 기간을 두는 버전 지연 업데이트 전략 검토 - CI 러너 내 /proc/mem 접근 및 비정상적인 네트워크 트래픽을 감지하는 Runtime Security 도구 도입

원문 읽기