В пакетном менеджере Cargo, применяемом для управления пакетами и сборки проектов на языке Rust, выявлена уязвимость (CVE-2022-46176), допускающая проведение MITM-атаки, позволяющей вклиниться в канал связи с сервером. Уязвимость вызвана отсутствием проверки хостового открытого ключа во время клонирования индексов и зависимостей по SSH, что позволяет перенаправить обращение на подставной сервер при наличии у атакующего возможности перехвата трафика (например, при контроле над беспроводной точкой доступа или компрометации домашнего/офисного маршрутизатора).
Атака может быть совершена в том числе на конфигурации, явно не использующие SSH для обращения к индексам или зависимостям, если в настройках Git разрешена замена HTTPS-соединений к GitHub на SSH (параметр url..insteadOf), что приводит к клонированию индекса репозитория crates.io по SSH.
Уязвимость устранена в выпуске Rust 1.66.1, в котором была реализована проверка соответствия текущего открытого ключа SSH-сервера ключу, который использовался в прошлых сеансах. В случае изменения ключа в новой версии выводится ошибка из-за подозрения в совершении MITM-атаки. При первом соединении вместо подтверждения подлинности серверного открытого ключа теперь также выводится ошибка с информацией о том как добавить открытый ключ в список ключей, заслуживающих доверия, что может повлиять на работу автоматизированных систем сборки, впервые клонирующих индексы или зависимости с определённого хоста.