🇰🇷 한글 설명
2026년 5월 11일 GitHub Actions 신뢰 경계 우회를 통해 42개의 @tanstack/* npm 패키지에 84개의 악성 버전이 게시되었습니다. 공격자는 pull_request_target 설정 오류, GitHub Actions 캐시 중독, OIDC 토큰 메모리 추출을 조합하여 합법적인 자격증명으로 자격증명 탈취 악성코드를 배포했습니다.
💡 쉬운 설명
유명한 npm 라이브러리(TanStack)의 정상 계정이 침해되어 악성 코드가 섞인 버전이 배포되었습니다. 이 라이브러리를 자동 업데이트하는 개발자 프로젝트는 악성 코드 실행에 노출됩니다.
🇺🇸 원문 (English)
On 2026-05-11, between approximately 19:20 and 19:26 UTC, 84 malicious versions across 42 @tanstack/* packages were published to the npm registry. The publishes were authenticated via the legitimate GitHub Actions OIDC trusted-publisher binding for TanStack/router, but the publish workflow itself was not modified. The attacker chained three known vulnerability classes — a pull_request_target "Pwn Request" misconfiguration, GitHub Actions cache poisoning across the fork↔base trust boundary, and runtime memory extraction of the OIDC token from the Actions runner process — to publish credential-stealing malware under a trusted identity. Each affected package received exactly two malicious versions, published a few minutes apart.
📍 영향받는 시스템
@tanstack/* npm 패키지 42개 (Router 포함), 2026-05-11 UTC 19:20-19:26 사이 배포된 악성 버전
⚔️ 공격 벡터
pull_request_target Pwn Request 설정 오류 → GitHub Actions 캐시 중독 → 런너 프로세스에서 OIDC 토큰 메모리 추출 → npm registry 접근
🛡️ 대응 방법
npm audit으로 감염된 버전 탐지 후, 해당 패키지들을 2026-05-11 이전 버전이나 공식 보안 패치 버전으로 즉시 롤백하고, 프로젝트의 타겟 버전을 고정하세요.
🔧 검증 코드
2026-05-11 UTC 19:20-19:26 사이 배포된 버전(각 패키지당 정확히 2개 연속 버전)을 npm registry의 publish 날짜와 대조하여 확인하고, 감염된 버전은 npm dist-tag deprecated를 통해 회수되었는지 확인하세요.
npm list @tanstack/* 2>/dev/null | grep -E '@tanstack' | awk '{print $2}' | sort -u
🇰🇷 KISA(한국인터넷진흥원) 보안 권고
이 CVE에 대한 한국 공식 권고 (1건)
개발도구 공급망을 통한 연쇄적 사이버 공격주의 2차 권고
P5
📅 2026-05-20 · sec_notice
Trivy 및 TanStack 등 개발 도구의 공급망 침해로 인해 CI/CD 환경의 자격증명과 민감 정보가 유출되는 연쇄 공격이 발생하고 있습니다. npm, PyPI, GitHub Actions 등 광범위한 생태계로 악성코드가 확산 중이므로, 관련 소프트웨어 사용자는 제공된 헌팅 가이드를 통해 감염 여부를 즉시 점검하고 침해 사고 시 신고해야 합니다.