
По данным StepSecurity, уязвимые релизы получили номера arrayref 0.3.10, append-only-vec 0.1.9 и internment 0.8.7. Во всех трех случаях злоумышленник действовал через один и тот же аккаунт, а arrayref за 90 дней набрал более 53 млн загрузок.
Исследователи описывают схему как подмену зависимости с сохранением остального кода без изменений. В зараженный пакет добавили зависимость от proc-macro1, название которого подделывает популярный proc-macro2.
Скрипт build.rs в составе proc-macro1 запускается автоматически при компиляции. Он собирает инфраструктуру из фрагментов в base64, а затем выбирает полезную нагрузку под конкретную систему: Linux x86-64, Windows x86-64, macOS x86-64 или macOS ARM64.
StepSecurity пишет, что атакующий также выпустил несколько версий четырех собственных crates: aovine, arone, aronenao и tinymember. Их уже удалили из crates.io.
Атака началась 20 августа в 01:17 UTC, когда появился GitHub-аккаунт, выдававший себя за известного разработчика Rust Дэвида Толнея. Затем в реестре crates.io создали похожую учетную запись, после чего в 01:55 опубликовали proc-macro1@1.0.106 как безвредную копию proc-macro2.
Позже вышло вредоносное обновление proc-macro1@1.0.107 в 07:11, а в 07:15 через легитимный аккаунт Дэвида Раунди опубликовали arrayref 0.3.10. Версии arrayref с 0.3.5 по 0.3.9 при этом удалили, что могло подтолкнуть установку зараженного релиза.
Об инциденте сообщили в 07:54, после чего crates.io удалил proc-macro1 в 08:03 и убрал arrayref 0.3.10 из индекса в 08:41. Во время окна примерно в 1,5 часа под угрозой могли оказаться проекты, установившие затронутые версии.
У arrayref более 245 млн загрузок за все время, а у append-only-vec и internment вместе почти 19 млн. Среди проектов, где используется arrayref, исследователи называют blake3, GUI-фреймворки egui, eframe и iced, а также компоненты для Ethereum и Solana.
StepSecurity, SafeDep и Aikido уже опубликовали технический разбор атаки и индикаторы компрометации. Wiz отдельно отмечает, что инфраструктура кампании совпадает с недавними supply-chain-атаками, связанными с КНДР, включая Mastra и axios.
Тем, кто ставил затронутые версии в окно атаки, исследователи советуют проверить Cargo.lock, поискать сброшенные файлы и посмотреть трафик к 23.254.165[.]112 на портах 9089 и 443. Если компрометация подтверждена, нужно сменить доступные учетные данные, CI-токены, signing keys и другие секреты, а среду пересобрать из безопасных бэкапов.
Хакеры скомпрометировали аккаунт сопровождающего Rust-crate arrayref и встроили в него вредоносный код, который запускался на компьютерах разработчиков во время сборки. За 23 минуты они испортили еще два пакета, append-only-vec и internment.
По данным StepSecurity, уязвимые релизы получили номера arrayref 0.3.10, append-only-vec 0.1.9 и internment 0.8.7. Во всех трех случаях злоумышленник действовал через один и тот же аккаунт, а arrayref за 90 дней набрал более 53 млн загрузок.
Исследователи описывают схему как подмену зависимости с сохранением остального кода без изменений. В зараженный пакет добавили зависимость от proc-macro1, название которого подделывает популярный proc-macro2.
Скрипт build.rs в составе proc-macro1 запускается автоматически при компиляции. Он собирает инфраструктуру из фрагментов в base64, а затем выбирает полезную нагрузку под конкретную систему: Linux x86-64, Windows x86-64, macOS x86-64 или macOS ARM64.
StepSecurity пишет, что атакующий также выпустил несколько версий четырех собственных crates: aovine, arone, aronenao и tinymember. Их уже удалили из crates.io.
Атака началась 20 августа в 01:17 UTC, когда появился GitHub-аккаунт, выдававший себя за известного разработчика Rust Дэвида Толнея. Затем в реестре crates.io создали похожую учетную запись, после чего в 01:55 опубликовали proc-macro1@1.0.106 как безвредную копию proc-macro2.
Позже вышло вредоносное обновление proc-macro1@1.0.107 в 07:11, а в 07:15 через легитимный аккаунт Дэвида Раунди опубликовали arrayref 0.3.10. Версии arrayref с 0.3.5 по 0.3.9 при этом удалили, что могло подтолкнуть установку зараженного релиза.
Об инциденте сообщили в 07:54, после чего crates.io удалил proc-macro1 в 08:03 и убрал arrayref 0.3.10 из индекса в 08:41. Во время окна примерно в 1,5 часа под угрозой могли оказаться проекты, установившие затронутые версии.
У arrayref более 245 млн загрузок за все время, а у append-only-vec и internment вместе почти 19 млн. Среди проектов, где используется arrayref, исследователи называют blake3, GUI-фреймворки egui, eframe и iced, а также компоненты для Ethereum и Solana.
StepSecurity, SafeDep и Aikido уже опубликовали технический разбор атаки и индикаторы компрометации. Wiz отдельно отмечает, что инфраструктура кампании совпадает с недавними supply-chain-атаками, связанными с КНДР, включая Mastra и axios.
Тем, кто ставил затронутые версии в окно атаки, исследователи советуют проверить Cargo.lock, поискать сброшенные файлы и посмотреть трафик к 23.254.165[.]112 на портах 9089 и 443. Если компрометация подтверждена, нужно сменить доступные учетные данные, CI-токены, signing keys и другие секреты, а среду пересобрать из безопасных бэкапов.