CVE-2026-74413 (GCVE-0-2026-74413)

Vulnerability from cvelistv5 – Published: 2026-08-15 05:59 – Updated: 2026-08-17 05:46
VLAI
Title
wifi: rtw89: fix wrong pci_get_drvdata type in AER handlers
Summary
In the Linux kernel, the following vulnerability has been resolved: wifi: rtw89: fix wrong pci_get_drvdata type in AER handlers rtw89 stores an ieee80211_hw pointer via pci_set_drvdata() at probe time, but io_error_detected() and io_resume() retrieve it as a net_device pointer. This causes netif_device_detach/attach to operate on an ieee80211_hw struct, reading and writing at wrong offsets. The adjacent io_slot_reset() already does it correctly. Use ieee80211_stop_queues/wake_queues instead, consistent with every other queue stop/start path in the driver. Tested on RTL8852CE by calling the handlers from a test module before and after the fix.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 16e3d93c6183649a3b210f82b83c1cb12aa5e8a3 , < aefc30e4a829c1683f6ae999df7f9310c27eae6c (git)
Affected: 16e3d93c6183649a3b210f82b83c1cb12aa5e8a3 , < c1907b9a4fa9cb33d11a9af138374dd2e93f7a93 (git)
Affected: 16e3d93c6183649a3b210f82b83c1cb12aa5e8a3 , < 7068c379cf9aa8afe4dce4d9d82390187aa9c4d0 (git)
guessed Create a notification for this product.
Linux Linux Affected: 6.17
Unaffected: 0 , < 6.17 (semver)
Unaffected: 6.18.40 , ≤ 6.18.* (semver)
Unaffected: 7.1.5 , ≤ 7.1.* (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/realtek/rtw89/pci.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "aefc30e4a829c1683f6ae999df7f9310c27eae6c",
              "status": "affected",
              "version": "16e3d93c6183649a3b210f82b83c1cb12aa5e8a3",
              "versionType": "git"
            },
            {
              "lessThan": "c1907b9a4fa9cb33d11a9af138374dd2e93f7a93",
              "status": "affected",
              "version": "16e3d93c6183649a3b210f82b83c1cb12aa5e8a3",
              "versionType": "git"
            },
            {
              "lessThan": "7068c379cf9aa8afe4dce4d9d82390187aa9c4d0",
              "status": "affected",
              "version": "16e3d93c6183649a3b210f82b83c1cb12aa5e8a3",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/wireless/realtek/rtw89/pci.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.17"
            },
            {
              "lessThan": "6.17",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.40",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.1.*",
              "status": "unaffected",
              "version": "7.1.5",
              "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.18.40",
                  "versionStartIncluding": "6.17",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1.5",
                  "versionStartIncluding": "6.17",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "versionStartIncluding": "6.17",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: rtw89: fix wrong pci_get_drvdata type in AER handlers\n\nrtw89 stores an ieee80211_hw pointer via pci_set_drvdata() at probe\ntime, but io_error_detected() and io_resume() retrieve it as a\nnet_device pointer.  This causes netif_device_detach/attach to\noperate on an ieee80211_hw struct, reading and writing at wrong\noffsets.  The adjacent io_slot_reset() already does it correctly.\n\nUse ieee80211_stop_queues/wake_queues instead, consistent with\nevery other queue stop/start path in the driver.\n\nTested on RTL8852CE by calling the handlers from a test module\nbefore and after the fix."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 8.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:A - The vulnerable rtw89 PCIe AER handlers run when the adapter reports non-fatal/fatal PCIe errors; on laptops with RTL8852CE/8852BE and similar in public wireless environments, an adjacent attacker can plausibly induce link faults via traffic stressing the radio-PCIe path.\nAC:L - Once AER recovery invokes rtw89_pci_io_error_detected/resume, the type confusion deterministically treats ieee80211_hw as net_device and corrupts memory through netif_device_detach/attach; no race or layout guesswork beyond triggering PCIe recovery is needed.\nPR:N - No local OS privileges or capabilities are required; an adjacent wireless attacker targeting a victim\u0027s rtw89 PCIe WiFi can enter the faulty AER recovery path without authenticating to or holding an account on the system.\nUI:N - No victim action beyond normal use of the affected rtw89 WiFi interface is required; PCIe AER recovery and the corruption run automatically in kernel interrupt/workqueue context.\nS:U - Type confusion corrupts kernel memory within the same kernel security authority; no VM, container, or IOMMU boundary is crossed.\nC:H - Casting ieee80211_hw to net_device makes netif_device_detach/attach read state, flags, and queue metadata at wrong offsets, constituting type confusion that can disclose adjacent kernel memory per kernel CVSS guidance.\nI:H - Atomic bit clears/sets and netif_tx_stop/wake queue operations run on ieee80211_hw memory misinterpreted as net_device fields, enabling out-of-bounds writes and exploitable memory corruption warranting High integrity impact.\nA:H - Misinterpreting ieee80211_hw as net_device leads netif_tx_stop_all_queues and netdev_watchdog_up to dereference garbage queue pointers, causing kernel oops/panic during AER recovery with High availability impact."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-17T05:46:57.094Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/aefc30e4a829c1683f6ae999df7f9310c27eae6c"
        },
        {
          "url": "https://git.kernel.org/stable/c/c1907b9a4fa9cb33d11a9af138374dd2e93f7a93"
        },
        {
          "url": "https://git.kernel.org/stable/c/7068c379cf9aa8afe4dce4d9d82390187aa9c4d0"
        }
      ],
      "title": "wifi: rtw89: fix wrong pci_get_drvdata type in AER handlers",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-74413",
    "datePublished": "2026-08-15T05:59:20.021Z",
    "dateReserved": "2026-08-15T05:44:03.893Z",
    "dateUpdated": "2026-08-17T05:46:57.094Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-74413",
      "date": "2026-09-20",
      "epss": "0.0024",
      "percentile": "0.15355"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "drivers/net/wireless/realtek/rtw89/pci.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "aefc30e4a829c1683f6ae999df7f9310c27eae6c",
                    "status": "affected",
                    "version": "16e3d93c6183649a3b210f82b83c1cb12aa5e8a3",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "c1907b9a4fa9cb33d11a9af138374dd2e93f7a93",
                    "status": "affected",
                    "version": "16e3d93c6183649a3b210f82b83c1cb12aa5e8a3",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "7068c379cf9aa8afe4dce4d9d82390187aa9c4d0",
                    "status": "affected",
                    "version": "16e3d93c6183649a3b210f82b83c1cb12aa5e8a3",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "drivers/net/wireless/realtek/rtw89/pci.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "6.17"
                  },
                  {
                    "lessThan": "6.17",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.18.*",
                    "status": "unaffected",
                    "version": "6.18.40",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.1.*",
                    "status": "unaffected",
                    "version": "7.1.5",
                    "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: rtw89: fix wrong pci_get_drvdata type in AER handlers\n\nrtw89 stores an ieee80211_hw pointer via pci_set_drvdata() at probe\ntime, but io_error_detected() and io_resume() retrieve it as a\nnet_device pointer.  This causes netif_device_detach/attach to\noperate on an ieee80211_hw struct, reading and writing at wrong\noffsets.  The adjacent io_slot_reset() already does it correctly.\n\nUse ieee80211_stop_queues/wake_queues instead, consistent with\nevery other queue stop/start path in the driver.\n\nTested on RTL8852CE by calling the handlers from a test module\nbefore and after the fix."
          }
        ],
        "id": "CVE-2026-74413",
        "lastModified": "2026-08-17T06:19:36.790",
        "metrics": {
          "cvssMetricV31": [
            {
              "cvssData": {
                "attackComplexity": "LOW",
                "attackVector": "ADJACENT_NETWORK",
                "availabilityImpact": "HIGH",
                "baseScore": 8.8,
                "baseSeverity": "HIGH",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "HIGH",
                "privilegesRequired": "NONE",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 2.8,
              "impactScore": 5.9,
              "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
              "type": "Secondary"
            }
          ]
        },
        "published": "2026-08-15T06:22:43.410",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/7068c379cf9aa8afe4dce4d9d82390187aa9c4d0"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/aefc30e4a829c1683f6ae999df7f9310c27eae6c"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/c1907b9a4fa9cb33d11a9af138374dd2e93f7a93"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    },
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-08-20T22:18:56+00:00",
      "cve": "CVE-2026-74413",
      "id": "CVE-2026-74413",
      "initial_release_date": "2026-08-15T00:00:00+00:00",
      "product_status:known_affected": "184",
      "product_status:known_not_affected": "90",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: wifi: rtw89: fix wrong pci_get_drvdata type in AER handlers",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-74413.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…

Detection rules are retrieved from Rulezet.

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…