Hơn 1.500 gói npm có thể bị chiếm mà không cần mật khẩu
Lỗ hổng SlugFest trong tính năng Trusted Publishing của npm cho phép kẻ khác phát hành bản mới của gói người khác chỉ bằng cách giành lại tên repo GitHub đã đổi hoặc đã xóa. npm đã vá, nhưng chủ gói vẫn nên tự kiểm tra.
Trusted Publishing là cách phát hành gói npm được khuyên dùng hiện nay. Bạn không lưu token npm trong GitHub nữa, mà npm tin thẳng vào workflow GitHub Actions của repo bạn. Nghe an toàn hơn, và về cơ bản đúng là an toàn hơn.
Ngày 13/10, nhóm Bloom Security công bố lỗ hổng SlugFest: cấu hình tin cậy đó có thể bị người khác giành lấy, và hơn 1.500 gói npm (tổng hơn 10 triệu lượt tải) đã ở trong tình trạng này.
Lỗi nằm ở đâu
Khi bật Trusted Publishing, bạn khai cho npm biết: “gói này được phát hành từ repo chu/ten-repo, workflow release.yml”.
Token mà GitHub cấp cho workflow có cả mã số cố định của repo và của chủ repo, những con số không bao giờ đổi. Nhưng npm chỉ lưu các mã số này sau lần phát hành thành công đầu tiên. Trước đó, npm tin vào tên repo.
Mà tên thì có thể bị người khác lấy lại:
Chủ gói đổi tên repo, chuyển repo, xóa repo, hoặc đổi tên tài khoản GitHub
Hacker tạo repo trùng tên cũ, kèm file workflow trùng tên
Workflow của hacker xin token GitHub, đem đổi lấy quyền phát hành của npm
Bản độc lên npm, có cả chứng nhận nguồn gốc (provenance) hợp lệ, kèm script tự chạy khi npm install
Hacker không cần lấy cắp mật khẩu hay token nào của nạn nhân.
Tình hình hiện tại
Bloom báo cho npm từ tháng 6. GitHub (công ty sở hữu npm) tung bản sửa ngày 2/10: cấu hình chưa từng phát hành thành công giờ tự hết hạn sau 48 giờ, và muốn đổi repo thì phải tạo lại cấu hình.
Bloom chỉ thử tấn công trên repo của chính họ. Chưa có vụ chiếm gói nào được xác nhận ngoài thực tế.
Bloom không công bố danh sách gói bị ảnh hưởng, và lỗi này không có mã CVE.
Nếu bạn là người phát hành gói npm
Chạy npm trust list cho từng gói, kiểm tra mọi repo trong danh sách vẫn đúng là của bạn
Đổi tên hay chuyển repo xong thì xóa cấu hình cũ, tạo lại
Trước khi xóa repo, gỡ cấu hình Trusted Publishing trước
Tạo cấu hình xong thì phát hành ngay một bản, để npm khóa vào mã số cố định của repo
Theo dõi email thông báo phát hành, thấy bản nào mình không phát hành thì báo npm ngay
Nếu bạn chỉ là người dùng gói
Huy hiệu provenance không còn là bảo chứng tuyệt đối. Nên xem repo ghi trong provenance có đúng là repo chính chủ của gói không. Bloom kể họ đã chặn AI agent của khách hàng cài một số gói nằm trong diện rủi ro, vì agent cài gói rất nhanh và hầu như không ai kiểm tra.
Bạn có dùng Trusted Publishing chưa? Đã bao giờ đổi tên repo của gói đang phát hành chưa? Kể trong cộng đồng Vibe Code & Bảo Mật nhé.
Hon 1.500 goi npm co the bi chiem ma khong can mat khau Lo hong SlugFest trong tinh nang Trusted Publishing cua npm cho phep ke khac phat hanh ban moi cua goi nguoi khac chi bang cach gianh lai ten repo GitHub da doi hoac da xoa. npm da va, nhung chu goi van nen tu kiem tra. npm chuoi cung ung GitHub Trusted Publishing la cach phat hanh goi npm duoc khuyen dung hien nay. Ban khong luu token npm trong GitHub nua, ma npm tin thang vao workflow GitHub Actions cua repo ban. Nghe an toan hon, va ve co ban dung la an toan hon.
Ngay 13/10, nhom Bloom Security cong bo lo hong **SlugFest**: cau hinh tin cay do co the bi **nguoi khac gianh lay**, va hon **1.500 goi npm** (tong hon 10 trieu luot tai) da o trong tinh trang nay.

## Loi nam o dau
Khi bat Trusted Publishing, ban khai cho npm biet: "goi nay duoc phat hanh tu repo `chu/ten-repo`, workflow `release.yml`".
Token ma GitHub cap cho workflow co ca **ma so co dinh** cua repo va cua chu repo, nhung con so khong bao gio doi. Nhung npm chi luu cac ma so nay **sau lan phat hanh thanh cong dau tien**. Truoc do, npm tin vao **ten** repo.
Ma ten thi co the bi nguoi khac lay lai:
1. Chu goi doi ten repo, chuyen repo, xoa repo, hoac doi ten tai khoan GitHub
2. Hacker tao repo **trung ten cu**, kem file workflow trung ten
3. Workflow cua hacker xin token GitHub, dem doi lay quyen phat hanh cua npm
4. Ban doc len npm, **co ca chung nhan nguon goc (provenance) hop le**, kem script tu chay khi `npm install`
Hacker khong can lay cap mat khau hay token nao cua nan nhan.
## Tinh hinh hien tai
- Bloom bao cho npm tu thang 6. GitHub (cong ty so huu npm) tung ban sua ngay **2/10**: cau hinh chua tung phat hanh thanh cong gio **tu het han sau 48 gio**, va muon doi repo thi phai tao lai cau hinh.
- Bloom chi thu tan cong tren repo cua chinh ho. **Chua co vu chiem goi nao duoc xac nhan** ngoai thuc te.
- Bloom khong cong bo danh sach goi bi anh huong, va loi nay khong co ma CVE.
## Neu ban la nguoi phat hanh goi npm
- Chay `npm trust list` cho tung goi, kiem tra moi repo trong danh sach **van dung la cua ban**
- Doi ten hay chuyen repo xong thi **xoa cau hinh cu, tao lai**
- Truoc khi xoa repo, **go cau hinh Trusted Publishing** truoc
- Tao cau hinh xong thi **phat hanh ngay mot ban**, de npm khoa vao ma so co dinh cua repo
- Theo doi email thong bao phat hanh, thay ban nao minh khong phat hanh thi bao npm ngay
## Neu ban chi la nguoi dung goi
Huy hieu provenance khong con la bao chung tuyet doi. Nen xem repo ghi trong provenance co dung la repo chinh chu cua goi khong. Bloom ke ho da chan AI agent cua khach hang cai mot so goi nam trong dien rui ro, vi agent cai goi rat nhanh va hau nhu khong ai kiem tra.
---
Ban co dung Trusted Publishing chua? Da bao gio doi ten repo cua goi dang phat hanh chua? Ke trong [cong dong Vibe Code & Bao Mat](https://www.facebook.com/groups/1867387324580254) nhe.
## Nguon
- [SlugFest: millions of AI agents download exposed npm packages](https://bloom.security/blog/slugfest-millions-of-ai-agents-download-exposed-npm-packages), Bloom Security
- [Unvalidated npm trusted publishing configurations now expire](https://github.blog/changelog/2026-10-02-unvalidated-npm-trusted-publishing-configurations-now-expire/), GitHub Changelog
- [npm Trusted Publishing flaw exposed 1,500+ npm packages to takeover](https://www.helpnetsecurity.com/2026/10/13/slugfest-npm-trusted-publishing-flaw/), Help Net Security
- [Over 1,500 npm packages exposed by trusted publishing validation flaw](https://www.csoonline.com/article/4234229/over-1500-npm-packages-exposed-by-trusted-publishing-validation-flaw.html), CSO Online