У популярний інструмент для розробників було впроваджено шкідливий код. Фахівці з Aikido виявили щонайменше десять скомпрометованих версій npm-пакета @7nohe/openapi-react-query-codegen, котрий завантажують більше ніж 150 000 разів щотижня. Після інсталяції він міг шукати на комп’ютері ключі та токени авторизації, а потім використовувати їх для розповсюдження на інші проєкти.

У популярний інструмент для розробників було впроваджено шкідливий код. Фахівці з Aikido виявили щонайменше десять скомпрометованих версій npm-пакета @7nohe/openapi-react-query-codegen, котрий завантажують більше ніж 150 000 разів щотижня. Після інсталяції він міг шукати на комп’ютері ключі та токени авторизації, а потім використовувати їх для розповсюдження на інші проєкти.
Про це повідомляє компанія Aikido, що спеціалізується на кібербезпеці. Сам творець пакета також розмістив попередження на GitHub, де інцидент оцінили як критичний — 9,6 з 10.
Цей пакет — утиліта для React-розробників. Вона допомагає їм автоматично генерувати код для взаємодії з API через TanStack Query, відому бібліотеку для React. Вона спрощує вилучення даних із сервера. Приміром, завантаження переліку товарів, профілю користувача чи повідомлень через API. Вона також сприяє управлінню завантаженням, кешуванням та оновленням цих даних. Таким чином, розробник може інтегрувати такий пакет до свого проєкту, і разом із ним автоматично встановиться сторонній код.
Проблема виникла через автоматизацію процесу випуску нових версій за допомогою GitHub Actions — системи, що здатна автономно виконувати різноманітні операції з кодом, зокрема компілювати та розповсюджувати нові версії пакета.
Один із таких робочих процесів було налаштовано ненадійно. Сторонній суб’єкт міг залишити спеціальний коментар під pull request і активувати процес, який виконував код із цього pull request і мав повноваження для публікації нової версії пакета. Цими можливостями скористався зловмисник. Він додав шкідливий код і через офіційну систему проєкту опублікував інфіковані версії пакета в npm — репозиторії, з якого розробники встановлюють подібні інструменти у свої проєкти. Завдяки цьому вони навіть мали справжні підтвердження авторства.
Заражений пакет фактично функціонував як викрадач облікових даних. Він шукав на комп’ютері розробника все, що могло надати доступ до інших сервісів і проєктів. Наприклад:
токени GitHub, npm, PyPI та RubyGems;ключі доступу до AWS, Azure та Google Cloud;SSH-ключі;файли .env, де часто зберігаються паролі та API-ключі;доступи до Kubernetes і HashiCorp Vault;конфігурації Docker та Git;дані криптогаманців;дані сесій Signal, Telegram, Discord і Slack;конфігураційні файли Claude.
Більше того, якщо шкідливе програмне забезпечення виявляло токен, що надавав дозвіл на публікацію npm-пакетів, воно шукало інші пакети цього користувача, додавало до них власний код і публікувало нові інфіковані версії. Аналогічно він міг поширюватися через PyPI та RubyGems — сховища пакетів для інших мов програмування. З GitHub-акаунтами схема була подібною. Отримавши токени, шкідливе програмне забезпечення отримувало доступ до репозиторіїв, доступних користувачеві, та додавало туди файли, здатні виконувати шкідливий код у різних інструментах розробника.
Дослідники вже оприлюднили індикатори, за допомогою яких можна перевірити систему на наявність інфекції. Зокрема, у корені пакета може знаходитись файл 3FWCvzduYZg.js, а в системній тимчасовій директорії — папки, назви яких починаються з trinnyyyy-.
Раніше dev.ua інформував про аналогічну атаку на TanStack. Тоді зловмисники використали вразливість у GitHub Actions і змогли опублікувати в npm десятки інфікованих версій пакетів.
Источник: www.vesti-ua.net
