Shai-Hulud 2.0: The Largest npm Supply-Chain Attack Ever Uncovered
이 공격은 Shai‑Hulud 2.0라고 불리며, 대규모로 npm 패키지가 악성화되어 약 25 000개 이상의 GitHub 리포지토리에 영향을 준 것으로 분석됐다. wiz.io+3
Hun Jang Nov 25, 2025
대규모 npm 공급망 공격 ‘Shai‑Hulud 2’
최근 개발자 및 CI/CD 환경에 큰 영향을 미칠 수 있는 심각한 공급망 공격이 확인됐다.
이 공격은 Shai‑Hulud 2.0라고 불리며, 대규모로 npm 패키지가 악성화되어 약 25 000개 이상의 GitHub 리포지토리에 영향을 준 것으로 분석됐다. (wiz.io)
주요 포인트
- 공격은 설치 전 단계인
preinstall스크립트를 통해 실행되며, 이로 인해 개발자 기기, CI/CD 환경 모두가 직접적인 타깃이 됐다. (The Register)
- 피해 규모는 엄청나다. 약 350명 이상의 GitHub 사용자 계정이 연관되어 있고, 신규 감염 속도는 30분에 약 1 000개 리포지토리 증가하는 수준이다. (wiz.io)
- 공격 방식은 패키지 메인테이너 계정 탈취 → 악성 패키지 업로드 → 다운로드 및 설치 시 비밀(토큰/자격증명) 탈취 → GitHub 리포지토리로 자동 유출 및 확산. (Unit 42)
- 특히 이번 버전에서는 Bun 런타임까지 악용하는 변종이 포착됐다. (wiz.io)
타임라인
- 2025년 11월 21일~23일 사이에 악성 패키지가 집중 업로드되었으며, 이 시점부터 본격적인 확산이 시작됐다. (wiz.io)
- 공격 이후 많은 패키지가 제거됐지만, 여전히 확산 중이라는 경고가 나왔다. (The Register)
방어·완화 전략
- 영향을 받은 패키지를 식별해 이전 버전으로 롤백하거나 삭제하고,
npm cache clean --force등으로 캐시를 제거해야 한다. (wiz.io)
- 개발자 및 CI/CD 환경에서 사용하는 모든 자격증명(토큰, PAT, SSH 키 등)을 **즉시 회전(교체)**해야 한다. (Unit 42)
- 워크플로우·빌드 시스템을 최소 권한 원칙으로 재설계하고,
preinstall·postinstall같은 생명 주기 스크립트 실행을 통제해야 한다. (wiz.io)
- 공개 저장소에서 본인 계정에
“Shai‑Hulud”등 공격자가 남긴 흔적이 있는 리포지토리가 생성됐는지 확인해야 한다. (wiz.io)
이런 공격은 개발 생태계 전체에 악영향을 줄 수 있으므로, 점검 및 대응이 시급하다.