У популярний інструмент для розробників підклали шкідливий код. Дослідники 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 десятки заражених версій пакетів.

Одна з найпопулярніших бібліотек JavaScript Axios виявилася зараженою трояном

Понад 29 000 завантажень: через підробний інструмент OpenAI Codex у репозиторії npm масово викрадали токени автентифікації

Читайте головні IT-новини країни в нашому Telegram
