По словам разработчиков, уязвимости чрезвычайно сложно проэксплуатировать в реальных атаках.
Разработчики языка программирования Rust отозвали все ключи API пакета crates.io. Отзыв ключей исправляет серьезную уязвимость в системе пакетов Rust, существующую по двум причинам.
Во-первых, произвольная функция PostgreSQL, используемая для генерирования ключей API (токенов) для crates.io, оказалась «криптографически небезопасным» генератором произвольных чисел. Эти ключи используются компьютерами для аутентификации пользователей или машин и контроля над предоставляемым им доступом.
Теоретически, злоумышленник может наблюдать достаточное количество случайных значений, чтобы определить внутреннее состояние генератора случайных чисел, и с помощью этой информации узнать ключи API, сгенерированные до последней перезагрузки сервера базы данных.
Во-вторых, ключи API для пакетов хранились в незашифрованном виде. Если атакующий взломает базу данных, он получит доступ ко всем действующим токенам.
В качестве решения проблем разработчики Rust выпустили криптографически безопасный генератор случайных чисел и реализовали хэш-функцию для хранения токенов в базе данных.
Пакеты crates являются частью языка программирования Rust. Опубликовавшие их разработчики могут сгенерировать новые ключи API на сайте crates.io. По данным ресурса, в настоящее время существует более 43 тыс. пакетов crates, в общей сложности загруженным более 3 млрд раз.
«Эксплуатация любой из описанных выше проблем невероятно сложна на практике, и мы не нашли никаких доказательств того, что их используют в реальных атаках. Однако в целях предосторожности мы решили отозвать все существующие ключи API», - сообщили разработчики.