https://safedep.io/arrayref-proc-macro1-rust-build-time-malware/
https://blog.rust-lang.org/2026/08/20/supply-chain-attack-on-arrayref/
Я давно перестал писать про любые supply chain attack, хотя раньше писал много, потому что их стало очень много разных, и по их поводу уже сказано все, что нужно было сказать. Основной вывод - вы должны сами следить за зависимостями, а не полагаться на дядю, дядя перд вами не отвечает за качество своей работы, потому что денег за нее вы ему не платите.
Поэтому горячо поддерживаю https://x.com/oxcrows/status/2090464985403248740?s=52&t=ZqOdDqap7VWxGoQoRNgXNg:
"C/C++ are unironically safer than Rust, when it comes to supply chain attacks. Mainly because build system in C/C++ sucks, horribly. So everyone vendors their dependencies"
Но эта атака довольно интересная, потому что она показывает существенную уязвимость в компиляторе Rust, основанную на том, что компилятор Rust загружает .so для обработки proc macro (https://t.me/itpgchannel/1543 https://t.me/itpgchannel/1301 https://t.me/itpgchannel/192 https://t.me/itpgchannel/98).
Поэтому он никак не может ограничить build стадию, не ограничив одновременно и себя. Хочет уметь писать в /tmp, значит, и загружаемая .so будет уметь писать в /tmp. Хочет cargo уметь ходить по сети - ну вы поняли.
#trustme, как и #mrustc, имеет процессную модель обработки proc macro, и может ограничивать свои subprocess с макросами как угодно, и такого рода атакам не подвержен.
Надеюсь, этот случай заставит одуматься наркоманов из rust foundation, и переделать это место без загрузки .so.
https://blog.rust-lang.org/2026/08/20/supply-chain-attack-on-arrayref/
Я давно перестал писать про любые supply chain attack, хотя раньше писал много, потому что их стало очень много разных, и по их поводу уже сказано все, что нужно было сказать. Основной вывод - вы должны сами следить за зависимостями, а не полагаться на дядю, дядя перд вами не отвечает за качество своей работы, потому что денег за нее вы ему не платите.
Поэтому горячо поддерживаю https://x.com/oxcrows/status/2090464985403248740?s=52&t=ZqOdDqap7VWxGoQoRNgXNg:
"C/C++ are unironically safer than Rust, when it comes to supply chain attacks. Mainly because build system in C/C++ sucks, horribly. So everyone vendors their dependencies"
Но эта атака довольно интересная, потому что она показывает существенную уязвимость в компиляторе Rust, основанную на том, что компилятор Rust загружает .so для обработки proc macro (https://t.me/itpgchannel/1543 https://t.me/itpgchannel/1301 https://t.me/itpgchannel/192 https://t.me/itpgchannel/98).
Поэтому он никак не может ограничить build стадию, не ограничив одновременно и себя. Хочет уметь писать в /tmp, значит, и загружаемая .so будет уметь писать в /tmp. Хочет cargo уметь ходить по сети - ну вы поняли.
#trustme, как и #mrustc, имеет процессную модель обработки proc macro, и может ограничивать свои subprocess с макросами как угодно, и такого рода атакам не подвержен.
Надеюсь, этот случай заставит одуматься наркоманов из rust foundation, и переделать это место без загрузки .so.