지난 2026년 8월 4일, 인기 키-값 저장 라이브러리 Keyv(주간 npm 다운로드 약 1.27억 회)의 유지보수 담당자 GitHub 계정이 탈취당하며 대규모 공급망 공격 '샤이-훌루드(Shai-Hulud)'가 발생했습니다. 공격자들은 이 계정을 이용해 Keyv를 포함한 여러 캐싱 유틸리티 패키지에 악성 코드를 삽입했으며, 이로 인해 수많은 개발자의 시스템이 감염되어 민감한 정보가 유출될 위기에 처했습니다. 이 공격은 npm 생태계 전반에 걸쳐 빠르게 확산되고 있어 심각한 우려를 낳고 있습니다.
공격은 Keyv 외에도 cacheable(월 2,900만 다운로드), flat-cache(월 5.65억 다운로드), file-entry-cache(월 5.57억 다운로드) 등 동일 유지보수 담당자가 관리하는 여러 인기 패키지에 영향을 미쳤습니다. 공격자들은 GitHub 메인 브랜치에 직접 악성 파일을 푸시하고 즉시 새 버전을 릴리스하여, 유효한 GitHub Actions 서명이 포함된 오염된 버전이 npm에 배포되도록 했습니다. 감염된 패키지 버전이 설치되면 'preinstall' 스크립트를 통해 난독화된 악성 파일(Math_Symbol.js)이 실행되며, 이는 npm 토큰, GitHub 토큰, AWS 자격 증명, Kubernetes 비밀, HashiCorp Vault 토큰, Stripe 및 Slack 토큰 등 광범위한 민감 정보를 수집하여 외부 GitHub 저장소로 유출합니다. 특히 GitHub Actions 러너에서는 프로세스 메모리에서 직접 비밀 정보를 덤프하는 기능까지 포함되어 있습니다.
이 공격은 단순한 정보 유출을 넘어, 감염된 패키지를 설치한 다른 유지보수 담당자의 패키지로도 확산되는 웜(worm) 기능을 포함하고 있어 피해 규모가 기하급수적으로 커질 수 있습니다. 현재까지 최소 434개 패키지(1,381개 버전)가 이 웜에 감염되었으며, 총 월간 설치 횟수는 20억 회를 넘어선 것으로 파악됩니다. 이는 개발 도구의 공급망 보안이 얼마나 중요한지 다시 한번 일깨워주는 사건이며, 개발자들은 즉시 자신이 사용하는 패키지 목록을 확인하고, 영향을 받은 패키지를 사용 중단하며, 모든 관련 자격 증명을 재설정하는 등 신속한 조치를 취해야 합니다. 또한, CI/CD 파이프라인과 개발 환경 전반의 보안 강화가 시급합니다.
