Gói npm của Tensorlake bị xâm phạm trong cuộc tấn công chuỗi cung ứng Shai-Hulud
Phiên bản độc hại 0.5.144 của SDK Tensorlake đã được phát hành lên npm, chứa một con sâu đánh cắp thông tin đăng nhập nhắm vào hạ tầng AI và các bí mật đám mây.
Bài được dịch tự động từ bản gốc tiếng Anh.
Gói npm của Tensorlake, một SDK TypeScript dùng để xây dựng ứng dụng trên các dịch vụ đám mây của Tensorlake, đã bị xâm phạm trong một cuộc tấn công chuỗi cung ứng tinh vi. Vào ngày 8 tháng 10 năm 2026, các nhà nghiên cứu bảo mật xác định rằng phiên bản 0.5.144 chứa phần mềm độc hại được mã hóa nhằm đánh cắp thông tin đăng nhập và tự nhân bản trong các môi trường phát triển.
Sự cố này là một phần của chiến dịch ChainDrop rộng lớn hơn, sử dụng biến thể sâu Shai-Hulud để nhắm mục tiêu vào các chuỗi cung ứng phần mềm. Gói độc hại sau đó đã được gỡ bỏ khỏi kho lưu trữ npm, nhưng các nhà phát triển đã cài đặt nó trong khoảng thời gian bị lộ vẫn có nguy cơ bị truy cập trái phép kéo dài và rò rỉ dữ liệu.
Chuyện gì đã xảy ra
Tin tặc đã giành quyền truy cập vào kho lưu trữ của Tensorlake và đẩy mã độc hại lên nhánh chính dưới tên của người bảo trì. Commit độc hại đầu tiên diễn ra vào lúc 01:20 sáng UTC ngày 7 tháng 10 năm 2026. Ngày hôm sau, quy trình phát hành tự động của kho lưu trữ đã công bố phiên bản 0.5.144 lên kho npm công khai. Chuỗi sự kiện này cho thấy tin tặc đã xâm phạm quy trình bảo trì thay vì chỉ kênh phân phối gói.
Gói bị xâm phạm bao gồm một hook preinstall thực thi một tệp loader JavaScript có tên "package/lib/setup.mjs". Loader này khởi chạy payload chính, "package/lib/Math_Symbol.js", bằng cách sử dụng runtime Bun. Payload là một con sâu được mã hóa, thu thập thông tin đăng nhập, thiết lập tính bền vững (persistence) trên hệ thống chủ và thực thi mã từ xa. Công ty bảo mật Socket lưu ý rằng khả năng của phần mềm độc hại vượt xa việc ghi phím đơn giản, vì nó có thể duy trì quyền truy cập ngay cả sau khi phụ thuộc bị gỡ bỏ.
Con sâu được thiết kế để tự lan truyền. Nó liệt kê các gói khác liên quan đến danh tính xuất bản của nạn nhân, tạo các hồ sơ nguồn gốc Sigstore giả mạo và tái xuất bản các phiên bản bị xâm phạm của những gói đó. Cơ chế này cho phép nhiễm trùng lan truyền ngang qua hệ sinh thái phần mềm riêng của nhà phát triển, có khả năng ảnh hưởng đến người dùng hạ nguồn tin tưởng vào các dự án khác của nhà phát triển.
Chi tiết chính
- Phiên bản độc hại: Chỉ phiên bản 0.5.144 của gói tensorlake được xác nhận là bị xâm phạm.
- Thực thi payload: Phần mềm độc hại sử dụng hook preinstall để chạy một loader được mã hóa thông qua runtime Bun.
- Dữ liệu bị nhắm tới: Công cụ đánh cắp thu thập token npm, token GitHub, thông tin đăng nhập AWS, bí mật HashiCorp Vault, thông tin đăng nhập Kubernetes, khóa SSH, tệp .env và ví tiền điện tử.
- Tích hợp công cụ AI: Nó đặc biệt nhắm vào các tệp cấu hình cho trợ lý lập trình AI như Anthropic Claude, Cursor, Kiro, Windsurf và Zed.
- Cơ chế bền vững: Phần mềm độc hại ghi cài đặt vào .claude/settings.json và .vscode/tasks.json, đảm bảo nó chạy khi nhà phát triển mở dự án trong các trình chỉnh sửa này.
- Điều khiển và chỉ huy (C2): Con sâu sử dụng một hợp đồng Ethereum để giải quyết endpoint C2 (iseekaigogo[.]com) và sử dụng các kho lưu trữ GitHub làm phương án dự phòng để tập trung dữ liệu bị đánh cắp.
Bối cảnh
Các cuộc tấn công chuỗi cung ứng xảy ra khi tin tặc xâm phạm một thành phần bên thứ ba đáng tin cậy, chẳng hạn như thư viện hoặc framework, để phân phối phần mềm độc hại cho người dùng của nó. Trong trường hợp này, vector tấn công là kho lưu trữ npm, trình quản lý gói mặc định cho các hệ sinh thái Node.js và TypeScript. Vì các nhà phát triển thường tin tưởng vào các gói từ những người bảo trì nổi tiếng, họ có thể không xem xét kỹ các bản cập nhật, cho phép mã độc dễ dàng đi vào môi trường sản xuất.
Con sâu Shai-Hulud đáng chú ý vì sự tập trung vào hạ tầng tác nhân AI. Khi ngày càng nhiều công ty tích hợp trợ lý lập trình AI vào quy trình làm việc, những công cụ này trở thành mục tiêu giá trị cao. Chúng thường có quyền truy cập rộng vào codebase, biến môi trường và API nội bộ. Bằng cách nhắm vào các tệp cấu hình của các công cụ như Claude Code và VS Code, tin tặc đảm bảo rằng phần mềm độc hại của chúng kích hoạt bất cứ khi nào nhà phát triển tương tác với dự án, tạo ra một chỗ đứng bền vững khó loại bỏ bằng cách gỡ bỏ gói tiêu chuẩn.
Tại sao điều này quan trọng
Đối với các nhóm vận hành phần mềm riêng, sự cố này nhấn mạnh sự mong manh của niềm tin vào các phụ thuộc mã nguồn mở. Ngay cả khi bạn kiểm tra gói ban đầu, một tài khoản người bảo trì hoặc pipeline xây dựng bị xâm phạm có thể chèn phần mềm độc hại bất cứ lúc nào. Việc con sâu tái xuất bản các gói khác dưới danh tính của nạn nhân có nghĩa là một sự xâm phạm duy nhất có thể làm hỏng uy tín và lây nhiễm toàn bộ danh mục công cụ của bạn. Sự di chuyển ngang này khiến việc ngăn chặn trở nên khó khăn hơn nhiều so với việc gỡ bỏ một phụ thuộc xấu đơn lẻ.
Việc nhắm mục tiêu cụ thể vào các trợ lý lập trình AI đặt ra một rủi ro mới cho quy trình phát triển. Những công cụ này thường hoạt động với đặc quyền nâng cao để đọc và viết mã, truy cập tệp cục bộ và tương tác với lệnh terminal. Nếu tin tặc giành quyền kiểm soát các tác nhân này, chúng có thể đánh cắp logic nhạy cảm, chèn backdoor vào mã nguồn hoặc đánh cắp bí mật được lưu trữ trong các tệp môi trường cục bộ. Đối với các nhóm tự host, điều này có nghĩa là máy phát triển cục bộ hiện là các ranh giới bảo mật quan trọng đòi hỏi mức độ bảo vệ tương đương với máy chủ sản xuất.
Hơn nữa, chiến thuật "hostage token" minh họa cho một chiến lược leo thang hung hăng. Nếu nạn nhân thu hồi một token GitHub bị đánh cắp, phần mềm độc hại sẽ phát hiện thay đổi này và thực thi một routine PowerShell phá hủy. Biện pháp chống pháp y này ngăn cản các bước khắc phục đơn giản như xoay vòng token và buộc các tổ chức phải thực hiện dọn dẹp toàn bộ hệ thống. Nó nhấn mạnh nhu cầu về các kế hoạch phản ứng sự cố toàn diện tính đến các mối đe dọa bền vững nhúng trong các công cụ phát triển.
Bạn có thể làm gì
- Kiểm tra phiên bản đã cài đặt: Ngay lập tức xác minh xem phiên bản 0.5.144 của gói tensorlake có tồn tại trong các phụ thuộc hoặc tệp khóa của dự án hay không.
- Xoay vòng tất cả thông tin đăng nhập: Nếu bạn đã cài đặt phiên bản độc hại, hãy xoay vòng tất cả token npm, token GitHub, khóa AWS, khóa SSH và bất kỳ bí mật nào khác có thể truy cập từ môi trường phát triển của bạn.
- Kiểm tra cấu hình AI: Kiểm tra các kho lưu trữ của bạn để tìm những thay đổi bất ngờ đối với các tệp .claude/settings.json và .vscode/tasks.json, và xóa mọi mục nhập đáng ngờ.
- Kiểm toán các gói đã xuất bản: Xem xét các gói npm khác mà bạn đã xuất bản để tìm các phiên bản trái phép hoặc thay đổi đối với hồ sơ nguồn gốc có thể chỉ ra sự lan truyền ngang.
- Giám sát pipeline CI/CD: Tìm kiếm các workflow GitHub Actions lạ hoặc các commit tham chiếu đến các quy trình Copilot/Dependabot giả mạo trong các kho lưu trữ của bạn.
- Quét tìm tính bền vững: Sử dụng các công cụ phát hiện điểm cuối để tìm binary HackBrowserData và giám sát các hoạt động PowerShell bất thường liên quan đến Invoke-Expression.
"Bất kỳ bí mật nào có thể truy cập bởi quá trình đang chạy đều có thể bị lộ, và tính bền vững có thể giữ lại quyền truy cập của kẻ tấn công sau khi phụ thuộc bị ảnh hưởng đã được gỡ bỏ." — Socket



