{"id":"CVE-2026-98544","title":"bna: prevent IOC timer rearm during teardown","summary":"In the Linux kernel, the following vulnerability has been resolved:\n\nbna: prevent IOC timer rearm during teardown\n\nbna: prevent IOC timer rearm during teardown\n\nbnad_pci_remove() and the probe disable_ioceth path call\ntimer_delete_sync()…","severity":"none","vendor":"Linux","product":"Linux","affected":["Linux >= 1d32f7696286eef9e5644eb57e79a36756274357 < 28e32ace754b57534ef0ca0fb99bcbea5b13ba2a","Linux >= 1d32f7696286eef9e5644eb57e79a36756274357 < 4d97a141e85a034566c33c7ed854c8a3e8a268f1","Linux >= 1d32f7696286eef9e5644eb57e79a36756274357 < e09d1c6729ee4a7812128902d9274ff565f958b8","Linux >= 1d32f7696286eef9e5644eb57e79a36756274357 < 77b1718e39e5c9f6956fb60807326af20baf889d","Linux 2.6.38"],"published":"2026-10-18","updated":"2026-10-18","sourceUpdated":"2026-10-18T15:18:12.964Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-98544","references":[{"url":"https://git.kernel.org/stable/c/28e32ace754b57534ef0ca0fb99bcbea5b13ba2a"},{"url":"https://git.kernel.org/stable/c/4d97a141e85a034566c33c7ed854c8a3e8a268f1"},{"url":"https://git.kernel.org/stable/c/e09d1c6729ee4a7812128902d9274ff565f958b8"},{"url":"https://git.kernel.org/stable/c/77b1718e39e5c9f6956fb60807326af20baf889d"}],"tags":["cve.org"],"ingestedAt":"2026-10-18T15:45:12.267Z","slug":"CVE-2026-98544","body":"## Overview\n\nIn the Linux kernel, the following vulnerability has been resolved:\n\nbna: prevent IOC timer rearm during teardown\n\nbna: prevent IOC timer rearm during teardown\n\nbnad_pci_remove() and the probe disable_ioceth path call\ntimer_delete_sync() for ioc_timer, sem_timer and hb_timer, but not for\niocpf_timer.  bnad_iocpf_timeout() then takes bnad->bna_lock after\nfree_netdev() has freed the struct bnad.\n\nDeleting iocpf_timer last does not fix this.  sem_timer and\niocpf_timer rearm each other: bnad_iocpf_sem_timeout() can arm\niocpf_timer, and bnad_iocpf_timeout() arms sem_timer from\nbfa_ioc_hw_sem_get() when the semaphore is busy.\ntimer_delete_sync() only waits out its own callback.\nbnad_ioceth_disable() can time out and leave that callback live.\n\nShut all four IOC timers down with timer_shutdown_sync() on both\npaths, so a later mod_timer() is ignored.\n\nThis issue was identified during our ongoing static-analysis research\nwhile reviewing kernel code.\n\n## Affected\n\n- `Linux >= 1d32f7696286eef9e5644eb57e79a36756274357 < 28e32ace754b57534ef0ca0fb99bcbea5b13ba2a`\n- `Linux >= 1d32f7696286eef9e5644eb57e79a36756274357 < 4d97a141e85a034566c33c7ed854c8a3e8a268f1`\n- `Linux >= 1d32f7696286eef9e5644eb57e79a36756274357 < e09d1c6729ee4a7812128902d9274ff565f958b8`\n- `Linux >= 1d32f7696286eef9e5644eb57e79a36756274357 < 77b1718e39e5c9f6956fb60807326af20baf889d`\n- `Linux 2.6.38`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"sunlit","depthScore":3,"depthScoreParts":{"impact":2.8,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}