Làn sóng thứ hai của cuộc tấn công chuỗi cung ứng Shai-Hulud đã lan rộng sang hệ sinh thái Maven sau khi làm ảnh hưởng đến hơn 830 gói trong kho lưu trữ npm.
Socket Research Team cho biết họ đã xác định một gói Maven Central có tên org.mvnpm:posthog-node:4.18.1 nhúng hai thành phần tương tự liên quan đến Shai-Hulud: trình tải "setup_bun.js" và payload chính "bun_environment.js".
"Điều này có nghĩa là dự án PostHog đã có các bản phát hành bị xâm phạm trong cả hệ sinh thái JavaScript/npm và Java/Maven, do cùng một payload Shai Hulud v2 gây ra," công ty an ninh mạng cho biết trong một bản cập nhật vào thứ Ba.
Điều đáng chú ý là gói Maven Central này không do chính PostHog phát hành. Thay vào đó, tọa độ "org.mvnpm" được tạo ra thông qua một quy trình mvnpm tự động để xây dựng lại các gói npm thành các artifact của Maven. Maven Central cho biết họ đang nỗ lực triển khai các biện pháp bảo vệ bổ sung để ngăn chặn các thành phần npm đã biết bị xâm phạm được đóng gói lại. Tính đến 22:44 UTC ngày 25 tháng 11 năm 2025, tất cả các bản sao đã được xóa bỏ.
Sự phát triển này diễn ra khi "sự trở lại" của sự cố chuỗi cung ứng đã nhắm mục tiêu vào các nhà phát triển trên toàn cầu với mục đích đánh cắp dữ liệu nhạy cảm như API keys, cloud credentials, và npm cũng như GitHub tokens, đồng thời tạo điều kiện cho sự xâm nhập sâu hơn vào chuỗi cung ứng theo kiểu worm. Phiên bản mới nhất cũng đã phát triển để trở nên lén lút, hung hãn, có khả năng mở rộng và phá hoại hơn.
Ngoài việc mượn chuỗi lây nhiễm tổng thể của biến thể tháng 9 ban đầu, cuộc tấn công này cho phép các tác nhân đe dọa giành quyền truy cập trái phép vào các tài khoản quản lý npm và xuất bản các phiên bản trojan hóa của các gói của họ. Khi các nhà phát triển không nghi ngờ tải xuống và chạy các thư viện này, mã độc nhúng sẽ tạo backdoor trên máy của họ, quét tìm secrets và đánh cắp chúng đến các kho lưu trữ GitHub bằng các token bị đánh cắp.
Cuộc tấn công này đạt được điều này bằng cách chèn hai workflow độc hại, một trong số đó đăng ký máy nạn nhân làm self-hosted runner và cho phép thực thi lệnh tùy ý bất cứ khi nào một GitHub Discussion được mở. Một workflow thứ hai được thiết kế để thu thập có hệ thống tất cả các secrets. Hơn 28.000 kho lưu trữ đã bị ảnh hưởng bởi sự cố này.
"Phiên bản này tăng cường đáng kể khả năng tàng hình bằng cách sử dụng Bun runtime để ẩn logic cốt lõi của nó và tăng quy mô tiềm năng bằng cách nâng giới hạn lây nhiễm từ 20 lên 100 gói," Ronen Slavin và Roni Kuznicki của Cycode cho biết. "Nó cũng sử dụng một kỹ thuật lẩn tránh mới, đánh cắp dữ liệu bị đánh cắp đến các kho lưu trữ GitHub công khai được đặt tên ngẫu nhiên thay vì một kho lưu trữ duy nhất, được mã hóa cứng."
Các cuộc tấn công minh họa việc kẻ tấn công dễ dàng như thế nào khi lợi dụng các kênh phân phối phần mềm đáng tin cậy để đẩy các phiên bản độc hại trên quy mô lớn và làm tổn hại hàng nghìn nhà phát triển hạ nguồn. Hơn nữa, bản chất tự nhân rộng của phần mềm độc hại có nghĩa là một tài khoản bị nhiễm duy nhất là đủ để khuếch đại phạm vi ảnh hưởng của cuộc tấn công và biến nó thành một đợt bùng phát diện rộng trong một thời gian ngắn.
Phân tích sâu hơn của Aikido đã phát hiện rằng các tác nhân đe dọa đã khai thác các vulnerabilities, đặc biệt tập trung vào các CI misconfigurations trong các workflow pull_request_target và workflow_run, trong các workflow GitHub Actions hiện có để thực hiện cuộc tấn công và làm tổn hại các dự án liên quan đến AsyncAPI, PostHog và Postman.
Lỗ hổng này "đã sử dụng trigger pull_request_target rủi ro theo cách cho phép mã được cung cấp bởi bất kỳ pull request mới nào được thực thi trong quá trình chạy CI," nhà nghiên cứu bảo mật Ilyas Makari cho biết. "Một lỗi cấu hình duy nhất có thể biến một kho lưu trữ thành bệnh nhân số 0 cho một cuộc tấn công lây lan nhanh chóng, mang lại cho kẻ thù khả năng đẩy mã độc hại thông qua các automated pipelines mà bạn tin cậy hàng ngày."
Hoạt động này được đánh giá là sự tiếp nối của một loạt các cuộc tấn công rộng lớn hơn nhắm vào hệ sinh thái bắt đầu với chiến dịch S1ngularity vào tháng 8 năm 2025 ảnh hưởng đến một số gói Nx trên npm.
"Là một làn sóng phần mềm độc hại chuỗi cung ứng npm mới và hung hãn hơn đáng kể, Shai-Hulud 2 kết hợp khả năng thực thi lén lút, phạm vi credential rộng và hành vi phá hoại dự phòng, khiến nó trở thành một trong những cuộc tấn công chuỗi cung ứng có tác động lớn nhất trong năm," Nadav Sharkazy, giám đốc sản phẩm tại Apiiro, cho biết trong một tuyên bố.
"Phần mềm độc hại này cho thấy một sự xâm phạm duy nhất trong một thư viện phổ biến có thể lan rộng thành hàng nghìn ứng dụng hạ nguồn bằng cách trojan hóa các gói hợp pháp trong quá trình cài đặt."
Dữ liệu được tổng hợp bởi GitGuardian, OX Security và Wiz cho thấy chiến dịch này đã làm rò rỉ hàng trăm GitHub access tokens và credentials liên quan đến Amazon Web Services (AWS), Google Cloud, và Microsoft Azure. Hơn 5.000 tệp đã được tải lên GitHub cùng với các secrets bị đánh cắp. Phân tích của GitGuardian trên 4.645 kho lưu trữ GitHub đã xác định 11.858 secrets độc nhất, trong đó 2.298 secrets vẫn còn hiệu lực và bị lộ công khai tính đến ngày 24 tháng 11 năm 2025.
Người dùng được khuyên nên xoay vòng tất cả các tokens và keys, kiểm tra tất cả các dependencies, loại bỏ các phiên bản bị xâm phạm, cài đặt lại các gói sạch và củng cố môi trường phát triển cũng như CI/CD bằng quyền truy cập ít đặc quyền nhất (least-privilege access), quét secrets và thực thi chính sách tự động.
"Shai-Hulud là một lời nhắc nhở nữa rằng chuỗi cung ứng phần mềm hiện đại vẫn quá dễ bị phá vỡ," Dan Lorenc, đồng sáng lập và CEO của Chainguard, cho biết. "Chỉ cần một maintainer bị xâm phạm và một install script độc hại là đủ để lan truyền qua hàng nghìn dự án hạ nguồn chỉ trong vài giờ."
"Các kỹ thuật mà kẻ tấn công đang sử dụng không ngừng phát triển. Hầu hết các cuộc tấn công này không dựa vào zero-days. Chúng khai thác các lỗ hổng trong cách phần mềm mã nguồn mở được xuất bản, đóng gói và đưa vào hệ thống sản xuất. Biện pháp phòng thủ thực sự duy nhất là thay đổi cách phần mềm được xây dựng và tiêu thụ."