CVE-2026-43232 in Linuxinformación

Resumen

por VulDB • 2026-05-19

En el log proporcionado, se detecta un **Use-After-Free (UAF)** en el subsistema de ACPI PCI Hotplug (`acpiphp`).

### Análisis del Problema

1. **Tipo de Error**: `kasan: bad access detected` indica que el kernel intentó acceder a memoria que ya había sido liberada. 2. **Dirección Buggy**: `ffff88800aad1000` (28 bytes dentro de una región de 1024 bytes liberada). 3. **Cache**: `kmalloc-1k` (objeto de 1024 bytes). 4. **Liberación (Free)**: * Ocurre en `fst_remove_one` -> `pci_device_remove` -> `disable_slot` -> `acpiphp_disable_and_eject_slot`. * Esto sucede durante la **eliminación** de un dispositivo PCI (hot-unplug). 5. **Acceso Incorrecto (Use)**: * Ocurre en `acpiphp_hotplug_notify` -> `acpi_device_hotplug`. * Esto sucede durante una **notificación de hotplug** (probablemente un evento de inserción o cambio de estado).

### Causa Raíz Probable

El problema es una **condición de carrera (race condition)** entre: * El hilo que está **eliminando** el dispositivo (`fst_remove_one` libera la memoria). * El hilo que está **procesando una notificación** de hotplug (`acpiphp_hotplug_notify` accede a la memoria ya liberada).

Esto sugiere que: * La notificación de hotplug (`acpi_hotplug_work_fn`) se ejecuta **después** de que el dispositivo haya sido eliminado y su memoria liberada. * No hay una sincronización adecuada para evitar que `acpiphp_hotplug_notify` acceda a estructuras que ya fueron liberadas por `fst_remove_one`.

### Posibles Soluciones

1. **Verificar la sincronización de hotplug**: * Asegurarse de que `acpiphp_hotplug_notify` no se ejecute si el dispositivo ya está en proceso de eliminación. * Revisar si se está usando correctamente `pci_dev_get()`/`pci_dev_put()` para mantener una referencia al dispositivo mientras se procesa la notificación.

2. **Revisar `fst_remove_one`**: * ¿Se está liberando la memoria correctamente? ¿Se está esperando a que todas las notificaciones pendientes se completen antes de liberar la memoria? * Podría ser necesario usar `synchronize_rcu()` o mecanismos similares para asegurar que no haya accesos pendientes.

3. **Revisar `acpiphp_hotplug_notify`**: * ¿Se está verificando si el dispositivo sigue siendo válido antes de acceder a sus estructuras? * Podría ser necesario agregar una verificación de referencia (`pci_dev_get()`) al inicio de la notificación y liberarla (`pci_dev_put()`) al final.

### Pasos para Diagnosticar

1. **Reproducir el error**: Intentar insertar/extraer el dispositivo PCI repetidamente para ver si el error es reproducible. 2. **Habilitar KASAN**: Asegurarse de que KASAN esté habilitado para obtener más detalles sobre el acceso incorrecto. 3. **Revisar el código fuente**: * `drivers/pci/hotplug/acpiphp_native.c` (o similar, dependiendo de la versión del kernel). * `drivers/firmware/efi/efi-pstore.c` (si `fst` se refiere a `efi-pstore`). 4. **Buscar parches recientes**: Ver si hay parches conocidos para este problema en versiones recientes del kernel.

### Conclusión

El error es un **Use-After-Free** en `acpiphp` debido a una condición de carrera entre la eliminación del dispositivo y la notificación de hotplug. La solución probablemente implique mejorar la sincronización para evitar que la notificación acceda a memoria ya liberada.

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

Responsable

Linux

Reservar

2026-05-01

Divulgación

2026-05-06

Moderación

aceptado

Artículo

VDB-361365

CPE

listo

EPSS

0.00049

KEV

no

Actividades

muy bajo

Fuentes

Do you want to use VulDB in your project?

Use the official API to access entries easily!