Quay lại danh sách

Gói npm Của jscrambler Bị Cài Mã Độc Trong Ba Giờ — Và Infostealer Này Được Thiết Kế Để Đánh Cắp Cả Key AI Agent Của Bạn

Đăng ngày 12 thg 7, 20265 phút đọc
Developer ToolsMCPAI Agents

Ba Giờ, Năm Bản Release, Một Tài Khoản Bị Chiếm

Ngày 11/7/2026, jscrambler 8.14.0 xuất hiện trên npm mang theo một preinstall hook độc hại, tự động thả và chạy một binary native theo từng nền tảng — bản riêng cho Windows, macOS và Linux — ngay khi package được cài đặt. Bản release này được publish qua chính tài khoản maintainer hợp pháp của dự án chứ không phải qua typosquat hay fork giả mạo, cho thấy nhiều khả năng là tài khoản npm hoặc pipeline CI/build bị chiếm quyền, chứ không phải một chiêu lừa khiến developer chọn nhầm package. Trong ba giờ tiếp theo, kẻ tấn công đã publish thêm bốn bản độc hại nữa — 8.16.0, 8.17.0, 8.18.0 và 8.20.0 — xen kẽ với các bản sạch mà nhóm maintainer dường như đã đẩy lên như một nỗ lực khắc phục theo thời gian thực.

Bị Phát Hiện Bởi Công Cụ Phân Tích Release Dùng AI Trước Khi Có Advisory Từ Con Người

Công cụ phân tích release tự động của StepSecurity gắn cờ 8.14.0 với điểm nghi ngờ 0 — mức tối đa — chỉ vài khoảnh khắc sau khi phiên bản này được publish lên registry. Phân tích tiếp theo của Socket sau đó xác nhận đúng những gì cờ tự động đã bắt được: binary bị thả ra là một infostealer viết bằng Rust, được biên dịch riêng cho cả ba hệ điều hành chính. Việc phát hiện tự động này đi trước con đường công bố thông thường — một nhà nghiên cứu nộp advisory trên GitHub hay CVE vài ngày sau — và đó là hình ảnh báo trước cách việc giám sát supply chain cho các package nằm trong pipeline build có AI hỗ trợ đang bắt đầu vận hành.

Không Cần Import, Không Cần Gọi CLI — Chỉ Cần Cài Đặt Là Đủ

Mã độc được kích hoạt từ preinstall hook, trước khi bất kỳ code ứng dụng, build script hay câu lệnh import nào chạy. Điều đó nghĩa là developer hay CI job không cần gọi API obfuscation hay chạy CLI của jscrambler để bị xâm phạm — chỉ cần `npm install` với 8.14.0 (hoặc bất kỳ bản nào trong bốn bản tiếp theo) được pin hoặc resolve là đủ. Binary Rust sau đó quét máy để tìm secret và gửi chúng về một drop server qua TLS, mang lại cho kẻ tấn công một bộ credential đầy đủ mà gần như không cần bất kỳ tương tác nào từ nạn nhân.

Dòng Hướng Dẫn Khắc Phục Nhắm Thẳng Vào Các Đội Kỹ Thuật AI

Lời khuyên tiêu chuẩn sau một vụ supply chain đánh cắp credential thường là xoay vòng cloud key và thu hồi Git token. Hướng dẫn của sự cố lần này đi xa hơn: xoay vòng cả API key của AI-tool và MCP, song song với token npm và GitHub, phiên đăng nhập trình duyệt, tài khoản Discord, Slack và vault Bitwarden. Đây là một thừa nhận trực tiếp rằng máy của developer và CI runner giờ đây thường xuyên lưu credential sống của Anthropic, OpenAI và MCP server ở cùng những nơi lưu deploy key của cloud — và một lượt quét infostealer thông thường gom hết tất cả trong một lần, không phân biệt giữa mật khẩu database và token bảo vệ một MCP tool server nội bộ.

60.000 Lượt Tải Mỗi Tháng, Bán Kính Ảnh Hưởng Rộng Nhất Nằm Ở CI Runner

jscrambler là công cụ obfuscation và bảo vệ ứng dụng, nghĩa là môi trường quen thuộc của nó không phải laptop của một developer đơn lẻ, mà là một bước trong pipeline CI vốn đã nắm giữ credential deploy, quyền truy cập secrets-manager và signing key cho các bản release production. Một package kích hoạt malware ngay khi cài đặt thay vì khi sử dụng biến mọi CI runner đã resolve một trong năm bản lỗi thành một điểm rò rỉ credential tiềm tàng, kể cả khi không có con người nào từng chạy công cụ này theo cách thủ công.

Những Việc Cần Kiểm Tra Ngay Trong Tuần Này

Chuyển sang 8.15.0 hoặc pin về 8.13.0 — bản sạch xác nhận cuối cùng trước sự cố — và dọn sạch 8.14.0, 8.16.0, 8.17.0, 8.18.0 và 8.20.0 khỏi lockfile, cache node_modules và mọi lớp cache CI có thể đã resolve các bản này. Nếu bất kỳ phiên bản nào trong số đó từng chạy ở đâu đó — laptop hay CI runner — hãy coi mọi secret mà máy đó có thể chạm tới là đã bị đánh cắp, không chỉ là bị lộ: xoay vòng cloud key, token npm và GitHub, API key của AI-tool và MCP, thu hồi phiên Discord, Slack, trình duyệt và Bitwarden, đồng thời chuyển mọi crypto ra khỏi ví từng có mặt trên máy đó.

Kết Luận

Đây là sự cố supply chain thứ ba nhắm vào công cụ phát triển trong sáu tuần, sau vụ đầu độc Claude Code GitHub Action và lỗ hổng shell injection GuardFall — và điểm chung giữa chúng không nằm ở vector tấn công, mà ở mục tiêu. Payload infostealer không còn dừng lại ở credential cloud và Git; checklist khắc phục giờ đây liệt kê thẳng cả key bảo vệ coding agent và MCP server, bởi những token đó nằm trên cùng ổ đĩa và mở khóa cùng hệ thống production. Các đội vẫn xem credential của AI-tool và MCP là một hạng mục riêng, ưu tiên thấp hơn so với cloud secret giờ có một lý do cụ thể để gộp chúng vào cùng một quy trình xoay vòng và phát hiện — vì kẻ tấn công đã làm điều đó rồi.