wifi: mwifiex: fix IRQ leak using wrong index in MSI-X error path
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.10.271, 5.15.222, 6.1.189, 6.6.158, 6.12.112, and 2 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: wifi: mwifiex: fix IRQ leak using wrong index in MSI-X error path mwifiex_pcie_request_irq() registers each MSI-X vector with a per-index dev_id (&card->msix_ctx[i]). On a request_irq() failure the cleanup loop "for (j = 0; j < i; j++)" frees msix_entries[j].vector but passes the failed index's &card->msix_ctx[i] as the dev_id. free_irq() matches on (irq, dev_id), so it fails to find the action registered with &card->msix_ctx[j]: the already-requested IRQ j is not freed (leaked) and free_irq() warns about freeing a non-existent IRQ. Use &card->msix_ctx[j].
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 99074fc1e67b374b5c72406a23ac01fed806d634 · fixed in 11bc2cbb14f450eaa47cce9eb086f948ef8f4bcd; From 99074fc1e67b374b5c72406a23ac01fed806d634 · fixed in 1a60cb2292194cc9eafae7ca8a8a72d37ae78d97; From 99074fc1e67b374b5c72406a23ac01fed806d634 · fixed in fcac5813f324cd07dfd36b4adf624fc70f7587d6; From 99074fc1e67b374b5c72406a23ac01fed806d634 · fixed in 2761b21cb896b1da8dd46cee5084c9032b2d7098; From 99074fc1e67b374b5c72406a23ac01fed806d634 · fixed in 5fd4cc87e6cc0839aac89c24ebe39ce262fe088f; From 99074fc1e67b374b5c72406a23ac01fed806d634 · fixed in 0969c9688389f2e0f65b1a924b0dd6625a3bb776; From 99074fc1e67b374b5c72406a23ac01fed806d634 · fixed in 03d5e4776e8b71c2468c5c3c48b39202c87a8796; From 99074fc1e67b374b5c72406a23ac01fed806d634 · fixed in a3d722190cdef18da4878b5efc27c3c386dda248
- Linux Linux
4.6
- KernelLinux
From 4.6.0 · fixed in 5.10.271; From 5.11.0 · fixed in 5.15.222; From 5.16.0 · fixed in 6.1.189; From 6.2.0 · fixed in 6.6.158; From 6.7.0 · fixed in 6.12.112; From 6.13.0 · fixed in 6.18.54; From 6.19.0 · fixed in 7.2.8
References 8
git.kernel.org
- stable/c/11bc2cbb14f450eaa47cce9eb086f948ef8f4bcd
- stable/c/1a60cb2292194cc9eafae7ca8a8a72d37ae78d97
- stable/c/fcac5813f324cd07dfd36b4adf624fc70f7587d6
- stable/c/2761b21cb896b1da8dd46cee5084c9032b2d7098
- stable/c/5fd4cc87e6cc0839aac89c24ebe39ce262fe088f
- stable/c/0969c9688389f2e0f65b1a924b0dd6625a3bb776
- stable/c/03d5e4776e8b71c2468c5c3c48b39202c87a8796
- stable/c/a3d722190cdef18da4878b5efc27c3c386dda248