Популярный пакет arrayref в Crates[.]io заразили инфостилером - «Новости»
- 14:30, 22-авг-2026
- Вёрстка / Новости / Заработок / Отступы и поля / Преимущества стилей / Изображения / Текст / Самоучитель CSS / Сайтостроение
- Smith
- 0
Злоумышленники скомпрометировали аккаунт мейнтейнера сразу нескольких популярных Rust-пакетов и опубликовали вредоносные версии arrayref, internment и append-only-vec. Малварь автоматически запускалась во время сборки проекта.
Пакеты Rust (они же крейты — crates) распространяются через Crates.io — аналог npm для jаvascript, PyPI для Python и RubyGems для Ruby.
ИБ-специалисты компаний StepSecurity, Wiz, SafeDep и Aikido сообщают, что атакующие получили доступ к аккаунту Дэвида Раунди (David Roundy), который владеет arrayref и другими пакетами. Однако пока неизвестно, как именно произошел этот взлом.
20 августа 2026 года злоумышленники опубликовали от лица аккаунта Раунди новые версии arrayref (0.3.10), internment (0.8.7) и append-only-vec (0.1.9). Все три пакета получили новую вредоносную зависимость — proc-macro1, название которой имитировало популярный пакет proc-macro2.
Так как исходный код proc-macro1 представлял собой копию настоящего proc-macro2, сборка проходила как обычно, однако в скрипте build.rs, который Cargo автоматически запускает при компиляции, скрывался вредонос. То есть малварь могла сработать при запуске cargo build, cargo check или cargo test.
Вредоносный скрипт определял ОС и архитектуру процессора жертвы, после чего загружал подходящий пейлоад для Windows, Linux или macOS. Так, в Unix-системах пейлоад сохранялся как /tmp/rust-setup, а в Windows использовал PowerShell и скрытый запуск через wscript.exe.
Затем малварь связывалась со своим управляющим сервером, закреплялась в системе через Registry Run в Windows, LaunchAgent в macOS или сервис systemd, запущенный от имени пользователя, в Linux. По данным исследователей Wiz, вредонос также обращался к базам данных Chrome, Brave и Edge. Впрочем, специалисты Nextron отмечают, что изученный ими Windows-вариант стилера извлекал адреса сайтов и имена пользователей, однако не читал password_value.
Внимание к этой атаке было привлечено из-за огромной популярности arrayref. Этот пакет насчитывает более 245 млн скачиваний за все время своего существования, и только за последние 90 дней его загружали почти 54 млн раз. От arrayref зависят сотни других пакетов, включая компоненты, используемые в криптографии, GUI-фреймворках и блокчейн-проектах.
Кроме того, одновременно с публикацией arrayref 0.3.10 злоумышленники отозвали версии с 0.3.5 по 0.3.9. То есть вредоносный релиз остался единственной актуальной версией, которую Cargo не помечал как отозванную.
Команда Rust Security Response Team удалила зараженные версии пакетов спустя 86–107 минут после их публикации. Кроме того, из Crates.io убрали proc-macro1, а также связанные с этой атакой пакеты proc-macro-en, aovine, arone, aronenao и tinymember.
В RustSec заявляют, что пока не обнаружили свидетельств реального использования вредоносных релизов. Однако ИБ-специалисты рекомендуют разработчикам, которые собирали проекты во время атаки, проверить Cargo.lock и кеш ~/.cargo/registry/cache, а также поискать следы присутствия малвари: в Linux и macOS вредонос сохранялся как /tmp/rust-setup, а в Windows создавал файлы %TEMP%ust-setup.ps1 и %TEMP%ust-setup-launch.vbs. Также среди индикаторов компрометации фигурирует адрес 23.254.165[.]112, который на разных портах играл роль управляющего сервера и хоста для скачивания пейлоадов.
Если компрометация подтвердилась, рекомендуется немедленно сменить учетные данные, CI-токены, ключи подписи и другие секреты, которые могли быть доступны атакующим, а также пересобрать окружение. Подчеркивается, что в случае arrayref безопасной считается версия 0.3.9 или более ранняя.
Следует отметить, что по информации исследователей из компании Wiz, инфраструктура этой вредоносной кампании имеет сходство с недавними атаками на цепочки поставок Mastra и Axios, за которыми предположительно стояли северокорейские хакеры. Однако пока эксперты не связывают новый инцидент с какой-либо конкретной группировкой.















Комментарии (0)