CVE Catalog

CVE-2026-98544

Low risk· EPSS 10%
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.20%

10th percentile - higher than 10% of all known CVEs

Summary

In the bna driver, bnad_pci_remove() and the probe disable_ioceth path called timer_delete_sync() for ioc_timer, sem_timer and hb_timer, but not for iocpf_timer. After free_netdev() frees the bnad struct, bnad_iocpf_timeout() accesses freed memory, because sem_timer and iocpf_timer rearm each other.

Risk Assessment

A use-after-free in the kernel may occur, leading to a system crash or potentially privilege escalation. Affects systems using the bna driver.

Recommendation

Update the Linux kernel to a version containing the fix that shuts down all four IOC timers with timer_shutdown_sync() on both paths.

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

In the Linux kernel, the following vulnerability has been resolved: bna: prevent IOC timer rearm during teardown bna: prevent IOC timer rearm during teardown bnad_pci_remove() and the probe disable_ioceth path call timer_delete_sync() for ioc_timer, sem_timer and hb_timer, but not for iocpf_timer. bnad_iocpf_timeout() then takes bnad->bna_lock after free_netdev() has freed the struct bnad. Deleting iocpf_timer last does not fix this. sem_timer and iocpf_timer rearm each other: bnad_iocpf_sem_timeout() can arm iocpf_timer, and bnad_iocpf_timeout() arms sem_timer from bfa_ioc_hw_sem_get() when the semaphore is busy. timer_delete_sync() only waits out its own callback. bnad_ioceth_disable() can time out and leave that callback live. Shut all four IOC timers down with timer_shutdown_sync() on both paths, so a later mod_timer() is ignored. This issue was identified during our ongoing static-analysis research while reviewing kernel code.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS