CVE-2022-49660 in LinuxИнформация

Сводка

по VulDB • 10.06.2026

В ядре Linux устранена следующая уязвимость:

xen/arm: Исправление состояния гонки (race condition) в учете P2M на основе RB-дерева

Во время жизненного цикла PV-драйверов отображения добавляются в RB-дерево с помощью функции set_foreign_p2m_mapping(), которая вызывается из gnttab_map_refs(), и удаляются функцией clear_foreign_p2m_mapping(), вызываемой из gnttab_unmap_refs(). Поскольку обе эти функции вызывают __set_phys_to_machine_multi() для обновления RB-дерева, эта функция может выполняться конкурентно.

Существует блокировка «p2m_lock» для защиты от одновременного доступа, однако проблема заключается в том, что первое чтение поля «phys_to_mach.rb_node» внутри __set_phys_to_machine_multi() не защищено этой блокировкой, что может привести к неверному обновлению отображений (в данном случае — удалению) в RB-дереве.

В моей среде связанная с этим проблема возникает редко и только при работе бэкенда PV net; функция xen_add_phys_to_mach_entry() утверждает, что не может добавить новое отображение pfn-mfn в дерево, так как оно уже существует, что приводит к ошибке при отображении чужих страниц (foreign pages).

Однако могут быть и другие негативные последствия, связанные с небезопасным чтением корня дерева, такие как use-after-free и т. д.

Заодно исправлено аналогичное использование в __pfn_to_mfn(), поэтому инициализация «struct rb_node *n» выполняется при удержании блокировки «p2m_lock» в обеих функциях для предотвращения возможных негативных последствий.

Это CVE-2022-33744 / XSA-406.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Ответственный

Linux

Резервировать

26.02.2025

Раскрытие

26.02.2025

Модерация

принято

Вход

VDB-297196

EPSS

0.00000

KEV

Нет

Деятельности

Очень низкий

Источники

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!