Дослідження Wiz показує, що компрометація платформи збірки NX внаслідок атаки s1ngularity спричинила суттєві збої в екосистемі JavaScript/TypeScript. За їхніми даними, інцидент торкнувся 2180 облікових записів, розкрив вміст 7200 репозиторіїв, а частина викрадених секретів лишається чинною, зберігаючи ризики для організацій.
Компрометація NX: масштаби інциденту в екосистемі JavaScript/TypeScript
NX — популярний інструмент для монорепозиторіїв і автоматизації збірок, який позиціонується як «build-first AI platform». Широке корпоративне використання посилило ефект компрометації ланцюга постачання.
Перший етап атаки (26–27 серпня 2025 року) охопив близько 1700 користувачів і призвів до витоку понад 2000 унікальних секретів і експозиції близько 20 000 файлів із заражених машин. На другому етапі (28–29 серпня) зловмисники, використовуючи викрадені токени GitHub, переводили приватні репозиторії у публічні, що скомпрометувало ще 480 акаунтів і розкрило дані з 6700 приватних репозиторіїв. Третя фаза (з 31 серпня) була спрямована на окрему організацію і включала публікацію ще 500 приватних репозиторіїв через дві скомпрометовані обліковки.
Техніка атаки: GitHub Actions, шкідливий npm-пакет і telemetry.js
Команда NX виявила першопричину: уразливість workflow в GitHub Actions дозволила виконати довільний код через спеціально сформований заголовок pull request. Цим каналом було опубліковано до npm модифіковані збірки NX із вбудованим скриптом telemetry.js, який запускався під час встановлення.
Вбудоване ПЗ було інфостілером для Linux і macOS, що збирало токени GitHub і npm, SSH-ключі, файли .env, а також дані криптогаманців. Екфільтрація відбувалася у публічні репозиторії GitHub із назвами на кшталт s1ngularity-repository (варіанти із суфіксами -0 та -1). На першому етапі в ланцюг постачання NX було впроваджено щонайменше три різні корисні навантаження.
Автоматизація на базі ІІ: новий рівень полювання за секретами
Особливість інциденту — перше публічно задокументоване використання CLI-інструментів штучного інтелекту (Claude, Google Gemini, Amazon Q) як інструментів атаки на ланцюг постачання. Зловмисники застосовували адаптивні промпти для пошуку конфіденційних даних, ітеративно підвищуючи ефективність виявлення секретів і обходу захистів.
Залишкові ризики: активні токени та розширення шкоди
За оцінкою Wiz, реальна кількість інсталяцій шкідливих версій NX може бути вищою за зафіксовану. Приблизно 100 унікальних npm-токенів — понад 40% від викрадених на першому етапі — залишаються активними. Для GitHub активними є близько 5% токенів. Це створює тривалий ризик несанкціонованого доступу, піводдаленого переміщення (lateral movement) та подальшої компрометації активів.
Уроки для DevSecOps та команд JS/TS
Інцидент наочно демонструє, як компрометація CI/CD і менеджерів пакетів перетворює одну помилку у workflow на масштабну атаку ланцюга постачання. Автоматизація на базі ІІ скорочує час від проникнення до екфільтрації та збільшує площу ураження, що вимагає перегляду моделей довіри і контролів у процесах розробки.
Практичні кроки реагування та зміцнення захисту
Негайні дії: проведіть ротацію всіх потенційно скомпрометованих токенів (GitHub, npm), відкличте SSH-ключі, перевстановіть NX із довірених джерел, перевірте .env та криптогаманці на компрометацію, виконайте ревізію прав доступу до репозиторіїв та організацій.
Зміцнення процесів: мінімізуйте привілеї GITHUB_TOKEN і явно задавайте permissions у workflow; забороніть виконання неперевіреного коду з PR (особливо з форків); валідовуйте та очищуйте метадані PR; використовуйте OIDC для короткоживучих токенів; увімкніть 2FA/SSO і політики обов’язкової ротації секретів; обмежуйте npm-токени за scope і IP/CIDR, застосовуйте provenance/attestations; активуйте secret scanning і моніторинг аномалій у CI/CD та залежностях.
Інцидент s1ngularity — чіткий сигнал переглянути налаштування GitHub Actions і npm, провести інвентаризацію та ротацію секретів і навчити команди швидкому реагуванню на загрози ланцюга постачання. Чим раніше ви стандартизуєте гігієну секретів і контроль виконання в CI/CD, тим менше шансів, що подібні атаки призведуть до ескалації компрометації у вашій організації.