Hai quy trình làm việc GitHub Actions nữa đã trở thành nạn nhân mới nhất bị xâm phạm bởi phần mềm độc hại đánh cắp thông tin đăng nhập, do nhóm tội phạm mạng TeamPCP thực hiện. TeamPCP là một nhóm tội phạm mạng hoạt động trên đám mây, cũng là kẻ đứng sau cuộc tấn công chuỗi cung ứng Trivy.
Các quy trình làm việc này, cả hai đều được duy trì bởi công ty bảo mật chuỗi cung ứng Checkmarx, bao gồm:
Công ty bảo mật đám mây Sysdig cho biết họ đã quan sát thấy một công cụ đánh cắp thông tin đăng nhập giống hệt loại được sử dụng trong các hoạt động của TeamPCP nhằm vào công cụ quét lỗ hổng Trivy của Aqua Security và các GitHub Actions liên quan, khoảng bốn ngày sau vụ vi phạm vào ngày 19 tháng 3 năm 2026. Sự thỏa hiệp chuỗi cung ứng Trivy đang được theo dõi dưới định danh CVE CVE-2026-33634 (điểm CVSS: 9.4).
"Điều này cho thấy rằng thông tin đăng nhập bị đánh cắp từ vụ Trivy đã được sử dụng để đầu độc các hành động bổ sung trong các kho lưu trữ bị ảnh hưởng," Sysdig cho biết.
Công cụ đánh cắp, được gọi là "TeamPCP Cloud stealer," được thiết kế để đánh cắp thông tin đăng nhập và bí mật liên quan đến SSH keys, Git, Amazon Web Services (AWS), Google Cloud, Microsoft Azure, Kubernetes, Docker, các tệp .env, cơ sở dữ liệu và VPNs, cùng với các cấu hình CI/CD, dữ liệu từ ví tiền điện tử và URL webhook của Slack và Discord.
Giống như trường hợp của Trivy, các tác nhân đe dọa đã được phát hiện ép đẩy (force-push) các tags đến các commit độc hại chứa payload của công cụ đánh cắp ("setup.sh"). Dữ liệu bị đánh cắp được đưa ra ngoài đến tên miền "checkmarx[.]zone" (địa chỉ IP: 83.142.209[.]11:443) dưới dạng một tệp lưu trữ được mã hóa ("tpcp.tar.gz").
Phiên bản mới tạo một kho lưu trữ "docs-tpcp" bằng cách sử dụng GITHUB_TOKEN của nạn nhân để lưu trữ dữ liệu bị đánh cắp như một phương pháp sao lưu nếu việc đưa dữ liệu ra ngoài đến máy chủ thất bại. Trong sự cố Trivy, các tác nhân đe dọa đã sử dụng tên kho lưu trữ "tpcp-docs" thay thế.
"Việc sử dụng các tên miền typosquat cụ thể của nhà cung cấp cho mỗi hành động bị đầu độc là một kỹ thuật lừa đảo có chủ ý," Sysdig cho biết. "Một nhà phân tích xem xét nhật ký CI/CD sẽ thấy lưu lượng curl đến cái dường như là tên miền của nhà cung cấp hành động đó, giảm khả năng phát hiện thủ công."
Việc chức năng chính của công cụ đánh cắp là thu thập thông tin đăng nhập từ bộ nhớ CI runner cho phép các nhà điều hành trích xuất GitHub personal access tokens (PATs) và các bí mật khác từ thời điểm một hành động Trivy bị xâm phạm được thực thi trong một workflow. Tệ hơn nữa, nếu các token đó có quyền ghi vào các kho lưu trữ cũng sử dụng các hành động của Checkmarx, kẻ tấn công có thể vũ khí hóa chúng để đẩy mã độc hại.
Điều này, đến lượt nó, mở ra cánh cửa cho một sự thỏa hiệp chuỗi cung ứng theo tầng, nơi một hành động bị đầu độc thu thập các bí mật được sử dụng để tạo điều kiện cho việc đầu độc các hành động khác.
"Payload, cơ chế mã hóa và quy ước đặt tên tpcp.tar.gz giống hệt nhau xác nhận đây là cùng một tác nhân đe dọa đang mở rộng phạm vi của chúng vượt ra ngoài sự thỏa hiệp Trivy ban đầu," Sysdig lưu ý. "Việc xem xét mã và quét các phụ thuộc đã thất bại ở đây vì mã độc hại đã được tiêm vào một hành động đáng tin cậy ngay tại nguồn."
Theo Wiz, cuộc tấn công dường như đã được thực hiện thông qua việc xâm phạm tài khoản dịch vụ "cx-plugins-releases", với việc kẻ tấn công cũng xuất bản các phiên bản trojanized của các tiện ích mở rộng Open VSX "ast-results" (phiên bản 2.53.0) và "cx-dev-assist" (phiên bản 1.7.0). Các phiên bản VS Code Marketplace không bị ảnh hưởng.
Sau khi tiện ích mở rộng được kích hoạt, payload độc hại kiểm tra xem nạn nhân có thông tin đăng nhập cho ít nhất một nhà cung cấp dịch vụ đám mây nào không, chẳng hạn như GitHub, AWS, Google Cloud, và Microsoft Azure. Nếu bất kỳ thông tin đăng nhập nào được phát hiện, nó sẽ tiến hành tìm nạp một payload giai đoạn tiếp theo từ cùng một tên miền ("checkmarx[.]zone").
"Payload cố gắng thực thi thông qua npx, bunx, pnpx hoặc yarn dlx. Điều này bao gồm các trình quản lý gói JavaScript chính," các nhà nghiên cứu của Wiz Rami McCarthy, James Haughom và Benjamin Read cho biết. "Gói được truy xuất chứa một công cụ đánh cắp thông tin đăng nhập toàn diện. Thông tin đăng nhập thu thập được sau đó được mã hóa, sử dụng các khóa như ở những nơi khác trong chiến dịch này, và được đưa ra ngoài đến 'checkmarx[.]zone/vsx' dưới dạng tpcp.tar.gz."
"Trên các hệ thống không phải CI, phần mềm độc hại cài đặt sự kiên trì thông qua một dịch vụ người dùng systemd. Tập lệnh kiên trì thăm dò https://checkmarx[.]zone/raw cứ sau 50 phút để tìm các payload bổ sung, với một kill switch sẽ hủy bỏ nếu phản hồi chứa "youtube". Hiện tại, liên kết chuyển hướng đến The Show Must Go On của Queen."
Biện pháp giảm thiểu
Để giảm thiểu mối đe dọa, người dùng nên thực hiện các hành động sau ngay lập tức:
- Xoay vòng tất cả secrets, tokens và cloud credentials có thể truy cập được bởi CI runners trong khoảng thời gian bị ảnh hưởng.
- Kiểm tra các GitHub Actions workflow runs để tìm bất kỳ tham chiếu nào đến tpcp.tar.gz, scan.aquasecurity[.]org hoặc checkmarx[.]zone trong nhật ký runner.
- Tìm kiếm tổ chức GitHub cho các kho lưu trữ có tên "tpcp-docs" hoặc "docs-tpcp", cho thấy việc đưa dữ liệu ra ngoài thành công thông qua cơ chế dự phòng.
- Ghim GitHub Actions vào các full commit SHAs thay vì version tags, vì tags có thể bị force-pushed.
- Giám sát các kết nối mạng đi từ CI runners đến các tên miền đáng ngờ.
- Hạn chế Instance Metadata Service (IMDS) từ các CI runner containers bằng cách sử dụng IMDSv2.
Trong những ngày sau vụ vi phạm ban đầu, các tác nhân TeamPCP đã đẩy các Docker images độc hại của Trivy chứa cùng công cụ đánh cắp và chiếm quyền kiểm soát tổ chức GitHub "aquasec-com" của công ty để can thiệp vào hàng chục kho lưu trữ nội bộ.
Chúng cũng đã được quan sát thấy nhắm mục tiêu các Kubernetes clusters bằng một shell script độc hại xóa tất cả các máy khi phát hiện các hệ thống phù hợp với múi giờ và ngôn ngữ Iran, làm nổi bật sự leo thang mới của phương thức hoạt động của nhóm.