Кампанія wfx-loot: 4,8 тис. зламаних акаунтів GitHub і крадіжка секретів
Дослідники Aikido зафіксували масштабну атаку на GitHub: зловмисники скомпрометували 4 837 акаунтів і полювали на секрети з десятків тисяч репозиторіїв.
На GitHub виявлено кампанію «wfx-loot», що стартувала 10 листопада близько 12:45 UTC: зловмисник використав викрадені облікові дані 4 837 акаунтів, щоб перевірити 61 764 репозиторії на можливість інʼєкції коду й викрадення секретів CI/CD.

Як діяла атака
За даними Aikido, атакувальник масово відкривав pull request’и з темою «docs: dependency audit notes», тестуючи, чи має обліковий запис права на запис. 92% таких PR досі відкриті, тож їх могли не помітити власники репозиторіїв.
У разі успіху зловмисник модифікував наявний GitHub Actions workflow, створював новий workflow у тимчасовій гілці або підкидав хук під час npm install (npm install hook), що запускав 1 500‑рядковий скрипт для збирання облікових даних.
Що саме викрадали
- Секрети та змінні GitHub Actions, зокрема GITHUB_TOKEN, OIDC і runtime‑токени.
- Хмарні облікові дані AWS, Azure і Google Cloud, зокрема через metadata на локальних (self‑hosted) раннерах.
- Креденшили розробників та інфраструктури з Git, SSH, GPG, Docker, Kubernetes, npm, PyPI, Vault і Terraform.
- Доступи сервісів ШІ та інструментів: OpenAI, Anthropic, Gemini, Hugging Face, Cursor, GitHub Copilot.
- Інші джерела секретів: змінні середовища, .env, приватні ключі, keystore, історії shell, пам’ять процесів, файли репозиторію, недавні коміти та артефакти workflow.
Скрипт умів обмінювати GitHub OIDC‑токени на тимчасові сесії AWS/Azure/GCP для ескалації привілеїв; у AWS — ланцюжити ролі IAM і створювати довготривалі ключі, у GCP — маскуватися під service accounts. За наявності прав — змінювати політики ідентичностей і довіри для закріплення доступу.
Масштаб і наслідки
Секрети підтверджено викраденими щонайменше з 1 835 цілей. Серед скомпрометованих акаунтів були облікові записи Fortune 100, US General Services Administration, уряду Франції, а також Nextcloud і WebdriverIO. Близько 50 із них мали права публікації в npm, PyPI, Go, crates і Packagist.
Зібрані дані стискалися в tar‑архіви і відправлялися HTTP POST на один із двох керованих зловмисником вузлів. Після цього зміни швидко відкочувалися, а запуски й логи workflow видалялися — усе менш ніж за хвилину.
Через автопублікацію навантаження потрапило у Packagist (digitalelvis/neuronai-studio 3.14.3) і дві версії Go‑модуля github.com/onuragtas/docker-env (v1.0.278 і v1.0.280). Дослідники вважають, що основна мета — крадіжка секретів CI; публікації пакетів — побічний ефект. Також відзначено певні перетини з кампанією GhostAction 2025.
Що перевірити власникам репозиторіїв
- Наявність гілки «wfx-docs», тестового PR «docs: dependency audit notes» і прогалин у нумерації запусків workflow.
- Де підтверджено виконання навантаження — терміново відкликати та перегенерувати (замінити) всі секрети й ролі хмар, доступні відповідному workflow.
Фото: BleepingComputer