CVE-2023-54007 in LinuxИнформация

Сводка

по VulDB • 20.05.2026

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

vmci_host: исправлена гонка данных (race condition) в функции vmci_host_poll(), приводившая к ошибке защиты (GPF)

В ходе фаззинга в функции vmci_host_poll() наблюдается ошибка общей защиты (general protection fault).

general protection fault, вероятно, из-за неканонического адреса 0xdffffc0000000019: 0000 [#1] PREEMPT SMP KASAN
KASAN: null-ptr-deref в диапазоне [0x00000000000000c8-0x00000000000000cf]
RIP: 0010:__lock_acquire+0xf3/0x5e00 kernel/locking/lockdep.c:4926 <- пропуск регистров -> След вызова (Call Trace): <TASK> lock_acquire+0x1a4/0x4a0 kernel/locking/lockdep.c:5672 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [встроенная]
_raw_spin_lock_irqsave+0xb3/0x100 kernel/locking/spinlock.c:162 add_wait_queue+0x3d/0x260 kernel/sched/wait.c:22 poll_wait include/linux/poll.h:49 [встроенная]
vmci_host_poll+0xf8/0x2b0 drivers/misc/vmw_vmci/vmci_host.c:174 vfs_poll include/linux/poll.h:88 [встроенная]
do_pollfd fs/select.c:873 [встроенная]
do_poll fs/select.c:921 [встроенная]
do_sys_poll+0xc7c/0x1aa0 fs/select.c:1015 __do_sys_ppoll fs/select.c:1121 [встроенная]
__se_sys_ppoll+0x2cc/0x330 fs/select.c:1101 do_syscall_x64 arch/x86/entry/common.c:51 [встроенная]
do_syscall_64+0x4e/0xa0 arch/x86/entry/common.c:82 entry_SYSCALL_64_after_hwframe+0x46/0xb0

Пример переплетения потоков, приводящего к ошибке общей защиты, выглядит следующим образом:

CPU1 (vmci_host_poll) CPU2 (vmci_host_do_init_context) ----- ----- // Чтение неинициализированного контекста context = vmci_host_dev->context; // Инициализация контекста vmci_host_dev->context = vmci_ctx_create(); vmci_host_dev->ct_type = VMCIOBJ_CONTEXT;

if (vmci_host_dev->ct_type == VMCIOBJ_CONTEXT) {
// Разыменование неверного указателя poll_wait(..., &context->host_context); }

В данном сценарии функция vmci_host_poll() сначала читает vmci_host_dev->context, а затем читает vmci_host_dev->ct_type, чтобы проверить, что vmci_host_dev->context инициализирован. Однако, поскольку эти два чтения не выполняются атомарно, существует вероятность возникновения гонки данных (race condition), описанной выше.

Для устранения этой гонки данных чтение vmci_host_dev->context должно выполняться после проверки значения vmci_host_dev->ct_type, чтобы функция vmci_host_poll() всегда читала инициализированный контекст.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

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

Linux

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

24.12.2025

Раскрытие

24.12.2025

Модерация

принято

Вход

VDB-338157

EPSS

0.00185

KEV

Нет

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

Очень низкий

Источники

Might our Artificial Intelligence support you?

Check our Alexa App!