npm 패키지 개발자 계정 탈취를 통해 package.json 에 악성 코드를 주입하는 공급망 공격 Shai-Hulud 2.0 이 발생했다. 공격자는 Bun 런타임을 몰래 설치하고 악성 스크립트를 실행하는 "stealthy loader" 패턴을 사용했다. Vercel 내부 인프라는 영향을 받지 않았으나, 취약한 패키지를 참조한 일부 고객 빌드가 영향을 받았다.
핵심 포인트- 공�� 방식: 개발자 계정 탈취 후 package.json 에 스텔스 로더를 주입, npm install 시 Bun 런타임을 몰래 설치하고 악성 스크립트를 실행하는 2단계 구조다.
- 영향 범위: Vercel 관리 시스템은 침해되지 않았으나, 취약 패키지를 참조한 제한적인 고객 빌드가 영향을 받았다.
- Vercel 대응: 취약 패키지 포함 프로젝트의 캐시를 즉시 리셋하고 영향받은 고객에게 직접 복구 가이드를 제공했다.
상세 정리- 공격 벡터: 다수 npm 패키지의 개발자 계정을 탈취한 후 package.json 파일에 악성 코드를 삽입하는 방식이다.
- 스텔스 로더 동작: 패키지 설치 시 대상 시스템에 Bun JavaScript 런타임을 몰래 설치한 뒤 악성 스크립트를 실행하는 2단계 구조다.
- 은닉 전략: package.json 의 install 훅 등을 이용해 일반 보안 스캔에 걸리기 어려운 위치에 로더를 삽입한 것으로 추정된다.
- 영향 평가: Vercel 내부 빌드 인프라는 침해되지 않았다. 그러나 취약 패키지를 의존성으로 참조한 고객 빌드 일부가 영향을 받았다.
- Vercel 미티게이션: 취약 패키지 포함 프로젝트의 캐시를 즉시 리셋했으며 악성 로더가 실제 실행됐는지 계속 조사 중이다.
- 고객 대응: 영향받은 고객에게 직접 연락해 구체적인 복구 방법을 안내했다.
왜 읽나npm 공급망 공격의 실제 공격 패턴(계정 탈취 → package.json 주입 → Bun 스텔스 설치)을 이해하고 의존성 보안 점검의 필요성을 파악하고자 하는 개발자에게 유용하다.