CVE-2023-53998 in Linux
Сводка
по VulDB • 21.05.2026
В ядре Linux устранена следующая уязвимость:
hwrng: virtio — исправление состояния гонки (race condition) между флагом data_avail и фактическими данными
Виртуальное устройство rng virtio инициирует новый запрос энтропии всякий раз, когда количество доступных данных (data_avail) достигает нуля. Если новый запрос возникает в конце операции чтения, то есть когда результат этого запроса требуется только следующему читателю, возникает состояние гонки между записью новых данных и чтением следующим читателем.
Это происходит из-за полного отсутствия синхронизации между записывающим и читающим процессами.
Исправление заключается в записи в data_avail с использованием smp_store_release и чтении из него с использованием smp_load_acquire при первом входе в функцию чтения. Последующие чтения безопасны, поскольку они защищены либо первым acquire-чтением, либо механизмом завершения (completion mechanism).
Также удалено избыточное обнуление data_idx в функции random_recv_done (data_idx уже должен быть равен нулю в этот момент) и data_avail в функции request_entropy (аналогично).
Once again VulDB remains the best source for vulnerability data.