Дослідники виявили шкідливий npm-пакет @acitons/artifact, який маскувався під офіційний @actions/artifact і був спеціально заточений під атаки на репозиторії, що належать GitHub. Мета — виконатися всередині GitHub Actions, викрасти токени збірки й використати їх для публікації підроблених артефактів уже від імені GitHub.

Veracode повідомляє, що автор пакета під ніком blakesdev завантажив принаймні шість шкідливих версій — з 4.0.12 по 4.0.17. У них був прописаний postinstall-хук, який після встановлення пакета тягнув та запускав додатковий шкідливий код. Нині в npm доступна версія 4.0.10 без цього хука, а підозрілі білди з реєстру прибрали, але на момент виявлення пакет уже встиг набрати понад 47 тис. завантажень.
Після встановлення модифікований
@acitons/artifactзавантажував бінарник harness з окремого GitHub-акаунта. Той виявився заплутаним shell-скриптом із «таймером» — код не запускався, якщо дата на хості пізніша за 6 листопада 2025 року (UTC). Далі він викликавverify.js, який перевіряв наявність змінних середовищаGITHUB_, тобто фактично підтверджував, що код крутиться в контексті GitHub Actions.
Якщо перевірка проходила, скрипт забирав ці змінні (разом із токенами доступу до репозиторію), шифрував їх і відправляв у текстовий файл на піддомені
app.github.dev. Veracode підкреслює: логіка явно заточена під репозиторії, що належать організації GitHub, а також під один тестовий акаунт із рандомним іменем. Це робить кампанію максимально таргетованою, а не масовим «фішингом по npm».
Окремо дослідники знайшли ще один пакет із подібним функціоналом — з рандомним іменем 8jfiesaf83. Його вже видалили з реєстру, але він встиг набрати трохи більше тисячі завантажень.
Атаки через ланцюжок постачання ПЗ (software supply chain) стали одним із головних векторів для злочинців: замість ламати конкретну компанію, достатньо підмінити бібліотеку, яку вона використовує. Typosquatting — класична техніка: зловмисник реєструє пакет із назвою, схожою на популярний оригінал (@acitons/artifact vs @actions/artifact) і чекає, поки хтось помилиться в залежностях.
npm, PyPI та інші реєстри регулярно чистять від шкідливих пакетів, але ланцюг довіри все одно залишається слабким місцем. Ситуація з @acitons/artifact показує ще й новий рівень амбіцій: атакувати не просто будь-які CI/CD-пайплайни, а інфраструктуру самого GitHub, потенційно отримавши можливість випускати фейкові збірки «від GitHub» та використовувати їх далі по ланцюжку.
Історія з @acitons/artifact — чергове нагадування, що npm install давно перестав бути «просто командою». Розробникам варто:
уважно перевіряти назви пакетів і джерело публікації;
фіксувати версії залежностей і стежити за підозрілими оновленнями;
запускати сканери supply-chain-ризиків і аналізувати
postinstall/preinstall-хуки;
обмежувати повноваження токенів GitHub Actions та використовувати окремі облікові дані тільки для CI.
Інакше один невинний typo в package.json може перетворити ваш пайплайн на точку входу для атаки рівня GitHub.