Axios dính mã độc trên npm: Cảnh báo RAT ẩn trong dependency, dev cần kiểm tra ngay
Một sự cố bảo mật nghiêm trọng vừa được phát hiện liên quan đến thư viện axios trên npm, khi hai phiên bản [email protected] và [email protected] bị chèn mã độc, biến thành công cụ phát tán trojan điều khiển từ xa (RAT).
Theo phân tích từ stepsecurity, kẻ tấn công đã chiếm quyền tài khoản phát hành và thay đổi email sang địa chỉ ProtonMail ẩn danh. Hai phiên bản độc hại này đã âm thầm thêm dependency [email protected] vào dự án. Điểm nguy hiểm là package này không phục vụ chức năng thật, mà chỉ nhằm kích hoạt một script postinstall để tải và chạy mã độc ngay khi người dùng cài đặt.
Script này hoạt động như một dropper, kết nối đến máy chủ điều khiển (C2), sau đó tải payload giai đoạn hai, nhắm vào cả Windows, macOS và Linux. Đáng chú ý, sau khi cài xong, file package.json sẽ bị thay thế lại bằng phiên bản “sạch” nhằm qua mặt kiểm tra bảo mật.
Windows OS
Toàn bộ quá trình được chuẩn bị trước gần 18 tiếng nhằm tránh bị hệ thống bảo mật npm phát hiện (do package có “lịch sử” hợp lệ).
Trên macOS, mã độc sẽ được tải về thư mục /Library/Caches/com.apple.act.mond, giả dạng file hệ thống và chạy ngầm.
Trên Windows, mã độc sẽ chạy lệnh where powershell để xác định đường dẫn nhị phân, sau đó sao chép chính nó vào thư mục %PROGRAMDATA%\wt.exe, giả dạng file thực thi Windows Terminal và chạy script ẩn.
Tiếp đó, mã độc sẽ sử dụng VBScript để tạo một cửa sổ cmd.exe hoàn toàn ẩn, lưu script trojan PowerShell vào đường dẫn %TEMP%\6202033.ps1.
Đối với hệ thống Linux, mã độc sử dụng execSync của Node.js để trực tiếp thực thi script /tmp/ld.py, sau đó chạy nền bằng nohup.
Sau khi hoàn tất tấn công, mã độc sẽ xóa các file setup.js, package.json và thay thế bằng phiên bản sạch, khiến lập trình viên kiểm tra thư mục node_modules cũng không phát hiện được bất thường.
Lập trình viên có thể sử dụng lệnh npm list axios để kiểm tra phiên bản Axios, và dùng ls node_modules/plain-crypto-js để xác định xem có bị chèn dependency độc hại hay không.
Nếu thiết bị đã bị nhiễm, lập trình viên nên nhanh chóng cài lại hệ điều hành, thay đổi npm token, khóa truy cập dịch vụ đám mây, SSH key và kiểm tra toàn bộ pipeline CI/CD.
Khuyến nghị:
Một sự cố bảo mật nghiêm trọng vừa được phát hiện liên quan đến thư viện axios trên npm, khi hai phiên bản [email protected] và [email protected] bị chèn mã độc, biến thành công cụ phát tán trojan điều khiển từ xa (RAT).
Script này hoạt động như một dropper, kết nối đến máy chủ điều khiển (C2), sau đó tải payload giai đoạn hai, nhắm vào cả Windows, macOS và Linux. Đáng chú ý, sau khi cài xong, file package.json sẽ bị thay thế lại bằng phiên bản “sạch” nhằm qua mặt kiểm tra bảo mật.
Windows OS
Timeline tấn công (rất có chủ đích)
- 30/03/2026 (05:57 UTC): phát hành bản “mồi” [email protected] (không độc hại) để tạo lịch sử tin cậy
- 30/03/2026 (23:59 UTC): tung bản 4.2.1 chứa mã độc
- 31/03/2026 (00:21 UTC): phát hành [email protected] đã bị chèn mã
- 31/03/2026 (01:00 UTC): tiếp tục phát hành [email protected] để phủ cả nhánh cũ
Toàn bộ quá trình được chuẩn bị trước gần 18 tiếng nhằm tránh bị hệ thống bảo mật npm phát hiện (do package có “lịch sử” hợp lệ).
Trên macOS, mã độc sẽ được tải về thư mục /Library/Caches/com.apple.act.mond, giả dạng file hệ thống và chạy ngầm.
Trên Windows, mã độc sẽ chạy lệnh where powershell để xác định đường dẫn nhị phân, sau đó sao chép chính nó vào thư mục %PROGRAMDATA%\wt.exe, giả dạng file thực thi Windows Terminal và chạy script ẩn.
Tiếp đó, mã độc sẽ sử dụng VBScript để tạo một cửa sổ cmd.exe hoàn toàn ẩn, lưu script trojan PowerShell vào đường dẫn %TEMP%\6202033.ps1.
Đối với hệ thống Linux, mã độc sử dụng execSync của Node.js để trực tiếp thực thi script /tmp/ld.py, sau đó chạy nền bằng nohup.
Sau khi hoàn tất tấn công, mã độc sẽ xóa các file setup.js, package.json và thay thế bằng phiên bản sạch, khiến lập trình viên kiểm tra thư mục node_modules cũng không phát hiện được bất thường.
Mức độ nguy hiểm
Nếu hệ thống của bạn từng cài một trong hai phiên bản axios trên, khả năng cao đã bị xâm nhập. Đây là dạng supply chain attack cực kỳ nguy hiểm vì đánh trực tiếp vào thư viện phổ biến, ảnh hưởng diện rộng.Lập trình viên có thể sử dụng lệnh npm list axios để kiểm tra phiên bản Axios, và dùng ls node_modules/plain-crypto-js để xác định xem có bị chèn dependency độc hại hay không.
Nếu thiết bị đã bị nhiễm, lập trình viên nên nhanh chóng cài lại hệ điều hành, thay đổi npm token, khóa truy cập dịch vụ đám mây, SSH key và kiểm tra toàn bộ pipeline CI/CD.
Khuyến nghị:
- Kiểm tra ngay version axios đang dùng
- Gỡ bỏ phiên bản nghi vấn
- Quét malware toàn hệ thống
- Đổi toàn bộ credentials nếu cần
BÀI MỚI ĐANG THẢO LUẬN