Chuyển đến nội dung
tinAI
Quay lại

Shai-Hulud quay lại qua keyv: sự cố npm dev cần xử lý ngay

aikido.dev · Loại nguồn: công ty/blog 2026-08-04T20:08:32.448Z
Bản dịch tiếng Việt của tinAI · Từ Keyv and friends compromised in active Shai-Hulud supply chain attack (aikido.dev) · Ngày gốc: · Dịch ngày:

và giữ bối cảnh từ bản tin tinAI đã giới thiệu bài này .

Bài gốc: Keyv and friends compromised in active Shai-Hulud supply chain attack (aikido.dev)

Tác giả: Aikido

Ngày đăng: Dịch ngày:

TL;DR

Tài khoản GitHub của maintainer đứng sau keyv bị chiếm và dùng để phát hành các package npm độc hại có preinstall hook. Payload đánh cắp token, secret và credential rồi tự lan sang package khác, nên dev cần kiểm tra lockfile, môi trường đã cài đặt, và rotate token nếu có rủi ro.

Ước tính đọc: 3 phút

Chuyện gì đã xảy ra

Ngày 4/8/2026, Aikido ghi nhận tài khoản GitHub của maintainer đứng sau keyv bị chiếm. Kẻ tấn công dùng quyền đó để đẩy file độc hại thẳng lên main và phát hành version mới cho nhiều package npm cùng họ cache như keyv, flat-cache, file-entry-cache, cacheable-request, cacheable và cache-manager.

Điểm nguy hiểm là release vẫn đi qua GitHub Actions và có provenance hợp lệ. Với người tiêu thụ package, dấu hiệu ký phát hành không đủ để chứng minh an toàn khi chính tài khoản và đường phát hành đã bị chiếm.

Payload làm gì

Các package bị đầu độc được thêm script preinstall. Khi người dùng chạy npm install với version bị ảnh hưởng, setup.mjs tải Bun rồi chạy Math_Symbol.js. File JavaScript này được obfuscate và tập trung vào hai việc: đánh cắp credential và tự lan truyền.

Những nguồn bị quét gồm npm token trong .npmrc, GitHub token, OIDC token trên GitHub Actions runner, AWS credential, Kubernetes service account, Vault token, Stripe/Slack token, SSH/private key, file .env, Terraform state, Docker config, và nhiều file cấu hình IDE. Payload mã hóa dữ liệu trước khi đưa lên hạ tầng công khai do attacker kiểm soát, nên việc thấy repository drop point không đồng nghĩa có thể đọc lại secret đã mất.

Cơ chế tự lan

Nếu lấy được npm token có quyền publish, payload liệt kê package mà token có thể phát hành, tải tarball hiện tại, tăng patch version, thêm preinstall hook, nhét payload vào rồi publish lại. Nếu lấy được GitHub token phù hợp, nó còn có thể commit vào nhiều branch, thêm hook vào cấu hình VS Code hoặc Claude Code để chạy lại payload khi dev mở repo hoặc dùng phiên coding agent.

Aikido ghi nhận ít nhất 434 package qua 1.381 version bị ảnh hưởng trong bản nội dung được trích xuất. Con số lượt cài hàng tháng rất lớn, nhưng dev nên đọc nó như chỉ báo phạm vi dependency, không phải số máy chắc chắn đã bị lộ secret.

Dev nên làm gì

Kiểm tra lockfile cho keyv, flat-cache, file-entry-cache, cacheable-request, cacheable, cache-manager và package liên quan. Nếu môi trường dev hoặc CI đã chạy npm install trong cửa sổ rủi ro, hãy coi token trên môi trường đó là có khả năng lộ và rotate.

Nên audit lifecycle scripts, đặc biệt package bỗng nhiên thêm preinstall hoặc postinstall. Với CI, hạn chế secret mặc định, dùng token ngắn hạn, chia quyền publish theo package, và tách môi trường build khỏi môi trường có quyền phát hành. Bài học chính không mới: supply chain không cần exploit app của bạn nếu nó có thể chạy code ngay lúc cài dependency.


Đường dẫn nguồn

tinAI dịch bài này sang tiếng Việt từ Keyv and friends compromised in active Shai-Hulud supply chain attack (aikido.dev) · Loại nguồn: công ty/blog và giữ bối cảnh từ bản tin tinAI đã giới thiệu bài này .

Bản tin này có 3 bài dịch liên quan từ cùng bản tin.

Đọc tiếp từ đây

Bạn có thể quay lại bản tin nguồn hoặc mở kho bài dịch để đọc tiếp.

Các bài bên dưới cùng xuất hiện trong bản tin nguồn, nên giữ chung bối cảnh đọc với bài này.

Các bài liên quan trong cùng bản tin trải trên 2 loại nguồn (2 bài). Loại nguồn: công ty/blog 1 Loại nguồn: web 1