CVE-2023-54007 in Linuxinformation

Résumé

par VulDB • 04/06/2026

Dans le noyau Linux, la vulnérabilité suivante a été corrigée :

vmci_host : correction d'une condition de course dans vmci_host_poll() provoquant une GPF (General Protection Fault)

Lors des tests par fuzzing, une General Protection Fault est observée dans vmci_host_poll().

general protection fault, probablement pour l'adresse non canonique 0xdffffc0000000019 : 0000 [#1] PREEMPT SMP KASAN
KASAN: null-ptr-deref dans la plage [0x00000000000000c8-0x00000000000000cf]
RIP : 0010:__lock_acquire+0xf3/0x5e00 kernel/locking/lockdep.c:4926 <- omission des registres -> Trace d'appel : <TASK> lock_acquire+0x1a4/0x4a0 kernel/locking/lockdep.c:5672 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline]
_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 [inline]
vmci_host_poll+0xf8/0x2b0 drivers/misc/vmw_vmci/vmci_host.c:174 vfs_poll include/linux/poll.h:88 [inline]
do_pollfd fs/select.c:873 [inline]
do_poll fs/select.c:921 [inline]
do_sys_poll+0xc7c/0x1aa0 fs/select.c:1015 __do_sys_ppoll fs/select.c:1121 [inline]
__se_sys_ppoll+0x2cc/0x330 fs/select.c:1101 do_syscall_x64 arch/x86/entry/common.c:51 [inline]
do_syscall_64+0x4e/0xa0 arch/x86/entry/common.c:82 entry_SYSCALL_64_after_hwframe+0x46/0xb0

L'entrelacement de threads suivant, qui provoque la General Protection Fault :

CPU1 (vmci_host_poll) CPU2 (vmci_host_do_init_context) ----- ----- // Lecture du contexte non initialisé context = vmci_host_dev->context; // Initialisation du contexte vmci_host_dev->context = vmci_ctx_create(); vmci_host_dev->ct_type = VMCIOBJ_CONTEXT;

if (vmci_host_dev->ct_type == VMCIOBJ_CONTEXT) {
// Déréférencement du mauvais pointeur poll_wait(..., &context->host_context); }

Dans ce scénario, vmci_host_poll() lit d'abord vmci_host_dev->context, puis lit vmci_host_dev->ct_type pour vérifier que vmci_host_dev->context est initialisé. Cependant, comme ces deux lectures ne sont pas exécutées de manière atomique, il existe un risque de condition de course comme décrit ci-dessus.

Pour corriger cette condition de course, la lecture de vmci_host_dev->context doit être effectuée après avoir vérifié la valeur de vmci_host_dev->ct_type afin que vmci_host_poll() lise toujours un contexte initialisé.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Responsable

Linux

Réserver

24/12/2025

Divulgation

24/12/2025

Modérer

accepté

Entrée

VDB-338157

CPE

prêt

EPSS

0.00192

KEV

non

Activités

très faible

Sources

Want to stay up to date on a daily basis?

Enable the mail alert feature now!