무슨 일이 있었나
2026년 6월 17일, 북한 국가 행위자 Sapphire Sleet (BlueNoroff/APT38, Microsoft에서 높은 신뢰도로 귀속)가 npm 계정 'ehindero'를 탈취했습니다. 이는 발행 권한이 절대 회수되지 않은 이전 Mastra 기여자입니다. 88분 이내에 @mastra 범위 전체에서 141개 패키지에 독성화된 업데이트를 발표했습니다. 각 업데이트는 postinstall 훅을 수행하는 정당한 dayjs 라이브러리의 타이포스콰트인 'easy-day-js'라는 악성 종속성을 주입했습니다. 훅은 TLS 검증을 비활성화하고, 공격자 제어 C2에 연락하며, 166개의 암호화폐 지갑 브라우저 확장 ID, AI API 키, GitHub 토큰, AWS 자격 증명 및 개발자 신원 데이터를 대상으로 하는 크로스 플랫폼 자격 증명 탈취 RAT를 드롭했습니다. Mastra는 AI 에이전트, RAG 파이프라인 및 LLM 워크플로우를 구축하기 위한 TypeScript 프레임워크입니다. @mastra/core만 해도 공격 시점에 약 주 918,000회 다운로드가 있었습니다. Microsoft는 6월 17-19일에 귀속 분석을 발표했습니다.
왜 중요한가
Mastra는 핵심 AI 에이전트 개발자 인프라입니다. 범위는 에이전트 오케스트레이션, 도구 통합, MCP 서버 및 RAG 파이프라인 구성 요소를 포함합니다. ~주 800만 다운로드에 걸쳐 설치 시간 실행을 손상시킴으로써, 공격자는 AI 개발 파이프라인에서 가장 민감한 자격 증명에 접근할 수 있었습니다. LLM API 키(OpenAI, Anthropic 등), 클라우드 공급자 토큰 및 전체 AI 인프라 스택에서 측면 이동을 활성화하는 CI/CD 비밀입니다. 이 공격은 npm install 시간에 실행되었으며, 애플리케이션 코드가 실행되기 전에 정적 분석 및 런타임 모니터링을 보이지 않게 했습니다.
공격 경로
탈취된 npm 유지관리자 계정이 141개 Mastra 패키지에 악성 easy-day-js 종속성을 주입하는 데 사용됨; postinstall 훅은 모든 개발자 머신이나 CI/CD 러너에서 npm install 시에 실행되어 크로스 플랫폼 자격 증명 탈취 RAT를 드롭합니다.
영향받는 시스템
@mastra/* npm 패키지 — 141개 패키지 트로이 목마화; 2026년 6월 17일 공격 시간 동안 mastra 버전 1.13.1+ 및 @mastra/core 버전 1.42.1+
완화 방안
알려진 좋은 버전을 고정합니다 (mastra ≤ 1.13.0, @mastra/core ≤ 1.42.0은 영향을 받지 않음); node_modules/ 및 package-lock.json에서 easy-day-js를 감사합니다. 6월 17일 창 동안 npm install을 실행한 시스템의 모든 자격 증명을 회전합니다. npm 조직 정책에 SLSA 출처 증명을 적용합니다. Microsoft 블로그: https://www.microsoft.com/en-us/security/blog/2026/06/17/postinstall-payload-inside-mastra-npm-supply-chain-compromise/