Tấn công Cache Poisoning biến các gói npm TanStack thành mối đe dọa nguy hiểm
Một cuộc tấn công chuỗi cung ứng nhanh chóng đã tung ra 84 phiên bản độc hại của các gói npm chính thức TanStack chỉ trong sáu phút. Mã độc này có khả năng đánh cắp thông tin xác thực, tự lan truyền và xóa sạch ổ cứng của máy chủ bị nhiễm, gây ra mối đe dọa nghiêm trọng cho cộng đồng phát triển phần mềm.

Một kẻ tấn công đã công bố 84 phiên bản độc hại của các gói npm chính thức thuộc hệ sinh thái TanStack, gây ra hậu quả nghiêm trọng bao gồm việc đánh cắp thông tin đăng nhập, tự lan rộng và xóa hoàn toàn dữ liệu trên ổ cứng của máy bị nhiễm.
Cuộc tấn công này là một phần của làn sóng tấn công nhắm vào các nền tảng npm và PyPI, tiếp nối chiến dịch Mini Shai-Hulud. Theo công ty bảo mật chuỗi cung ứng Socket, các gói phần mềm khác cũng bị xâm phạm bao gồm OpenSearch client, Mistral AI, UiPath và Guardrails AI.
Diễn biến cuộc tấn công
Các gói npm độc hại đối với TanStack, một bộ ứng dụng mã nguồn mở phổ biến, đã được phát hành trong khoảng thời gian từ 19:20 đến 19:26 UTC ngày 11 tháng 5. Cuộc tấn công được phát hiện và báo cáo trong vòng 30 phút bởi StepSecurity, kích hoạt quy trình phản ứng sự cố và việc npm gỡ bỏ (deprecate) các phiên bản này. GitHub đã đưa ra một tư vấn bảo mật vào lúc 21:30 UTC, bao gồm danh sách chi tiết các gói bị ảnh hưởng.
Kỹ thuật Cache Poisoning
Tanner Linsley, người sáng lập TanStack, đã công bố một bản phân tích sau sự cố (postmortem) mô tả cách kẻ tấn công sử dụng một commit độc hại trên một nhánh fork để tạo pull request trên kho lưu trữ TanStack. Điều này khiến các tập lệnh tự động chạy và xây dựng mã độc, dẫn đến việc làm nhiễm độc bộ nhớ đệm (cache) của GitHub Actions.
Linsley cho biết đây là một biến thể của lỗ hổng GitHub Actions đã được phát hiện vào năm 2024. Mã độc sau đó đã trích xuất mã thông báo OpenID Connect (OIDC) của npm — được sử dụng để xuất bản gói tin cậy — từ bộ nhớ của runner bằng cách sử dụng cùng một mã đã được dùng để xâm phạm tj-actions trong một cuộc tấn công vào năm ngoái. Không có người bảo trì nào của TanStack bị xâm phạm trực tiếp.
Tác động của mã độc
StepSecurity có một phân tích chi tiết về cuộc tấn công, lưu ý rằng phần tải độc hại (payload) "đọc tệp từ hơn 100 đường dẫn được mã hóa cứng". Các đường dẫn này bao gồm những nơi có thể chứa thông tin xác thực đám mây, khóa SSH (secure shell), tệp cấu hình công cụ phát triển, ví tiền điện tử, cấu hình VPN, thông tin xác thực nhắn tin và lịch sử lệnh shell. Lịch sử shell đặc biệt nguy hiểm vì nó có thể chứa các mã thông báo và mật khẩu mà người dùng đã dán vào thiết bị đầu cuối.
Nhà nghiên cứu bảo mật Nicholas Carlini cảnh báo rằng phần tải độc hại "cài đặt một công tắc người chết (dead-man's switch)... dưới dạng dịch vụ người dùng hệ thống". Dịch vụ này kiểm tra xem mã thông báo GitHub bị đánh cắp có bị thu hồi hay không và nếu có, nó sẽ chạy một lệnh để xóa sạch ổ cứng cục thể.
Khuyến nghị xử lý
Bài viết của Socket bao gồm các hành động được khuyến nghị như thay đổi (rotate) tất cả các bí mật trên bất kỳ hệ thống nào bị ảnh hưởng. Tư vấn của GitHub gợi ý rằng "bất kỳ nhà phát triển hoặc môi trường CI nào đã chạy lệnh npm install, pnpm install hoặc yarn install đối với phiên bản bị ảnh hưởng vào ngày 2026-05-11 đều nên được coi là đã bị xâm phạm".
Mistral AI cũng đã được báo cáo trên GitHub và tính đến thời điểm viết bài này, dự án Mistral AI đang bị cách ly trên PyPI.
Cuộc tấn công này vẫn đang phát triển và có khả năng sẽ có tác động rộng lớn. Nó một lần nữa khẳng định rằng việc chạy các lệnh hàng ngày như npm install là không an toàn, rằng dù đã nỗ lực nhưng các kho lưu trữ gói lớn bao gồm npm và PyPI vẫn chưa được bảo mật hoàn toàn, và việc phát triển phần mềm hiện nay nên được thực hiện tốt nhất trong các môi trường biệt lập và tạm thời (ephemeral).
Bài viết liên quan

Phần mềm
Intel và AMD vá tổng cộng 70 lỗ hổng bảo mật trong Patch Tuesday tháng 5
13 tháng 5, 2026

Phần mềm
Plugin Checkmarx Jenkins bị xâm phạm trong cuộc tấn công chuỗi cung ứng
11 tháng 5, 2026

Công nghệ
Substrate (YC S24) tuyển dụng Technical Success Manager cho nền tảng AI chuyên xử lý thanh toán y tế
13 tháng 5, 2026
