Hôm 4/8/2026, tin tặc đã chiếm tài khoản GitHub của nhà phát triển thư viện keyv, một công cụ lưu trữ dữ liệu dạng key-value phổ biến trên npm với khoảng 127 triệu lượt tải mỗi tuần. Từ đó, chúng tiêm mã độc đánh cắp thông tin đăng nhập vào toàn bộ hệ sinh thái package của tác giả này, gồm flat-cache, file-entry-cache, cacheable, cache-manager và các thư viện caching khác, vốn đều thuộc nhóm thư viện công nghệ mã nguồn mở được dùng rộng rãi.

Mã độc lây lan qua npm như thế nào?

Các package bị đầu độc được phát hành kèm file setup.mjs chạy tự động trước khi cài đặt. Script này tải Bun JavaScript runtime từ GitHub rồi thực thi Math_Symbol.js, một tệp mã nguồn 728 KB bị làm rối nặng. Vì bản phát hành được ký bằng GitHub Actions nên trông rất hợp lệ. Payload quét file .npmrc để lấy token npm, kiểm tra tính hợp lệ rồi mã hóa và gửi về một kho chứa GitHub công khai. Nó còn tự nhân bản để lây sang các maintainer khác.

Vì sao người dùng cần quan tâm?

Đây không phải vụ rò rỉ dữ liệu đơn lẻ mà là tấn công chuỗi cung ứng phần mềm: chỉ cần một thư viện quen thuộc bị chiếm quyền, hàng trăm nghìn dự án có thể bị ảnh hưởng. Tính đến giữa ngày, ít nhất 434 package với hơn 2 tỷ lượt cài hàng tháng đã bị xâm nhập. Sự cố cho thấy mô hình open source phụ thuộc rất nhiều vào bảo mật của số ít maintainer. Doanh nghiệp và startup cần kiểm tra ngay khóa npm, xoay vòng token và theo dõi các bản phát hành thư viện nội bộ. Với người dùng thường, hãy cập nhật package cẩn thận và bật xác thực hai lớp cho tài khoản GitHub.