В выпущенной четыре дня назад библиотеке LibreSSL, которая создавалась как более простой и надежный форк OpenSSL, была выявлена серьезная уязвимость в генераторе псевдослучайных числе. Уязвимость была обнаружена Эндрю Айером (Andrew Ayer) и состоит в том что вызовы функции RAND_bytes в сочетании с использованием системного вызова fork могли генерировать одинаковые последовательности псевдослучайных данных.
Это происходит из-за недостаточной проверки факта использования вызова fork, который основывался на различии идентификатора процесса у родительского и дочернего процесса, но не учитывает что у второго поколения дочерних процессов идентификатор может совпадать с таковым у первоначально родителя. Для того чтобы избежать такого поведения в OpenSSL существует специальная функция RAND_poll, однако в LibreSSL эта функция была отключена с целью упрощения кода. Таким образом, прямая замена OpenSSL на LibreSSL может привести к изменению поведения программ, которые используют RAND_poll.
В дополнение автор сообщает о существовании схожей проблемы при использовании вызова chroot.
Разработчики LibreSSL в свою очередь признали существование проблемы, но заявили, что код, приведенный Эндрю Айером, не является показательным и не используется в реальных приложениях. К сожалению данная новость при всей ее значимости отсутствует на официальном сайте проекта LibreSSL, т.к. его разработчики в настоящее время «слишком заняты удалением лишнего кода».
>>> Подробности