정보보안

npm 패키지 공급망 대규모 공격...170개 이상 패키지 감염

2026년 5월 12일
1분
5월 11일 npm과 PyPI 패키지 170개 이상이 악성 코드에 감염돼 404개의 악성 버전이 배포됐다.
[한국정보기술신문] 5월 11일 대규모 공급망 공격이 npm과 PyPI 생태계를 강타했다. mini-shai-hulud로 추적되는 이 공격은 개별 고가치 패키지보다 조직 전체를 목표로 했다. npm 170개 이상, PyPI 2개 패키지가 감염됐으며 총 404개 악성 버전이 공개됐다.
flyd-C5pXRFEjq3w-unsplash (1).jpg
Unsplash 제공

TanStack 생태계 피해

TanStack 이코시스템이 가장 심하게 피해를 입었다. React, Vue, Solid 프레임워크용 라우팅 라이브러리 42개가 감염됐다. 주당 다운로드 300만 건 이상인 인기 패키지 @tanstack/react-router도 포함됐다.

주요 표적 다수

Mistral AI의 모든 3개 SDK가 감염됐다. @mistralai/mistralai 핵심 SDK, @mistralai/mistralai-azure, @mistralai/mistralai-gcp가 대상이었다. UiPath 자동화 플랫폼 65개 패키지, OpenSearch 공식 JavaScript 클라이언트도 피해를 입었다. 주당 130만 건 다운로드되는 OpenSearch 클라이언트의 감염은 특히 우려스럽다.

공격 메커니즘 다양함

npm 패키지는 두 가지 방식으로 공격했다. Mistral 변형은 preinstall 훅으로 setup.mjs를 실행해 Bun 런타임을 다운로드하고 난독화된 페이로드를 실행했다. TanStack 변형은 악성 GitHub 레포지토리 커밋을 지정해 의존성을 주입했다. PyPI는 __init__.py에 코드를 주입해 import 시 attacker 인프라에서 transformers.pyz를 다운로드했다.

심각한 악성 페이로드

난독화된 JavaScript 페이로드는 AWS, GitHub, npm 게시 토큰과 HashiCorp Vault 자격증명을 수집했다. 탈취한 데이터는 Session 메신저 프로토콜로 전송됐다. 가장 위험한 것은 GitHub GraphQL API로 피해자 리포지토리에 .claude/settings.json과 .vscode/tasks.json 같은 악성 파일을 커밋하는 IDE 중독 기능이다. Claude Code와 VS Code 사용자를 자동으로 감염시키는 자기 확산 메커니즘도 포함됐다.

위협 지표와 진화

공격자 C2 도메인은 git-tanstack.com이고, 탈취 서버는 filev2.getsession.org다. 모든 401개 악성 버전이 5월 11일 5시간 안에 배포됐다. 두 레지스트리 모두 PyPI 프로젝트를 격리했으며 npm 패키지도 삭제했다.
한국정보기술신문 정보보안분과 오상진 기자 news@kitpa.org