144 gói Mastra npm bị tấn công thông qua tài khoản cộng tác viên bị chiếm quyền

Có tới 144 gói npm liên quan đến namespace Mastra ("@mastra/*"), một framework mã nguồn mở phổ biến bằng JavaScript và TypeScript để xây dựng các ứng dụng trí tuệ nhân tạo (AI), đã bị xâm nhập trong một cuộc tấn công chuỗi cung ứng phần mềm có tên mã easy-day-js. Cuộc tấn công được thực hiện thông qua một tài khoản cộng tác viên bị chiếm quyền, phát tán phần mềm độc hại đánh cắp thông tin và tiền điện tử.
144 gói Mastra npm bị tấn công chuỗi cung ứng

Có tới 144 gói npm liên quan đến namespace Mastra ("@mastra/*"), một framework mã nguồn mở phổ biến bằng JavaScriptTypeScript để xây dựng các ứng dụng trí tuệ nhân tạo (AI), đã bị xâm nhập trong một cuộc tấn công chuỗi cung ứng phần mềm có tên mã easy-day-js, theo các phát hiện từ JFrog, SafeDep, SocketStepSecurity.

"Một tài khoản npm duy nhất (ehindero) đã phát hành hàng loạt hơn 140 gói độc hại trong phạm vi Mastra chỉ trong một khoảng thời gian ngắn vào ngày 17-06-2026," Socket cho biết.

Cơ chế tấn công thông qua thư viện trung gian

Bản thân các gói bị nhiễm không chứa mã độc trực tiếp. Thay vào đó, mã độc được đưa vào thông qua một thư viện bên thứ ba có tên là "easy-day-js" đã được thêm vào danh sách dependency của mỗi gói. Thư viện JavaScript này được xuất bản bởi một người dùng npm có tên "sergey2016" vào lúc 7:05 sáng UTC ngày 16-06-2026 dưới dạng một bản sao sạch, đầy đủ chức năng, và các thay đổi độc hại chỉ được đưa vào lúc 1:01 sáng UTC ngày 17-06-2026.

Gói "easy-day-js" kích hoạt một obfuscated payload được khởi chạy trong quá trình postinstall hook, đóng vai trò như một dropper hoặc loader cho payload giai đoạn hai được tải về từ hạ tầng do kẻ tấn công kiểm soát ("23.254.164[.]92") sau khi vô hiệu hóa xác thực chứng chỉ TLS.

Payload sau đó được thực thi như một tiến trình chạy ngầm tách biệt (detached background process), sau đó loader sẽ thực hiện các bước tự xóa mình để giảm thiểu dấu vết pháp chứng (forensic trail).

Phần mềm độc hại đánh cắp thông tin đa nền tảng

Giai đoạn cuối cùng là một information stealer đa nền tảng có thể thu thập lịch sử duyệt web, lưu trữ dữ liệu từ hơn 160 tiện ích mở rộng ví tiền điện tử trên trình duyệt, thiết lập sự hiện diện lâu dài (persistence) trên Windows, macOSLinux, đồng thời trích xuất thông tin thu thập được về máy chủ C2 ("23.254.164[.]123").

Trong phân tích của mình, SafeDep mô tả "easy-day-js" là một bản sao của thư viện ngày tháng "dayjs" dùng để tải xuống và chạy một remote access trojan đánh cắp tiền điện tử. Những kẻ tấn công đứng sau chiến dịch này được cho là đã chiếm đoạt tài khoản "ehindero", một cựu cộng tác viên hợp lệ của Mastra mà quyền truy cập chưa bao giờ bị thu hồi. npm sau đó đã gỡ bỏ các phiên bản độc hại khỏi các gói có cấu hình cao nhất và khôi phục tag mới nhất của chúng.

Phân tích từ StepSecurity
Nguồn ảnh: StepSecurity

Lỗ hổng trong quy trình xác thực nguồn gốc

SafeDep cho biết: "Mastra gửi các bản phát hành thực sự của mình từ CI thông qua luồng trusted publisher của npm và mỗi bản đều mang chứng thực nguồn gốc SLSA. Kẻ tấn công đã đẩy các phiên bản độc hại từ một personal token cá nhân và loại bỏ phần chứng thực nguồn gốc này."

"Cùng một dấu vết (fingerprint) lặp lại trên toàn bộ phạm vi. Mastra đã tạo ra chứng thực nguồn gốc trên các bản phát hành CI nhưng không bắt buộc sử dụng chúng, vì vậy một token npm tiêu chuẩn vẫn có thể xuất bản mà không cần chứng thực. Một quy trình cài đặt xác minh chữ ký (npm audit signatures hoặc một chính sách yêu cầu chứng thực) sẽ từ chối mọi gói trong đợt tấn công này."

Tác động và khuyến nghị

Bất kỳ máy trạm (workstation), CI runner hoặc môi trường build nào đã cài đặt các phiên bản bị ảnh hưởng đều nên được coi là có khả năng bị xâm nhập. Chuyên gia khuyến nghị nên quay lại phiên bản an toàn, thay đổi toàn bộ thông tin đăng nhập (rotate credentials) và kiểm tra các máy chủ để tìm bất kỳ dấu vết nào liên quan đến chiến dịch này.

Socket nhận định: "Các gói bị ảnh hưởng bao gồm @mastra/core, vốn nhận được hơn 918.000 lượt tải xuống hàng tuần trên npm, khiến chiến dịch này có phạm vi ảnh hưởng tiềm tàng rất lớn. Do payload thực thi trong quá trình cài đặt, các hệ thống có thể bị lộ lọt trước cả khi các nhà phát triển import hoặc sử dụng gói phần mềm."