Bốn gói npm liên quan đến SAP Cloud Application Programming Model đã bị chèn mã độc, có khả năng đánh cắp ví crypto, thông tin đăng nhập đám mây và khóa SSH của nhà phát triển.
Theo một báo cáo từ Socket, các phiên bản bị ảnh hưởng gồm [email protected], @cap-js/[email protected], @cap-js/[email protected] và @cap-js/[email protected]. Tổng cộng, nhóm gói này nhận khoảng 572.000 lượt tải mỗi tuần từ cộng đồng nhà phát triển SAP.
- Mã độc được chèn vào các gói npm thật, không phải chỉ là các gói giả mạo tên gần giống.
- Payload có thể thu thập nhiều loại thông tin nhạy cảm trên máy nhà phát triển và trong môi trường CI/CD.
- Vụ việc nối dài xu hướng tấn công chuỗi cung ứng nhằm vào nhà phát triển crypto và hạ tầng phần mềm.
Mã độc được cài vào các gói thật của hệ sinh thái SAP
Các nhà nghiên cứu an ninh cho biết gói bị sửa đã tự cài một script để tải và chạy một binary Bun từ GitHub, sau đó thực thi một payload JavaScript bị làm rối có dung lượng 11,7 MB. Phần mã nguồn gốc của SAP vẫn còn trong gói, nhưng xuất hiện thêm ba tệp mới là package.json đã bị chỉnh sửa, setup.mjs và execution.js.
Các tệp mới này có dấu thời gian muộn hơn vài giờ so với mã thật, cho thấy tarball đã bị thay đổi sau khi được lấy từ nguồn hợp lệ. Socket cho rằng đây là dấu hiệu mạnh của một chiến dịch chèn mã tự động và có phối hợp, vì loader script giống hệt nhau ở cả bốn gói dù chúng nằm trong hai không gian tên khác nhau.
Cách mã độc hoạt động trên máy nhà phát triển và trong hạ tầng CI/CD
Khi chạy, payload kiểm tra xem hệ thống có đặt ngôn ngữ Nga hay không; nếu có, nó dừng lại. Sau đó, mã độc tách nhánh theo hai môi trường: hạ tầng CI/CD hoặc máy làm việc của nhà phát triển. Để nhận diện CI/CD, nó kiểm tra 25 biến nền tảng, gồm GitHub Actions, CircleCI và Jenkins.
Trên máy nhà phát triển, mã độc tìm hơn 80 loại tệp thông tin xác thực khác nhau. Danh sách này gồm khóa riêng SSH, thông tin AWS và Azure, cấu hình Kubernetes, token của npm và Docker, tệp môi trường, ví crypto trên 11 nền tảng, cùng các tệp cấu hình cho công cụ AI như Claude và thiết lập Kiro MCP.
Payload này còn có hai lớp mã hóa. Một hàm tên __decodeScrambled() dùng PBKDF2 với 200.000 vòng lặp SHA-256 và một salt có tên “ctf-scramble-v2” để tạo khóa giải mã. Theo Socket, tên hàm, thuật toán, salt và số vòng lặp trùng với các payload trước đây của Checkmarx và Bitwarden, cho thấy có thể cùng một bộ công cụ đã được dùng trong nhiều chiến dịch.
Vì sao vụ việc này được theo dõi sát
Socket đang theo dõi hoạt động này dưới tên “TeamPCP” và lập trang riêng cho chiến dịch mà họ gọi là “mini-shai-hulud”. Điểm khác của vụ tấn công lần này là kẻ tấn công không chỉ tạo các gói giả mạo có tên gần giống gói thật, mà đã chèn mã vào các gói hợp lệ, vốn nằm trong namespace của SAP và được dùng rộng rãi.
Với các đội ngũ dùng SAP CAP hoặc quy trình triển khai dựa trên MTA, rủi ro nằm ở chỗ gói độc hại có thể đã đi vào chuỗi xây dựng phần mềm. Dữ liệu hiện có chưa cho thấy mức độ lan rộng cụ thể ngoài các phiên bản bị nêu, nhưng quy mô tải xuống cho thấy phạm vi ảnh hưởng tiềm tàng không nhỏ.
Liên hệ với chuỗi tấn công nhắm vào nhà phát triển crypto
Đây không phải lần đầu các gói phần mềm bị lợi dụng để lấy cắp thông tin liên quan đến tài sản số. Trước đó, các nhà nghiên cứu đã phát hiện năm gói npm typosquat trong tháng 3/2026, dùng để lấy khóa riêng của nhà phát triển Solana và Ethereum rồi gửi dữ liệu đến một bot Telegram.
Sau đó một tháng, ReversingLabs phát hiện chiến dịch PromptMink, trong đó một gói độc hại có tên @validate-sdk/v2 được đưa vào một dự án giao dịch crypto mã nguồn mở thông qua một commit do AI tạo ra. Theo phần tường thuật về phát hiện này, chiến dịch đó bị gắn với nhóm Famous Chollima và nhắm vào ví crypto cùng các bí mật hệ thống.
Những gì nhóm phát triển nên kiểm tra ngay
Nhà nghiên cứu khuyến nghị các đội đang dùng SAP CAP hoặc các pipeline triển khai dựa trên MTA nên kiểm tra ngay lockfile để tìm các phiên bản bị ảnh hưởng. Những ai đã cài các gói này trong giai đoạn phơi nhiễm nên thay đổi các thông tin xác thực và token có thể đã xuất hiện trong môi trường build, đồng thời rà soát log CI/CD để tìm các yêu cầu mạng bất thường hoặc việc thực thi binary không mong muốn.
Theo các nhà nghiên cứu, ít nhất một phiên bản bị ảnh hưởng là @cap-js/[email protected] dường như đã bị gỡ khỏi npm. Hiện chưa rõ toàn bộ phạm vi thiệt hại cũng như số lượng hệ thống đã bị ảnh hưởng thực tế.
Tổng kết
Vụ việc cho thấy rủi ro chuỗi cung ứng phần mềm tiếp tục dịch chuyển từ các gói giả mạo sang cả những gói hợp lệ, được dùng rộng rãi trong hệ sinh thái doanh nghiệp. Với các gói liên quan đến SAP CAP, mối quan tâm không chỉ nằm ở mã nguồn bị chèn thêm, mà còn ở khả năng thông tin đăng nhập, khóa SSH và ví crypto bị thu thập từ môi trường phát triển và hạ tầng triển khai.



