Description
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.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
1d32f7696286eef9e5644eb57e79a36756274357 to < f04cbdfac9b8284146995ab7ba0d054ad1d20ec6affected1d32f7696286eef9e5644eb57e79a36756274357 to < 28e32ace754b57534ef0ca0fb99bcbea5b13ba2aaffected1d32f7696286eef9e5644eb57e79a36756274357 to < 4d97a141e85a034566c33c7ed854c8a3e8a268f1affected1d32f7696286eef9e5644eb57e79a36756274357 to < e09d1c6729ee4a7812128902d9274ff565f958b8affected1d32f7696286eef9e5644eb57e79a36756274357 to < 77b1718e39e5c9f6956fb60807326af20baf889daffected
Linux Linux
Default version status: affected
2.6.38affected0 to < 2.6.38unaffected6.6.160 to ≤ 6.6.*unaffected6.12.112 to ≤ 6.12.*unaffected6.18.55 to ≤ 6.18.*unaffected7.2.9 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/f04cbdfac9b8284146995ab7ba0d054ad1d20ec6 ↗
- https://git.kernel.org/stable/c/28e32ace754b57534ef0ca0fb99bcbea5b13ba2a ↗
- https://git.kernel.org/stable/c/4d97a141e85a034566c33c7ed854c8a3e8a268f1 ↗
- https://git.kernel.org/stable/c/e09d1c6729ee4a7812128902d9274ff565f958b8 ↗
- https://git.kernel.org/stable/c/77b1718e39e5c9f6956fb60807326af20baf889d ↗