Chiến dịch wfx-loot đã sử dụng thông tin xác thực GitHub bị đánh cắp để dò quyền ghi trên hơn 61.000 kho mã, cài mã độc vào quy trình CI và thu thập bí mật truy cập. Báo cáo công bố ngày 12/11/2026 cho thấy đây là một sự cố quy mô lớn, đặt ra rủi ro trực tiếp với GitHub Actions, hạ tầng đám mây và chuỗi cung ứng phần mềm.

wfx-loot là gì?
Aikido Security đặt tên chiến dịch là wfx-loot dựa trên dấu vết trong mã độc và thuật ngữ mà kẻ tấn công dùng cho dữ liệu đánh cắp. Hoạt động bắt đầu khoảng 12:45 UTC ngày 10/11/2026, sử dụng thông tin xác thực của 4.837 tài khoản GitHub để mở yêu cầu kéo thăm dò trên 61.764 kho mã.
Ít nhất 1.835 mục tiêu được xác nhận đã làm lộ bí mật. Khoảng 50 tài khoản bị xâm nhập còn có quyền phát hành gói lên npm, PyPI, Go, crates và Packagist, khiến phạm vi rủi ro vượt khỏi từng kho mã riêng lẻ.
Chuỗi tấn công diễn ra như thế nào?
Kẻ tấn công trước hết tạo nhánh wfx-docs và yêu cầu kéo mang tiêu đề docs: dependency audit notes để xác nhận quyền ghi. Khi có đủ quyền, chúng sửa workflow hiện hữu, thêm workflow trên nhánh tồn tại ngắn hoặc cài hook postinstall của npm.
Payload là một shell script khoảng 1.500 dòng. Sau khi chạy, mã độc nhanh chóng hoàn tác thay đổi, xóa lịch sử workflow và nhật ký trong chưa đầy một phút, khiến khoảng trống trong số thứ tự lần chạy đôi khi là dấu vết hiếm hoi còn lại.
Những bí mật nào có thể bị đánh cắp?
Danh sách mục tiêu gồm GitHub Actions secrets, GITHUB_TOKEN, token OIDC, biến môi trường, khóa SSH và thông tin xác thực của AWS, Azure, Google Cloud, Docker, Kubernetes, Vault và Terraform. Mã độc còn tìm khóa của các dịch vụ AI và công cụ phát triển như OpenAI, Anthropic, Gemini, Hugging Face, Cursor và GitHub Copilot.
Trên runner tự quản lý, payload có thể đọc thông tin xác thực từ dịch vụ metadata của máy ảo, bộ nhớ tiến trình, lịch sử shell, tệp cấu hình và các commit gần đây. Dữ liệu được nén rồi gửi bằng HTTP POST tới hạ tầng do kẻ tấn công kiểm soát.
Nguy cơ leo thang trên nền tảng đám mây
wfx-loot không dừng ở thu thập khóa. Công cụ có thể đổi token OIDC thành phiên AWS, Azure hoặc GCP; nối chuỗi vai trò IAM, mạo danh tài khoản dịch vụ và truy cập kho bí mật. Khi quyền cho phép, nó còn tạo khóa dài hạn hoặc sửa chính sách tin cậy để duy trì truy cập sau khi nạn nhân xoay vòng token.
Ảnh hưởng tới chuỗi cung ứng phần mềm
Cơ chế phát hành tự động đã đưa payload vào gói Packagist digitalelvis/neuronai-studio 3.14.3 và workflow của hai phiên bản module Go github.com/onuragtas/docker-env. Aikido đánh giá mục tiêu chính vẫn là bí mật CI, nhưng sự lan truyền ngoài dự kiến cho thấy một tài khoản nhà phát triển bị chiếm có thể kéo theo nhiều hệ sinh thái.
Dấu hiệu nhận biết quan trọng
- Nhánh
wfx-docshoặc nhánh dạngchore/xxxxxxxx. - Yêu cầu kéo
docs: dependency audit notes. - Commit như
ci: refresh build cachehoặcchore: add ci helper. - Khoảng trống bất thường trong số thứ tự workflow run.
- Kết nối tới
194.150.166[.]244:8080hoặc18.143.168[.]96:8080.
Tổ chức cần làm gì ngay?
Chủ kho mã nên rà soát nhánh, pull request, commit và lịch sử workflow từ ngày 10/11. Nếu payload từng chạy, cần coi toàn bộ bí mật và vai trò đám mây mà workflow tiếp cận là đã bị lộ, thu hồi và xoay vòng chúng, đồng thời kiểm tra khóa dài hạn, chính sách IAM và danh tính liên kết mới tạo.
Về dài hạn, tổ chức nên giới hạn quyền mặc định của workflow, tách runner theo mức độ tin cậy, bảo vệ nhánh, yêu cầu phê duyệt thay đổi CI và giám sát hành vi phát hành gói. Bí mật ngắn hạn và quyền tối thiểu giúp giảm đáng kể phạm vi thiệt hại khi tài khoản nhà phát triển bị chiếm.
Bài học từ chiến dịch wfx-loot
Sự cố cho thấy tài khoản GitHub và pipeline CI/CD là một phần của mặt phẳng kiểm soát hạ tầng, không chỉ là công cụ phát triển. Một token có quyền ghi có thể mở đường từ kho mã đến đám mây, registry gói và môi trường sản xuất; vì vậy kiểm soát danh tính, nhật ký bất biến và phản ứng xoay vòng bí mật phải được thiết kế như năng lực cốt lõi.
VNCyberS tổng hợp từ Aikido Security và BleepingComputer















