TanStack npm 공급망 공격 전말 — 자격증명 교체 필수
Original: Postmortem: TanStack NPM supply-chain compromise View original →
공격 개요
2026년 5월 11일 19:20~19:26 UTC, 약 6분 만에 공격자가 42개의 @tanstack/* npm 패키지에 악성 버전 84개를 게시했다. npm 토큰은 탈취되지 않았고, 공격 경로는 GitHub Actions였다. 외부 보안 연구자 ashishkurmi가 20분 만에 탐지했으며, 영향받은 버전은 모두 deprecated 처리됐다.
세 가지 취약점의 연계
- Pwn Request 패턴:
pull_request_target이벤트를 악용해 포크 PR에서 베이스 저장소의 시크릿에 접근했다. - 캐시 포이즈닝: 포크와 베이스 저장소 간 신뢰 경계를 넘어 GitHub Actions 캐시를 오염시켰다.
- OIDC 토큰 추출: Actions 러너 프로세스 메모리에서 실행 중인 OIDC 토큰을 런타임에 추출했다.
악성 코드 동작
npm install 또는 pnpm install 실행 시 악성 패키지의 prepare 라이프사이클 스크립트가 약 2.3MB 난독화 파일을 실행한다. AWS IMDS/Secrets Manager, GCP 메타데이터, Kubernetes, Vault, GitHub 토큰, SSH 개인키 등을 수집한 뒤 Session/Oxen 메신저 네트워크를 통해 E2E 암호화로 유출한다.
안전한 패키지
@tanstack/query*, @tanstack/table*, @tanstack/form*, @tanstack/virtual*, @tanstack/store, @tanstack/start는 영향받지 않았다.
즉시 조치 사항
2026년 5월 11일 영향받은 버전을 설치했다면 AWS, GCP, Kubernetes, Vault, GitHub, npm, SSH 자격증명을 즉시 교체해야 한다. GitHub Security Advisory: GHSA-g7cv-rxg3-hmpx.
Related Articles
Hacker News는 이번 Bitwarden CLI 사고를 평범한 npm 이슈가 아니라, 비밀정보가 몰린 개발 워크플로우를 정면으로 건드린 GitHub Actions 공급망 사고로 받아들였다. 2026년 4월 25일 크롤링 시점 기준 스레드는 855점, 416댓글이었다.
npm, PyPI, Crates.io에 걸친 34개 악성 패키지가 지갑 파일, SSH 키, 클라우드 토큰을 노렸다. 더 큰 쟁점은 .cursorrules와 CLAUDE.md까지 건드려 AI 코딩 도구가 공격자의 지시를 읽게 만들려 했다는 점이다.
공개 저장소 이슈에 숨긴 지시가 조직의 private repo 접근으로 이어질 수 있다는 실험이 HN에서 가장 뜨거운 쟁점이 됐다.