피드로 돌아가기
Cache-poisoning caper turns TanStack npm packages toxic
The RegisterThe Register
Security

GitHub Actions 캐시 오염을 통한 84개 npm 패키지 공급망 공격

Cache-poisoning caper turns TanStack npm packages toxic

2026년 5월 12일2advanced

Context

신뢰 기반의 npm 패키지 배포 체계와 GitHub Actions의 캐싱 메커니즘을 악용한 공급망 공격 발생. 기존 OIDC 기반 인증 방식에도 불구하고 런너 메모리 내 토큰 탈취가 가능한 구조적 취약점 노출.

Technical Solution

  • 악성 커밋이 포함된 Fork PR 생성으로 GitHub Actions의 자동 스크립트 실행 유도
  • GitHub Action 취약점을 이용한 빌드 캐시 오염으로 악성 코드 주입 경로 확보
  • 런너 메모리에서 npm OpenID Connect (OIDC) 토큰을 직접 추출하여 신뢰된 배포 권한 획득
  • 100개 이상의 하드코딩된 경로를 탐색하여 Cloud Credential 및 SSH Key 등 민감 정보 수집
  • 탈취된 GitHub 토큰의 회수 여부를 감시하는 Dead-man's switch 서비스 설치 및 디스크 와이핑 로직 구현
  • npm, PyPI 등 멀티 레포지토리에 걸친 대규모 패키지 배포로 공격 범위 확장

- CI/CD 파이프라인 내 외부 PR에 대한 자동 워크플로우 실행 제한 및 검토 프로세스 강화 - OIDC 토큰의 수명 주기 최소화 및 런너 메모리 덤프 방지 보안 설정 적용 - npm install 등 의존성 설치 과정을 격리된 Ephemeral Environment에서 수행하는 구조 검토 - 패키지 락 파일(Lock file)의 Hash 검증 및 알려진 취약점 스캐닝 도구 자동화

원문 읽기