Hàng nghìn tài khoản GitHub bị chiếm đoạt để cài mã độc đánh cắp bí mật CI
Từ thứ Ba, một kẻ tấn công đã lợi dụng thông tin đăng nhập bị đánh cắp của 4.837 tài khoản GitHub để cấy một công cụ đánh cắp bí mật vào các kho mã mà những tài khoản này có quyền ghi, theo phân tích của công ty bảo mật phần mềm Aikido Security. Công cụ này nhắm vào các bí mật và thông tin xác thực đám mây mà quy trình CI của kho mã có thể truy cập, và đã chạy trong ít nhất 1.806 kho mã, nơi kẻ tấn công nhiều khả năng đã thu được các thông tin xác thực đó.
Cách thức tấn công
Mỗi cuộc tấn công bắt đầu bằng một pull request mang tiêu đề docs: dependency audit notes, mở từ nhánh tên wfx-docs, nhằm kiểm tra xem tài khoản có quyền ghi vào kho mã hay không. Những pull request thử nghiệm này được mở tại 61.764 kho mã, và công cụ đánh cắp xuất hiện tiếp theo ở một số kho trong đó. Trong 7.309 kho, mã độc được thêm vào một workflow có sẵn; ở 771 kho, nó xuất hiện dưới dạng hook npm postinstall, cũng chạy trên máy lập trình viên khi thực hiện npm install.
Sau khi đẩy mã độc, kẻ tấn công thường hoàn tác thay đổi trong vài phút. Ở những nơi mã độc đã chạy, nhật ký của nó bị xóa, thường cùng với chính lần chạy đó. Tại các kho mã này, mọi bí mật và vai trò đám mây mà workflow có thể truy cập đều nên được coi là đã bị xâm phạm. Nhóm nghiên cứu của SafeDep ghi nhận 8.093 kho mã nhận commit độc hại trong khoảng từ 12:46 UTC thứ Ba đến 04:36 UTC hôm nay, nhưng con số thực tế có thể cao hơn vì họ chỉ tìm trong nhánh mặc định của các kho công khai.
Dấu hiệu nhận biết và phạm vi ảnh hưởng
Các dấu hiệu cần kiểm tra từ thứ Ba gồm nhánh wfx-docs, nhánh chore/[a-z0-9]{8} tồn tại ngắn, nhánh ci-check-[0-9]{4}, cùng các thông điệp commit như ci: refresh build cache hay chore: add ci helper. Công cụ đánh cắp gửi dữ liệu qua HTTP POST tới các địa chỉ IP cụ thể hoặc tới một kênh Telegram; trong mẫu 200 commit chứa mã độc, khoảng một phần năm chỉ dùng Telegram.
Mã độc thu thập thông tin xác thực từ mọi nguồn trên runner, gồm bí mật và biến GitHub Actions, GITHUB_TOKEN, token OIDC và runtime, khóa dịch vụ AI, cùng bí mật trong bộ nhớ các tiến trình. Nó đọc tệp thông tin xác thực của AWS, Azure, GCP, Kubernetes, npm, PyPI, SSH và các công cụ khác, đồng thời sao chép kho mã, 100 commit gần nhất và các artifact workflow gần đây. Trên runner tự vận hành, nó lấy thông tin xác thực đám mây từ metadata của instance, trạng thái container Docker và các systemd unit.
Mã độc còn được thiết kế để đào sâu vào tài khoản đám mây: đổi token OIDC GitHub thành phiên AWS, GCP, Azure, và trên AWS có thể tạo access key dài hạn cho người dùng IAM. Một số bước được xây dựng để tồn tại qua việc luân chuyển thông tin xác thực, như viết lại chính sách tin cậy của vai trò AWS để mở vai trò cho bất kỳ tài khoản AWS nào, hoặc thêm thông tin xác thực liên kết với tiền tố wfx-ci- vào ứng dụng Azure AD. Để tìm các backdoor này, cần kiểm tra thông tin xác thực liên kết wfx-ci-* trong Entra ID, các phiên AssumeRoleWithWebIdentity hoặc AssumeRole tên wfx-* trong AWS CloudTrail, các lệnh GenerateAccessToken và SignJwt từ workload identity pool GitHub trên GCP, và đăng nhập JWT từ nhà phát hành OIDC GitHub trong Vault.
Thiệt hại qua các gói phần mềm
Mã độc đã chạm tới ít nhất một gói Packagist và một module Go thông qua cơ chế phát hành tự động. Phiên bản 3.14.3 của gói Packagist digitalelvis/neuronai-studio là độc hại; lệnh composer install thông thường không chạy mã độc, nhưng chạy npm install bên trong thư mục vendor của gói thì có. Người dùng nên chặn phiên bản 3.14.3 và ghim phiên bản 3.14.2 trở về trước. Hai phiên bản v1.0.278 và v1.0.280 của module Go github.com/onuragtas/docker-env chỉ chứa mã độc trong tệp workflow GitHub Actions, còn mã Go và bản phát hành không đổi. Mã độc cũng xuất hiện trong module github.com/vkuznet/gocurl ở một pseudo-version nằm trong workflow chưa từng chạy, và chạm tới 28 kho WebdriverIO qua các commit dưới tên tài khoản bot wdio-bot.
Các tài khoản bị dùng tuần này trùng với những tài khoản bị ảnh hưởng trong đợt tấn công GhostAction hồi tháng Mười, khi tài khoản GitHub bị đánh cắp đẩy workflow đánh cắp bí mật vào kho mã. Aikido cho biết chưa quy đợt tấn công tháng Mười Một cho cùng một đối tượng, vì hạ tầng, công cụ và phương thức khác nhau, và thông tin xác thực bị đánh cắp thường rơi vào tay nhiều kẻ tấn công.
Nguồn: The Hacker News
Trích nguồn từ: The Hacker News
Tags:
Bài viết liên quan
Lỗ hổng MongoDB nghiêm trọng CVE-2026-118383: hai request từ kẻ chưa xác thực có thể làm sập server khi chuyển vai primary
MongoDB đã phát hành bản vá cho lỗ hổng use-after-free nghiêm trọng CVE-2026-118383, cho phép kẻ tấn công chưa xác thực gửi hai request khiến thành viên replica set bị sập khi đảm nhận vai primary.
Đọc thêm
Chiến dịch chiếm phiên Google: Lời mời lịch và proxy trực tiếp
Nhóm nghiên cứu Material Security phát hiện chiến dịch lừa đảo chiếm phiên đăng nhập Google của người dùng doanh nghiệp qua lời mời Google Calendar, dùng proxy ngược để đánh cắp mật khẩu và mã xác thực hai lớp.
Đọc thêm
Lỗ hổng nghiêm trọng trong Red Hat Quay cho phép đọc và ghi đè mọi container image riêng tư
Red Hat Quay dính hai lỗ hổng nghiêm trọng: kẻ tấn công có thể đọc, ghi đè image riêng tư trong mọi repository và đánh cắp token robot account của tenant khác. Bản vá đã phát hành cho tám nhánh Quay 3.
Đọc thêm
Google Cloud cảnh báo ba lỗ hổng CPU AMD Turin có thể rò rỉ dữ liệu giữa các tiến trình trong VM
Google Cloud yêu cầu khách hàng dùng máy ảo trên chip AMD Turin cài bản vá hệ điều hành khách và khởi động lại máy để chống ba lỗ hổng kênh kề có thể làm lộ dữ liệu giữa các tiến trình.
Đọc thêm
SignDrop: Lỗ hổng zero-day biến tính năng bảo mật CLFS của Windows thành công cụ chiếm quyền SYSTEM
Mã khai thác công khai SignDrop lợi dụng cách driver CLFS tạo tệp đồng hành để nâng quyền từ người dùng thường lên SYSTEM; Microsoft chưa xác nhận, chưa cấp CVE hay phát hành bản vá.
Đọc thêm
Lỗ hổng nghiêm trọng trong Apache HTTP/2 có thể cho phép kẻ tấn công chưa xác thực thực thi mã từ xa
Lỗ hổng CVE-2026-119618 trong module mod_http2 của Apache HTTP Server ảnh hưởng các phiên bản 2.4.55 đến 2.4.70, được vá trong 2.4.71, cho phép kẻ tấn công chưa xác thực chiếm quyền điều khiển tiến trình máy chủ.
Đọc thêm
Node.js vá 16 lỗ hổng, gồm lỗi HTTP/2 làm sập máy chủ và rò rỉ dữ liệu kết nối khác
Node.js phát hành bản vá cho 16 lỗ hổng, trong đó có các lỗi HTTP/2 và HTTPS nghiêm trọng có thể khiến máy chủ bị sập hoặc làm lộ bộ nhớ, bao gồm cả khóa riêng TLS.
Đọc thêm
Railway bị đánh cắp khóa AI của khách hàng, thiệt hại ước tính 740.000 USD
Railway cho biết khóa API của các nhà cung cấp AI do khách hàng lưu trên nền tảng bị đánh cắp trong vụ xâm nhập tháng 10, gây ra khoản chi phí trái phép ước tính 740.000 USD, và công ty cam kết tự trả các khoản này khi nhà cung cấp AI không hoàn tiền
Đọc thêm
Xây một AI agent phá vỡ mọi quy tắc bảo mật: bài học về định danh và phân quyền
Token tạo ra agent Rehearsal chạy trong phiên đăng nhập của người dùng và phát hiện ba lỗ hổng cốt lõi về định danh, phạm vi truy cập và khả năng truy vết của AI agent.
Đọc thêm
Tin tặc nhắm vào máy chủ Qlik Sense bằng reverse shell, chuẩn bị khai thác ActiveMQ và Veeam
Nhóm tấn công đã thử triển khai lệnh reverse shell PowerShell nhắm vào máy chủ Qlik Sense trong tháng 10/2026, đồng thời chuẩn bị sẵn công cụ khai thác lỗ hổng ActiveMQ và Veeam.
Đọc thêm