- Published on
2026년 3월 31일 00:21 UTC, 주간 다운로드 8천만 건이 넘는 axios에 악성 버전 1.14.1이 올라왔습니다. 흥미로운 건 axios가 이미 npm trusted publishing을 쓰고 있었다는 점입니다 — 직전 정상 릴리스 1.14.0은 GitHub Actions가 OIDC로 발행했고 SLSA provenance까지 붙어 있었습니다. 그런데도 막지 못했습니다. trusted publishing이 뚫린 게 아니라, 애초에 유일한 배포 경로가 아니었기 때문입니다. 이 글은 npm 레지스트리 API가 지금도 그대로 남겨 둔 타임스탬프로 사건을 직접 재구성하고, provenance가 무엇을 증명하고 무엇을 증명하지 않는지, npm audit signatures를 실제로 돌리면 왜 통과해 버리는지, 그리고 결국 이걸 멈춘 게 어떤 자동화된 통제도 아닌 사람이었다는 사실을 정리합니다. 덤으로 보안 벤더의 그럴듯한 설명 하나가 레지스트리 타임라인과 어긋나는 지점도 짚습니다.