Уязвимость в пакетном менеджере Cargo, применяемом в экосистеме Rust

В пакетном менеджере Cargo, применяемом для управления пакетами и сборки проектов на языке Rust, выявлена уязвимость (CVE-2022–46176), допускающая проведение MITM-атаки, позволяющей вклиниться в канал связи с сервером. Уязвимость вызвана отсутствием проверки хостового открытого ключа во время клонирования индексов и зависимостей по SSH, что позволяет перенаправить обращение на подставной сервер при наличии у атакующего возможности перехвата трафика (например, при контроле над беспроводной точкой доступа или компрометации домашнего/офисного маршрутизатора).

Атака может быть совершена в том числе на конфигурации, явно не использующие SSH для обращения к индексам или зависимостям, если в настройках Git разрешена замена HTTPS-соединений к GitHub на SSH (параметр url.‹base›.insteadOf), что приводит к клонированию индекса репозитория crates.io по SSH.

Уязвимость устранена в выпуске Rust 1.66.1, в котором была реализована проверка соответствия текущего открытого ключа SSH-сервера ключу, который использовался в прошлых сеансах. В случае изменения ключа в новой версии выводится ошибка из-за подозрения в совершении MITM-атаки. При первом соединении вместо подтверждения подлинности серверного открытого ключа теперь также выводится ошибка с информацией о том как добавить открытый ключ в список ключей, заслуживающих доверия, что может повлиять на работу автоматизированных систем сборки, впервые клонирующих индексы или зависимости с определённого хоста.



Источник: http://www.opennet.ru/opennews/art.shtml? num=58458

© OpenNet