По словам разработчиков, уязвимости чрезвычайно сложно проэксплуатировать в реальных атаках.

Разработчики языка программирования Rust отозвали все ключи API пакета crates.io. Отзыв ключей исправляет серьезную уязвимость в системе пакетов Rust, существующую по двум причинам.

Во-первых, произвольная функция PostgreSQL, используемая для генерирования ключей API (токенов) для crates.io, оказалась «криптографически небезопасным» генератором произвольных чисел. Эти ключи используются компьютерами для аутентификации пользователей или машин и контроля над предоставляемым им доступом.

Теоретически, злоумышленник может наблюдать достаточное количество случайных значений, чтобы определить внутреннее состояние генератора случайных чисел, и с помощью этой информации узнать ключи API, сгенерированные до последней перезагрузки сервера базы данных.

Во-вторых, ключи API для пакетов хранились в незашифрованном виде. Если атакующий взломает базу данных, он получит доступ ко всем действующим токенам.

В качестве решения проблем разработчики Rust выпустили криптографически безопасный генератор случайных чисел и реализовали хэш-функцию для хранения токенов в базе данных.

Пакеты crates являются частью языка программирования Rust. Опубликовавшие их разработчики могут сгенерировать новые ключи API на сайте crates.io. По данным ресурса, в настоящее время существует более 43 тыс. пакетов crates, в общей сложности загруженным более 3 млрд раз.

«Эксплуатация любой из описанных выше проблем невероятно сложна на практике, и мы не нашли никаких доказательств того, что их используют в реальных атаках. Однако в целях предосторожности мы решили отозвать все существующие ключи API», — сообщили разработчики.

Источник: securitylab