Неверная классификация успеха в RDSEED вынуждает ограничивать инструкцию в серверных и клиентских системах.
Инженер Meta сообщил в рассылке разработчиков ядра Linux о сбое в работе инструкции RDSEED на процессорах AMD с микроархитектурой Zen 5. В серии тестов команда заметила, что RDSEED примерно в одном случае из десяти возвращает значение 0 одновременно с флагом успешного завершения операции. Ноль обычно приходит только при неудаче и сопровождается другим состоянием флагов. Это выглядит как ошибка в определении результата внутри процессора и указывает на архитектурную проблему.
RDSEED предоставляет доступ к аппаратному источнику энтропии и используется ядром Linux как один из кирпичиков для формирования случайности. Источников несколько, поэтому выявленный сбой не ухудшает качество случайных чисел в системе. Тем не менее для безопасности предложен патч, который отключает RDSEED на части систем с Zen 5. Изначально проблема проявилась на серверных EPYC Turin, позже её воспроизвели и на другой модели с той же архитектурой, поэтому разработчики предлагают не ограничиваться выборочными блокировками и запретить RDSEED на всех чипах семейства Zen 5 до разъяснений со стороны AMD.
Сбой удалось надёжно воспроизвести под высокой нагрузкой. Тест запускал по два потока на ядро, один поток постоянно вызывал RDSEED, другой создавал интенсивное использование памяти. Такое сочетание стабильно давало некорректные результаты. Временное решение для Linux выполнено по образцу ранее известной проблемы RDSEED в чипе Zen 2 Cyan Skillfish. Ранее у AMD уже встречались отдельные инциденты с инструкцией RDRAND после выхода системы из спящего режима, что подтверждает необходимость дополнительной проверки блоков аппаратной генерации случайных чисел.
Разработчики ядра уже подготовили изменения, которые снимают признак поддержки RDSEED на затронутых конфигурациях и выводят предупреждение в журнал. Пользователям и администраторам ничего делать не требуется, обновление ядра само отключит небезопасную функциональность. Когда AMD опубликует разъяснения и исправления, поддержку RDSEED можно будет вернуть без ущерба для совместимости. Ядро продолжит собирать энтропию из других источников, работа систем останется стабильной и предсказуемой.