Minh họa kỹ thuật trừu tượng trên nền xanh navy thẫm: một khối lập phương gói nhỏ theo phong cách vector phẳng ở giữa bên trái, với một đường mảnh màu hổ phách uốn cong xuống thành hình ảnh thu gọn của một trạm làm việc lập trình viên; một chùm sợi mảnh màu xanh cyan và xanh thép tỏa sang phải từ trạm làm việc hướng tới nhiều nút tròn nhỏ trên một lưới thưa, hai trong số đó uốn cong ngược lên khối lập phương gói, và một nút ở phía xa bên phải nằm đơn độc. Biểu trưng OrcaRouter được ghép vào góc dưới bên phải.
AI Safety Incidents

SDK npm của Tensorlake đã bị đầu độc để đánh cắp thông tin xác thực của AI-Agent — và để xóa sạch thư mục home của bạn nếu bạn thu hồi token

Tác giả

Alistair Wren

Ngày đăng

Mô hình mới nhất · 20Xem tất cả mô hình →
Benchmark: Artificial Analysis · cập nhật hằng ngày
Quay lại tất cả bài viết

Vào ngày 8 tháng 10 năm 2026, một bản phát hành bị đầu độc của tensorlake — SDK npm cho nền tảng của Tensorlake, vốn chạy mã do LLM tạo ra không đáng tin cậy bên trong các hộp cát biệt lập — đã lọt vào npm registry. Phiên bản 0.5.144 đã được phát hành lúc 01:12:07 UTC; các nhà nghiên cứu của Socket cho biết họ đã gắn cờ nó khoảng mười một phút sau đó. Đây không phải là một bản phát hành được uỷ quyền. Tensorlake tuyên bố rằng kẻ tấn công đã đẩy mã trực tiếp vào kho GitHub của công ty và phát hành nó thông qua quy trình phát hành của chính dự án, nên gói này mang npm provenance hợp lệ — chứng thực có chữ ký cho thấy nó được xây dựng ở đâu, đối với mã nguồn vốn đã bị đầu độc. Công ty cho biết phiên bản này đã hoạt động trong khoảng 1 giờ 40 phút, từ 01:12 đến 02:54 UTC, trước khi npm gỡ bỏ nó.

Payload không cần import và không cần agent đang chạy. Một preinstall hook trong package manifest đã chạy node lib/setup.mjs, một loader bị obfuscate đã thả runtime Bun xuống máy và dùng nó để chạy lib/Math_Symbol.js, một trình đánh cắp thông tin xác thực 856.501 byte và worm tự lan truyền. Bất kỳ ai chạy bản cài đặt thông thường của đúng phiên bản đó đều đã thực thi nó. Bởi vì nó là latest tag của package, phiên bản đó là phiên bản mà cài đặt mặc định trỏ tới trong lúc nó còn hoạt động.

Điều khiến bản ghi này đáng lưu giữ không phải là kích thước payload — họ Shai-Hulud đã từng được ghi nhận trước đây. Mà là danh sách mục tiêu. Cùng với token npm và GitHub, thông tin xác thực AWS, bí mật Kubernetes và Vault, khóa SSH, các tệp .env, mật khẩu trình duyệt và ví tiền mã hóa, bản dựng này đặc biệt thu thập cấu hình công cụ phát triển AI và các tệp MCP — những thứ gắn với Claude Code, Cursor, Kiro, Windsurf và Zed, theo Socket. Nó cũng tự ghi các tệp .claude/settings.json và .vscode/tasks.json vào các kho chứa mà nó có thể tiếp cận, để mã đó sẽ chạy lại vào lần tới khi một lập trình viên mở dự án đó trong Claude Code hoặc VS Code. Đây là một cuộc tấn công chuỗi cung ứng nhắm thẳng vào những cỗ máy mà người ta dùng để xây dựng agent.

Bản phát hành đã lọt ra khỏi tài khoản của một người bảo trì như thế nào

Socket, SafeDep và Aikido đều đã công bố phân tích riêng của mình vào ngày 8 tháng 10, và các tường thuật của họ về cơ chế này nhất quán với nhau. Mức độ tin cậy của kho lưu trữ dành cho bản ghi này là A, bản ghi này không bị đánh dấu là đang tranh chấp, và không có gì được tìm thấy trong các nguồn mâu thuẫn với bất kỳ phân tích nào của họ.

Bài viết của SafeDep lần theo tám commit đến nhánh main của kho lưu trữ trong khoảng 01:20 đến 03:57 UTC ngày 7 tháng 10, được gán cho một tài khoản quản trị viên kho lưu trữ và được thực hiện thông qua giao diện web GitHub. Commit mà bản lưu trữ dẫn chiếu là commit độc hại đầu tiên là 41b38f0, một bản sửa đổi gồm bốn tệp từ 03:44:48 UTC ngày 7 tháng 10 với thông điệp "Add files via upload" và mang chữ ký verified của GitHub — GitHub ký các commit được thực hiện trong trình chỉnh sửa web của chính mình, nên "verified" ghi nhận bề mặt chỉnh sửa, không phải con người. Commit đó không đụng đến tệp nào ngoài typescript/lib/Math_Symbol.js và typescript/lib/setup.mjs, theo GitHub API: payload, và không gì khác.

SafeDep đưa ra một cách diễn giải về hành vi của kẻ vận hành, được ghi nhãn là suy luận của chính mình: lần chỉnh sửa đầu tiên đối với hook preinstall đã làm hỏng cú pháp JSON của tệp và một commit sửa lỗi diễn ra sau đó mười chín phút, điều mà họ mô tả là phù hợp với việc một người chỉnh sửa tệp trong trình duyệt thay vì một pipeline được script hóa. Không có nội dung nào do Socket, SafeDep, Aikido, StepSecurity hoặc Tensorlake công bố nêu tên phương thức mà tài khoản của người bảo trì đã bị chiếm đoạt.

Kẻ tấn công không cần token npm. SafeDep báo cáo rằng tài khoản đã khởi động thủ công quy trình publish_npm.yaml của dự án vào ngày 8 tháng 10 lúc 00:08 UTC; nhật ký build cho thấy các tệp payload nằm bên trong tarball đã phát hành. Bản phát hành đã dùng npm trusted publishing, và các gói anh em tensorlake-native-* được phát hành từ cùng lần chạy đó mang provenance SLSA hợp lệ — provenance thực sự hợp lệ cho một bản build từ mã nguồn đã bị đầu độc. Bản phát hành đã hoàn tất mười hai phút sau khi quy trình bắt đầu.

Kho lưu trữ ghi lại rằng kho chứa đã bị xâm phạm trong khoảng 20 giờ trước khi lệnh publish được kích hoạt — khoảng thời gian mà dòng thời gian bên dưới trình bày theo từng commit một — điều này khớp với tuyên bố của chính Tensorlake rằng kẻ tấn công đã xuất bản "thông qua chính quy trình phát hành của chúng tôi".

Payload đã làm gì sau khi nó chạy

A screenshot of a card titled 'A credential stealer with an AI-tooling list', kicked 'tensorlake@0.5.144 · what the payload collected', subtitled 'Per Socket, SafeDep and Tensorlake's advisory — grouped by what each collector reached for'. Three columns of paired labels sit side by side. 'Publishing and source control' lists npm tokens from .npmrc, the token API and the OIDC exchange; GitHub tokens with a repository and workflow permission check; GitHub Actions secrets read from Runner.Worker memory; and cryptocurrency browser wallets across 14 extensions. 'AI agent tooling' lists ~/.claude.json for Claude Code settings; ~/.kiro/settings/mcp.json for Kiro MCP config; .cursor, Windsurf and Zed config and MCP files; and .claude/settings.json and .vscode/tasks.json written back into reachable repositories. 'Cloud, cluster and endpoint' lists AWS via STS, SSM Parameter Store and Secrets Manager; Kubernetes service-account tokens and kubeconfigs; HashiCorp Vault at 127.0.0.1:8200; SSH and GPG keys, .env files and Docker and CLI files; the Wallets row, wallet.dat, Exodus, Electrum and MetaMask; and saved passwords via a downloaded HackBrowserData binary. A footer reads 'Collector list per Socket's initial assessment, SafeDep's decoded payload analysis and the Tensorlake advisory (GHSA-8g63-53c9-65j2). Socket flags AI development tooling for Claude Code, Cursor, Kiro, Windsurf and Zed by name.'

Đánh giá của Socket xác định việc thu thập thông tin trên các tệp cục bộ, môi trường CI, các nguồn Kubernetes và Vault, cùng với việc rò rỉ dữ liệu, duy trì hiện diện và thực thi mã được cung cấp từ xa. SafeDep đã tái tạo tải trọng đã giải mã: lib/setup.mjs tải Bun 1.3.13 từ bản phát hành chính thức trên GitHub và sử dụng nó để chạy worm, và nó thoát trên các trình chạy CI — mục tiêu là máy của nhà phát triển, không phải tác nhân build. SafeDep cũng phát hiện tải trọng mang một bản sao nguyên văn của chính trình tải đó, mà nó cấy vào các gói và kho lưu trữ khác.

Payload chạy ba lớp obfuscation, mà SafeDep đã giải mã mà không cần thực thi mẫu: một mảng chuỗi obfuscator, một mật mã tùy chỉnh sử dụng salt svksjrhjkcejg — giống hệt với cái được báo cáo trong vụ xâm phạm keyv trước đó — và AES-256-GCM trên mười một tệp nhúng, bao gồm script, hook và hai khóa công khai RSA. Dòng đầu tiên của nó mang thẻ build WORMTAG='tensrlake', bị viết sai chính tả, đó là cách SafeDep phân biệt bản build này với một đợt tái lây nhiễm đang diễn ra.

Ngoài cấu hình công cụ AI, danh sách thu thập rất rộng và cụ thể: ~/.claude.json và ~/.kiro/settings/mcp.json cho cài đặt agent; khóa SSH, tệp CLI đám mây, .npmrc, .env, tệp Docker và Kubernetes, và lịch sử shell; wallet.dat cùng dữ liệu Exodus, Electrum và Ledger Live và các tiện ích ví trên trình duyệt như MetaMask và Phantom; AWS STS, SSM Parameter Store và Secrets Manager; bí mật GitHub Actions được đọc từ bộ nhớ tiến trình Runner.Worker; và token tài khoản dịch vụ Kubernetes cùng token Vault. Nó đã tải một tệp nhị phân theo từng nền tảng từ iseekaigogo[.]com/hbd/<platform> và chạy nó với các đối số "dump -b all -c password -f json" — những đối số khớp với công cụ HackBrowserData, mặc dù SafeDep lưu ý rằng bản thân tệp nhị phân không được thu hồi và gọi việc nhận dạng đó là suy luận. SafeDep nói thêm rằng con sâu này sẽ thoát trên các locale tiếng Nga.

A screenshot of a card titled 'Persistence, resolution, and the wipe trigger', kicked 'tensorlake@0.5.144 · staying power', subtitled 'The release was removed in under two hours; the implant it installed was built to outlive that.' Three columns sit side by side. 'Persistence: gh-token-monitor' lists a systemd user service on Linux, a LaunchAgent com.user.gh-token-monitor on macOS, a scheduled task with a PowerShell monitor on Windows, and files left behind in ~/.local/bin, ~/.config and %LOCALAPPDATA%. 'Endpoint resolution order' lists, in numbered order, the primary endpoint iseekaigogo[.]com:443/router; an Ethereum contract 0xb614155Fd88...1Df091B9; the public RPC endpoints that contract is read through, given as ~30 by Socket and 35 by SafeDep; signed GitHub commits found by the string thebeautifulmarchoftime; and public dead-drop repositories described as 'Shai-Hulud: Here We Go Again'. 'The dead-man switch' lists a poll of api.github.com/user every 60s, for 24 hours, firing on a 40x response to that token, with the effect rm -rf ~/ (advisory: home dir), armed only if the account has no orgs, and the order that matters: remove monitor, then revoke. A footer reads 'Per Socket's blog and SafeDep's analysis, with the C2 endpoint, the contract and the gh-token-monitor service confirmed in Tensorlake's advisory. Socket and SafeDep give different counts of the public RPC endpoints the contract is read through.'

Việc duy trì truy cập là có chủ đích. Socket đã viết về payload: "Sự kết hợp đó mở rộng rủi ro vượt ra ngoài một API key bị đánh cắp đơn lẻ," và nói thêm rằng "cơ chế duy trì truy cập có thể giữ quyền truy cập của kẻ tấn công sau khi gỡ bỏ gói phụ thuộc bị ảnh hưởng." SafeDep báo cáo rằng worm thực hiện commit các tệp hook của Claude Code và VS Code dưới danh nghĩa tác giả git claude, và cài cắm một workflow "Run Copilot" để kết xuất toàn bộ bí mật của kho lưu trữ rồi xóa lần chạy và nhánh. Khuyến cáo của Tensorlake hướng dẫn các nhà phát triển đang kiểm tra nhật ký tìm một nhánh có tên dependabot/github_actions/format/setup-formatter và các commit được tạo dưới cùng danh tính đó.

Sự lây lan vận hành dựa trên các token bị đánh cắp chứ không phải dựa trên một lỗ hổng thứ hai. Socket cho biết worm này liệt kê các gói gắn với danh tính xuất bản của nạn nhân, xây dựng chứng thực nguồn gốc Sigstore, rồi phát hành lại các phiên bản đã bị đầu độc. SafeDep bổ sung chi tiết rằng bên trong CI, nó thêm một phụ thuộc git và ký đầu ra của mình bằng Fulcio và Rekor — vì vậy chứng thực nguồn gốc trên gói mà nó phát hành tiếp theo cũng hợp lệ như chứng thực nguồn gốc trên 0.5.144 trước đây.

Hai mươi giờ trước khi xuất bản

Khoảng cách giữa commit gian lận đầu tiên và bản phát hành là phần dòng thời gian giải thích cách một gói bị đầu độc lại mang được nguồn gốc hợp lệ. Tất cả thời gian đều theo UTC; thời gian commit là của SafeDep và GitHub API, còn thời gian phát hành, gỡ bỏ và khuyến cáo là của Tensorlake.

A screenshot of a card titled 'Compromised source in the repo, then one manual publish', kicked 'tensorlake@0.5.144 · the ~20-hour window', subtitled 'All times UTC. Commit times per SafeDep's timeline and the GitHub API; publish and removal times per the Tensorlake advisory.' Three columns sit side by side. '7 October 2026 — source, main branch' lists 01:20 setup.mjs and Math_Symbol.js added; 01:24 the preinstall script added; 01:43 package.json JSON repaired; 02:13 to 03:44 four loader and payload revisions; 03:44 commit 41b38f0, the payload commit; 03:57 the version set to 0.5.144. '8 October 2026 — release and removal' lists 00:08 publish_npm.yaml started by hand; 01:12:07 version 0.5.144 published to npm; 01:22:02 issue #1014 opened by StepSecurity; 01:23:10 flagged by Socket, about eleven minutes in; 02:54 the version removed, after roughly 1h 40m live; 20:24 version 0.5.145 published next. '9 October 2026 — disclosure closed' lists advisory GHSA-8g63-53c9-65j2; pull request #1016, source reverted and 0.5.145 cut; issue #1014 closed as completed; 0.5.143 as the last version stated unaffected; and no usage seen, per Tensorlake's user-agent telemetry. A footer reads 'The ~20-hour gap between the first rogue commit and the publish is SafeDep's commit timeline, and matches the archive's own upstream record.'

Đọc xuyên suốt: các tệp payload đã vào nhánh chính của kho chứa vào ngày 7 tháng 10, phiên bản được đặt thành 0.5.144 lúc 03:57 sáng hôm đó, và không có gì được phát hành cho đến khi một tài khoản tự tay khởi động quy trình phát hành vào 00:08 ngày hôm sau. Mã nguồn đã bị xâm phạm nằm trong nhánh khoảng hai mươi giờ trước khi pipeline của chính dự án build nó. Đó là toàn bộ cuộc tấn công vào đường phát hành — không có chứng thực giả mạo, không có tarball được phát hành lại. Nguồn gốc là chính xác về một bản build của đoạn mã lẽ ra không bao giờ được nằm trong nhánh.

Công tắc người chết

Phần của sự cố này không có tiền lệ trong các vụ xâm phạm npm trước đây là những gì xảy ra sau khi nạn nhân phản ứng đúng cách. Theo báo cáo của SafeDep, nếu token GitHub bị đánh cắp thuộc về một tài khoản không có tổ chức nào, thì con sâu sẽ cài đặt gh-token-monitor: một dịch vụ thăm dò api.github.com/user bằng token bị đánh cắp đó mỗi 60 giây, trong 24 giờ. Khi GitHub trả về mã 40x — như cách nó làm ngay khi token bị thu hồi — trình giám sát sẽ chạy một handler do kẻ tấn công cung cấp và xóa thư mục home của người dùng.

Socket mô tả cùng thành phần đó là sử dụng một trình giám sát PowerShell tồn tại qua một ONLOGON tác vụ đã lên lịch, thực thi một trình xử lý do kẻ tấn công cung cấp thông qua Invoke-Expression, và lưu ý rằng mã này mang chuỗi ký tự nguyên văn "IfYouRevokeThisTokenItWillWipeTheComputerOfTheOwner", đã thấy trong các làn sóng Shai-Hulud trước đó. SafeDep gọi trình xử lý đó là rm -rf ~/. Cách diễn đạt của Socket nói rõ rằng điều này kích hoạt bất kể việc thu hồi diễn ra ở đâu; trình giám sát là cục bộ, còn việc thu hồi thì không. Cả bốn nguồn — Socket, SafeDep, StepSecurity và bản khuyến cáo của chính Tensorlake — đưa ra cùng thứ tự thao tác: gỡ bỏ trình giám sát trước, rồi mới thu hồi.

Điều gì đã được xác lập, và điều gì chỉ là suy luận

Hồ sơ lưu trữ ghi nhận không có tổn hại nào được xác nhận cho mục này, và các nguồn tài liệu ủng hộ điều đó chứ không chỉ đơn thuần là không phản bác lại nó.

• Tensorlake tuyên bố không có việc sử dụng phiên bản này. Khuyến cáo của họ cho biết công ty giám sát việc sử dụng SDK thông qua các tiêu đề user-agent và "chưa thấy bất kỳ việc sử dụng phiên bản này kể từ khi nó được phát hành". Đó là tuyên bố của nhà cung cấp về dữ liệu đo từ xa của chính họ, không phải là một con số đã được kiểm toán.

• Con số tải xuống không phải là số ca nhiễm. Socket báo cáo gói này ở mức khoảng 12.000 lượt tải xuống hằng tuần và lưu ý rằng điều này mô tả mức sử dụng tổng thể của gói, không phải lượt tải xuống của phiên bản độc hại; SafeDep dẫn khoảng 106.000 lượt tải xuống hằng tháng đối với cùng gói đó. Cả hai đều không phải bằng chứng rằng 0.5.144 đã chạy ở bất kỳ đâu. Cửa sổ phát hành bị gắn cờ của Socket và cửa sổ hai giờ của Tensorlake đều nhất quán với một phiên bản đã bị gỡ bỏ trước khi nó lây lan.

• Các lỗi của chính payload có thể đã hạn chế nó.SafeDep đã tìm ra hai lỗi: đường lan truyền npm cần ./dist/Math_Symbol.js trên đĩa và sẽ dừng lại nếu không có nó, còn trình tải được cài cắm tìm ai_init.js trong khi worm ghi math_init.js. SafeDep gọi những phát hiện này là các hạn chế đối với khả năng lây lan, và bài viết coi chúng như cách đọc mã của một phân tích, chứ không phải là sự bảo đảm rằng không có gì lan truyền.

• Chứng thực nguồn gốc là có thật. Đây không phải là một tuyên bố gây tranh cãi: npm provenance ghi lại nơi một gói được xây dựng và bằng quy trình nào, và trong trường hợp này, nó đã ghi lại sự thật — chính quy trình phát hành của dự án, xây dựng nguồn đã bị đầu độc. Cảnh báo của Tensorlake nói đúng nguyên văn như vậy: "gói này có provenance npm hợp lệ". Socket nêu rõ điều tương tự khi lưu ý rằng provenance "cho biết một gói được xây dựng ở đâu. Nó không nói rằng mã là an toàn."

Một số chi tiết đang được lan truyền là những khẳng định chỉ dựa trên một nguồn phân tích duy nhất và nên được hiểu theo đúng nghĩa đó. Cơ chế cụ thể mà kẻ tấn công đã dùng để chiếm được tài khoản của người bảo trì vẫn chưa được bất kỳ công ty điều tra nào hay Tensorlake công bố. Địa chỉ hợp đồng Ethereum và vai trò của nó trong việc phân giải endpoint xuất hiện trong các báo cáo của SafeDep và Socket — Socket cho biết payload phân giải endpoint của nó thông qua một hợp đồng Ethereum sử dụng khoảng 30 endpoint RPC công khai cùng một phương án dự phòng qua GitHub, trong khi SafeDep đưa ra con số RPC là 35 và báo cáo rằng vào ngày 8 tháng 10, hợp đồng đã trả về iseekaigogo.com — và Tensorlake xác nhận endpoint cùng hợp đồng đó trong khuyến cáo của mình. Số lượng RPC chính xác có khác nhau giữa hai bài viết; còn thiết kế thì không.

Có một lỗ hổng trong hồ sơ công khai đáng để nói thẳng ra. Không có nguồn nào được xem xét cho bài viết này báo cáo một ca lây nhiễm hạ nguồn đã được xác nhận — một gói hay kho lưu trữ khác bị con sâu đầu độc bằng thông tin đăng nhập đánh cắp từ gói này. Mã lây lan thì có tồn tại và SafeDep đã đọc nó; liệu nó có tạo ra nạn nhân thứ hai hay không thì vẫn chưa rõ.

Điều gì đã thay đổi sau đó?

Công tác ứng phó đã nhanh hơn và có sự phối hợp tốt hơn so với sự cố.

• Phiên bản đó không còn nữa. Theo Tensorlake, nó đã hoạt động từ 01:12 đến 02:54 UTC ngày 8 tháng 10; SafeDep báo cáo rằng npm đã gỡ nó. Khi truy vấn trực tiếp npm registry vào ngày 10 tháng 10 cho bài viết này, 0.5.144 không còn xuất hiện trong các phiên bản đã phát hành của gói, và thẻ mới nhất của gói là 0.5.148. Khuyến cáo của Tensorlake hướng các nhà phát triển đến 0.5.143 như là phiên bản cuối cùng không bị ảnh hưởng.

• Khuyến cáo đã được công bố kèm bản sửa lỗi. Khuyến cáo GHSA-8g63-53c9-65j2 của Tensorlake nêu rằng các gói tensorlake trên PyPI và crates.io cùng với tensorlake CLI không bị ảnh hưởng — chỉ gói npm bị ảnh hưởng — và các phiên bản 0.5.143 và trước đó không bị ảnh hưởng. SafeDep báo cáo rằng những người bảo trì đã hoàn nguyên mã nguồn trong pull request #1016 và phát hành 0.5.145.

• Luồng công bố thông tin này đầy đủ một cách bất thường. Nhà nghiên cứu Ashish Kurmi của StepSecurity đã mở issue GitHub #1014 vào lúc 01:22:02 UTC ngày 8 tháng 10 — khoảng mười phút sau khi phát hành — chỉ ra bài viết của chính StepSecurity về thứ mà họ gọi là sâu "hostage token". Oliver Smith của Aikido bình luận rằng payload được đưa vào trong commit 41b38f0 và xác định nó là một trình đánh cắp thông tin Shai-Hulud mới. Người bảo trì David Lorenzo — danh tính người bảo trì được ghi trên gói npm là calavera — đã trả lời vào ngày 9 tháng 10, xác nhận khuyến cáo bảo mật và đóng issue với trạng thái hoàn thành cùng ngày. Bản thân tiêu đề issue phản ánh bằng chứng: ban đầu nó là báo cáo "có thể độc hại" và đến khi đóng đã được đổi tên để mô tả payload là độc hại mà không kèm bất kỳ điều kiện nào.

• Chiến dịch mà gói này thuộc về còn lớn hơn chính gói này Socket, SafeDep và Aikido đều xếp bản phát hành Tensor vào làn sóng Chain / Mini Shai-Hulud được ghi nhận vào đầu năm 2026, với các gói npm keyv, cacheable và các gói liên quan. Khuyến cáo của Tensorlake cũng nói như vậy, dẫn nguồn Socket, SafeDep và Aikido.

Hướng dẫn của Socket cho bất kỳ ai đã cài đặt phiên bản này là nên coi máy chủ đã bị xâm phạm: kiểm tra lockfile, manifest và nhật ký build cho phiên bản đó; gỡ bỏ gh-token-monitordịch vụ trước khi thu hồi bất kỳ token nào; sau đó xoay vòng thông tin xác thực từ một máy sạch. Khuyến cáo của Tensorlake bổ sung thứ tự tương tự và gợi ý kiểm tra các registry gói và kho lưu trữ mà các token bị lộ có thể ghi vào để tìm các bản phát hành bất ngờ. Bài viết của Aikido khuyên đặt ignore-scripts=true trong .npmrc để chặn các hook cài đặt, và coi bất kỳ máy nào mà hook đã chạy là đã bị xâm phạm hoàn toàn.

Đây là một bản ghi, do người khác báo cáo và được trích dẫn ở đây cho họ. Các sự cố tác nhân khác đã được ghi nhận, mỗi sự cố đều có nguồn, mức độ nghiêm trọng, cấp độ tin cậy và cờ đánh dấu tranh chấp riêng, nằm trong kho lưu trữ sự cố AI — để một vụ xâm phạm chuỗi cung ứng nhắm vào công cụ dành cho tác nhân có thể được đọc bên cạnh phần còn lại của những gì đã thực sự xảy ra.