
npm 12 tắt install scripts và hạn chế phụ thuộc từ Git/URL để giảm rủi ro chuỗi cung ứng
"GitHub released npm 12 with install scripts, Git dependencies, and remote URL dependencies disabled by default to reduce supply chain risk. The update also deprecates npm granular access tokens that bypass 2FA for sensitive account and package management actions, and limits token-based publishing in favor of trusted publishing or staged publishing with human approval."
Tăng đáng kể khả năng giảm lạm dụng trong chuỗi cung ứng bằng cách chuyển install scripts sang cơ chế opt-in và siết quyền của token có thể bypass 2FA. Điểm then chốt: tắt mặc định lifecycle scripts, không phân giải phụ thuộc Git/remote nếu không cho phép, và giới hạn publish trực tiếp của GATs.
Có thể làm tăng công sức cấu hình ban đầu do cần phê duyệt script và điều chỉnh pipeline publish. Điểm cần lưu ý: cập nhật CI/CD để bật allowlist đúng cách, thay đổi cơ chế publish sang staged/trusted publishing, và giảm rủi ro gián đoạn bằng kế hoạch chuyển đổi trước các mốc hiệu lực.
GitHub công bố phát hành npm 12 với các thay đổi nhằm giảm rủi ro supply chain. Theo đó, các hành vi cài đặt từng chạy tự động trước đây được chuyển sang chế độ opt-in (bật theo yêu cầu): allowScripts mặc định tắt, khiến lifecycle scripts như preinstall/install/postinstall và các bước build ngầm (ví dụ node-gyp) sẽ không chạy nếu không được cho phép; --allow-git mặc định không cho phép, nên phụ thuộc từ Git (trực tiếp hoặc gián tiếp) không được phân giải trừ khi được bật; --allow-remote mặc định không cho phép, nên phụ thuộc từ URL từ xa (ví dụ tarball HTTPS) cũng không được phân giải nếu không được cho phép rõ ràng.
Để rà soát và phê duyệt script tin cậy, người dùng cần chạy npm approve-scripts --allow-scripts-pending, sau đó cam kết allowlist vào package.json.
Ngoài ra, npm tiếp tục deprecate granular access tokens (GATs) có thể bypass 2FA: các token này sẽ bị giới hạn quyền quản trị nhạy cảm và không còn khả năng publish trực tiếp; thay vào đó là staging và chỉ công khai sau khi có phê duyệt 2FA của con người (dự kiến thay đổi đầu tháng 8/2026 và tháng 1/2027). Khuyến nghị: chuyển sang trusted publishing (OIDC) hoặc staged publishing có bước phê duyệt thủ công, đồng thời rà soát quy trình CI/CD và cơ chế cho phép script/phụ thuộc.