В ядре Linux устранена следующая уязвимость: vsock/virtio: чтение вирт-очередей под рабочими блокировками Зафиксируйте bd50c5dc182b («vsock/virtio: добавьте поддержку устройства suspend/resume") сделал переход флагов *_run с false на true, когда восстановление устанавливает замену виртуальных очередей. RX, TX и работники событий прочитайте их виртуальную очередь перед блокировкой и проверкой соответствующего флага, поэтому работник, задержанный при заморозке и восстановлении, может наблюдать за заменой рабочее состояние очереди, сохраняя при этом указатель на удаленную очередь. Прочитайте каждую виртуальную очередь под ее мьютексом после проверки флага выполнения, сохраняя указатель и состояние в одной и той же очереди.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: vsock/virtio: read virtqueues under worker locks Commit bd50c5dc182b ("vsock/virtio: add support for device suspend/resume") made the *_run flags transition from false to true when restore installs replacement virtqueues. The RX, TX and event workers read their virtqueue before locking and checking the corresponding flag, so a worker delayed across freeze and restore can observe the replacement queue's running state while retaining a pointer to the deleted queue. Read each virtqueue under its mutex after checking the run flag, keeping the pointer and state in the same queue generation.
Характеристики атаки
Последствия
Строка CVSS v3.1