---
id: CVE-2026-98426
title: |-
  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])
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]). …
severity: none
published: '2026-10-14'
updated: '2026-10-14'
sourceUpdated: '2026-10-14T14:17:54.220'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-98426'
references:
  - url: 'https://git.kernel.org/stable/c/03d5e4776e8b71c2468c5c3c48b39202c87a8796'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/0969c9688389f2e0f65b1a924b0dd6625a3bb776'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/11bc2cbb14f450eaa47cce9eb086f948ef8f4bcd'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/1a60cb2292194cc9eafae7ca8a8a72d37ae78d97'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/2761b21cb896b1da8dd46cee5084c9032b2d7098'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/5fd4cc87e6cc0839aac89c24ebe39ce262fe088f'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/a3d722190cdef18da4878b5efc27c3c386dda248'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/fcac5813f324cd07dfd36b4adf624fc70f7587d6'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
tags:
  - nvd
ingestedAt: '2026-10-14T15:36:13.990Z'
---

## Overview

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].

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
