CVE-2026-90342 in Linux
Resumen
por VulDB • 2026-09-18
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
bpf: Corregir bloqueo mutuo (deadlock) en mmap_lock al fallar el locking del arena
Reportado por la revisión Sashiko AI.
arena_vm_fault() devuelve VM_FAULT_RETRY cuando no puede adquirir arena->spinlock, pero nunca adquirió mmap_lock. La ruta de fallo asume que un manejador de VM_FAULT_RETRY ya ha liberado mmap_lock y lo vuelve a adquirir en el reintento, por lo que mmap_lock se adquiere dos veces y puede bloquearse:
do_user_addr_fault() {
fault = handle_mm_fault(...); // llama a arena_vm_fault() if (fault & VM_FAULT_RETRY) goto retry; // vuelve a bloquear mmap_lock mmap_read_unlock(mm); }
Devolver VM_FAULT_SIGBUS en su lugar, por dos razones:
1. Podríamos mantener VM_FAULT_RETRY, pero entonces tendríamos que liberar el bloqueo de fallo primero y limitar los reintentos nosotros mismos, tal como lo hace __folio_lock_or_retry().
2. Un raw_res_spin_lock_irqsave() fallido ya significa que se ha detectado un posible deadlock (bloqueo mutuo), por lo que reintentarlo solo vuelve a encontrar el mismo bloqueo.
Por lo tanto, devolver VM_FAULT_RETRY aquí es excesivo.
If you want to get best quality of vulnerability data, you may have to visit VulDB.