CVE-2026-93796 (GCVE-0-2026-93796)

Vulnerability from cvelistv5 – Published: 2026-09-24 16:02 – Updated: 2026-09-25 12:43
VLAI
Title
wifi: iwlwifi: pcie: null RX pointers after free
Summary
In the Linux kernel, the following vulnerability has been resolved: wifi: iwlwifi: pcie: null RX pointers after free When iwl_pcie_tx_init() fails after RX init, nic init unwinds via iwl_pcie_rx_free(). The freed RX members stayed non-NULL on the live transport object, so later teardown or retry could touch stale RX state. Set rx_pool, global_table, rxq, and alloc_page to NULL after free to make repeated cleanup and retry paths safe.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 9cf671d60fdbeb8f875859c11148cf13c326ada2 , < 6ec5bf430cf7466cb412e47f2761594092781fac (git)
Affected: 9cf671d60fdbeb8f875859c11148cf13c326ada2 , < 3456c5bcc987aeb182e50e30c9b02be8420e9953 (git)
Affected: 9cf671d60fdbeb8f875859c11148cf13c326ada2 , < 2c79d7a7b583050c9f58041465cb46fe3483ab5d (git)
guessed Create a notification for this product.
Linux Linux Affected: 5.12
Unaffected: 0 , < 5.12 (semver)
Unaffected: 6.12.111 , ≤ 6.12.* (semver)
Unaffected: 6.18.53 , ≤ 6.18.* (semver)
Unaffected: 7.2 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/rx.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "6ec5bf430cf7466cb412e47f2761594092781fac",
              "status": "affected",
              "version": "9cf671d60fdbeb8f875859c11148cf13c326ada2",
              "versionType": "git"
            },
            {
              "lessThan": "3456c5bcc987aeb182e50e30c9b02be8420e9953",
              "status": "affected",
              "version": "9cf671d60fdbeb8f875859c11148cf13c326ada2",
              "versionType": "git"
            },
            {
              "lessThan": "2c79d7a7b583050c9f58041465cb46fe3483ab5d",
              "status": "affected",
              "version": "9cf671d60fdbeb8f875859c11148cf13c326ada2",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/rx.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.12"
            },
            {
              "lessThan": "5.12",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.111",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.53",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.2",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.111",
                  "versionStartIncluding": "5.12",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.53",
                  "versionStartIncluding": "5.12",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "versionStartIncluding": "5.12",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: iwlwifi: pcie: null RX pointers after free\n\nWhen iwl_pcie_tx_init() fails after RX init, nic init unwinds via\niwl_pcie_rx_free().\n\nThe freed RX members stayed non-NULL on the live transport object,\nso later teardown or retry could touch stale RX state.\nSet rx_pool, global_table, rxq, and alloc_page to NULL after free\nto make repeated cleanup and retry paths safe."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The dangling pointers are created in iwl_pcie_rx_free() when iwl_pcie_nic_init() unwinds a failed iwl_pcie_tx_init() after iwl_pcie_rx_init(). That runs from iwl_trans_pcie_start_fw() during iwl_mvm_start_get_nvm()/iwl_mvm_up() (PCI firmware callback or mac80211 drv_start), not from iwl_pcie_rx_handle() or any 802.11 frame parse.\nAC:H - iwl_pcie_nic_init() only calls iwl_pcie_rx_free() when iwl_pcie_tx_init() fails after a successful iwl_pcie_rx_init(). Reachable failures are ENOMEM in iwl_pcie_tx_alloc() or a non-power-of-two slots_num in iwl_queue_init(); the attacker cannot make RX allocation succeed and the subsequent TX allocation fail on demand.\nPR:L - iwl_op_mode_mvm_start() calls iwl_mvm_start_get_nvm() \u2192 iwl_run_init_mvm_ucode() \u2192 iwl_trans_start_fw() with no capable() check from iwl_req_fw_callback after PCI bind. A local unprivileged process on a host with iwlwifi is sufficient; init-namespace CAP_NET_ADMIN is not required to reach this unwind.\nUI:N - After iwl_pcie_rx_free() in the nic_init unwind, iwl_mvm_start_get_nvm() always calls iwl_mvm_stop_device() (and iwl_run_init_ucode() always calls iwl_trans_stop_device()), so iwl_pcie_rx_napi_sync() uses the stale rxq with no victim mount, file open, or association.\nS:U - The UAF and double-free of trans_pcie-\u003erxq, rx_pool, global_table, and alloc_page stay inside the host iwlwifi PCIe transport on the same kernel authority; this is not a KVM/Xen guest-to-host escape or an IOMMU/DMA bypass.\nC:H - iwl_pcie_rx_free() kfree()s rxq/rx_pool/global_table and __free_pages()s alloc_page without NULL, then iwl_pcie_rx_napi_sync() and _iwl_pcie_rx_init() dereference those freed objects; UAF of those slabs/pages enables arbitrary kernel read.\nI:H - _iwl_pcie_rx_init() writes the dangling rxq/rx_pool/global_table (list restock, netif_napi_add), and a later iwl_pcie_rx_free() from iwl_trans_pcie_free() double-frees the same kmalloc objects, giving a heap write/control-flow primitive.\nA:H - iwl_pcie_rx_napi_sync() walking a kfree\u0027d rxq, or a second iwl_pcie_rx_free() of the same pointers from iwl_trans_pcie_free(), is a kernel oops or panic."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-25T12:43:02.785Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/6ec5bf430cf7466cb412e47f2761594092781fac"
        },
        {
          "url": "https://git.kernel.org/stable/c/3456c5bcc987aeb182e50e30c9b02be8420e9953"
        },
        {
          "url": "https://git.kernel.org/stable/c/2c79d7a7b583050c9f58041465cb46fe3483ab5d"
        }
      ],
      "title": "wifi: iwlwifi: pcie: null RX pointers after free",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-93796",
    "datePublished": "2026-09-24T16:02:29.478Z",
    "dateReserved": "2026-09-18T17:59:28.789Z",
    "dateUpdated": "2026-09-25T12:43:02.785Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-93796",
      "date": "2026-09-27",
      "epss": "0.0012",
      "percentile": "0.01632"
    },
    "microsoft_vex": {
      "current_release_date": "2026-09-28T03:25:14.000Z",
      "cve": "CVE-2026-93796",
      "id": "msrc_CVE-2026-93796",
      "initial_release_date": "2026-09-28T03:25:14.000Z",
      "product_status:known_affected": "1",
      "source": "Microsoft CSAF VEX",
      "status": "final",
      "title": "wifi: iwlwifi: pcie: null RX pointers after free",
      "url": "https://msrc.microsoft.com/csaf/vex/2026/msrc_cve-2026-93796.json",
      "version": "1"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/rx.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "6ec5bf430cf7466cb412e47f2761594092781fac",
                    "status": "affected",
                    "version": "9cf671d60fdbeb8f875859c11148cf13c326ada2",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "3456c5bcc987aeb182e50e30c9b02be8420e9953",
                    "status": "affected",
                    "version": "9cf671d60fdbeb8f875859c11148cf13c326ada2",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "2c79d7a7b583050c9f58041465cb46fe3483ab5d",
                    "status": "affected",
                    "version": "9cf671d60fdbeb8f875859c11148cf13c326ada2",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/rx.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "5.12"
                  },
                  {
                    "lessThan": "5.12",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.12.*",
                    "status": "unaffected",
                    "version": "6.12.111",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.18.*",
                    "status": "unaffected",
                    "version": "6.18.53",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "7.2",
                    "versionType": "original_commit_for_fix"
                  }
                ]
              }
            ],
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: iwlwifi: pcie: null RX pointers after free\n\nWhen iwl_pcie_tx_init() fails after RX init, nic init unwinds via\niwl_pcie_rx_free().\n\nThe freed RX members stayed non-NULL on the live transport object,\nso later teardown or retry could touch stale RX state.\nSet rx_pool, global_table, rxq, and alloc_page to NULL after free\nto make repeated cleanup and retry paths safe."
          }
        ],
        "id": "CVE-2026-93796",
        "lastModified": "2026-09-25T13:17:20.210",
        "metrics": {
          "cvssMetricV31": [
            {
              "cvssData": {
                "attackComplexity": "HIGH",
                "attackVector": "LOCAL",
                "availabilityImpact": "HIGH",
                "baseScore": 7.0,
                "baseSeverity": "HIGH",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "HIGH",
                "privilegesRequired": "LOW",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 1.0,
              "impactScore": 5.9,
              "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
              "type": "Secondary"
            }
          ]
        },
        "published": "2026-09-24T17:17:12.383",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/2c79d7a7b583050c9f58041465cb46fe3483ab5d"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/3456c5bcc987aeb182e50e30c9b02be8420e9953"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/6ec5bf430cf7466cb412e47f2761594092781fac"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    },
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-09-28T12:06:01+00:00",
      "cve": "CVE-2026-93796",
      "id": "CVE-2026-93796",
      "initial_release_date": "2026-09-24T00:00:00+00:00",
      "product_status:known_not_affected": "276",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: wifi: iwlwifi: pcie: null RX pointers after free",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-93796.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "important",
      "current_release_date": "2026-09-25T23:48:53Z",
      "cve": "CVE-2026-93796",
      "id": "CVE-2026-93796",
      "initial_release_date": "2026-09-24T23:47:39Z",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2026-93796",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-93796.json",
      "version": "3"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…