2026년 3월 31일, npm 생태계에서 axios 공급망 공격(supply chain attack)이 발생했다. 악성 버전 3개가 배포됐다가 제거됐으며, 빌드 환경에서 C&C 서버로의 아웃바운드 연결을 시도해 시크릿 탈취 가능성이 있다. npm latest 태그는 안전한 axios@1.14.0으로 복원됐다.
핵심 포인트- 영향받은 패키지: axios@1.14.1, axios@0.30.4, plain-crypto-js@4.2.1
- 악성 코드가 sfrclak.com C&C 서버로 아웃바운드 연결 시도 — 빌드 환경 시크릿 탈취 가능
- 안전한 버전: axios@1.14.0(현재 latest) — npm에서 악성 버전 제거 완료
- 즉시 확인: lockfile과 node_modules에서 plain-crypto-js 존재 여부 검색
- 영향받은 빌드가 있다면 API key, DB 비밀번호, 토큰 전량 교체 필수
상세 정리- 공격 경위: 2026-03-31 axios npm 패키지에 악성 버전 3개가 배포됐다 제거됐다. npm latest 태그는 안전한 1.14.0으로 복원.
- 악성 패키지: axios@1.14.1, axios@0.30.4, plain-crypto-js@4.2.1 — 세 패키지가 연동된 공격.
- 기술적 영향: 악성 코드가 sfrclak.com을 C&C 서버로 사용해 아웃바운드 연결. 빌드 환경에서 실행 시 환경변수(API key, DB URL 등) 탈취 가능성.
- Vercel 대응: 빌드 인프라에서 sfrclak.com으로의 아웃바운드 트래픽 전체 차단. npm과 협력해 악성 버전 unpublish.
- 즉각 확인 방법: lockfile(package-lock.json, yarn.lock 등)과 node_modules에서 plain-crypto-js 검색 — 존재하면 감염 의심.
- 복구 절차: (1) 영향받은 버전을 axios@1.14.0으로 업그레이드 (2) 의심 빌드가 실행된 환경의 모든 시크릿 교체 (3) 프로젝트 재배포.
- 시사점: lock file 고정(npm ci)의 중요성과 빌드 환경 네트워크 격리의 필요성을 다시 보여준 사례.
왜 읽나axios를 의존성으로 사용하는 모든 Node.js/프론트엔드 개발자, 특히 해당 기간에 의존성을 업데이트했다면 즉시 확인이 필요하다.