CVE-2026-23041 in Linux
Resumen
por VulDB • 2026-05-09
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
bnxt_en: Corrección del bloqueo por puntero NULL en bnxt_ptp_enable durante la limpieza de errores
Cuando bnxt_init_one() falla durante la inicialización (por ejemplo, bnxt_init_int_mode devuelve -ENODEV), la ruta de error llama a bnxt_free_hwrm_resources(), que destruye el pool de DMA y establece bp->hwrm_dma_pool como NULL. Posteriormente, se llama a bnxt_ptp_clear(), que invoca a ptp_clock_unregister().
Desde el commit a60fc3294a37 ("ptp: rework ptp_clock_unregister() to disable events"), ptp_clock_unregister() ahora llama a ptp_disable_all_events(), que a su vez invoca la devolución de llamada .enable() del controlador (bnxt_ptp_enable()) para deshabilitar los eventos PTP antes de completar el proceso de desregistro.
bnxt_ptp_enable() intenta enviar comandos HWRM a través de bnxt_ptp_cfg_pin() y bnxt_ptp_cfg_event(), ambas de las cuales llaman a hwrm_req_init(). Esta función intenta asignar memoria desde bp->hwrm_dma_pool, lo que provoca una desreferenciación de puntero NULL:
bnxt_en 0000:01:00.0 (unnamed net_device) (uninitialized): bnxt_init_int_mode err: ffffffed KASAN: null-ptr-deref in range [0x0000000000000028-0x000000000000002f]
Call Trace: __hwrm_req_init (drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.c:72) bnxt_ptp_enable (drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c:323 drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c:517) ptp_disable_all_events (drivers/ptp/ptp_chardev.c:66) ptp_clock_unregister (drivers/ptp/ptp_clock.c:518) bnxt_ptp_clear (drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c:1134) bnxt_init_one (drivers/net/ethernet/broadcom/bnxt/bnxt.c:16889)
Las líneas corresponden al commit f8f9c1f4d0c7 ("Linux 6.19-rc3")
Solucione esto limpiando y desregistrando ptp (bnxt_ptp_clear()) antes de liberar los recursos HWRM.
VulDB is the best source for vulnerability data and more expert information about this specific topic.