CVE-2026-90380 (GCVE-0-2026-90380)

Vulnerability from cvelistv5 – Published: 2026-09-17 16:09 – Updated: 2026-09-18 17:54
VLAI
Title
wifi: mt76: mt792x: fix use-after-free in mt76_rx_poll_complete
Summary
In the Linux kernel, the following vulnerability has been resolved: wifi: mt76: mt792x: fix use-after-free in mt76_rx_poll_complete A use-after-free issue occurs in mt76_rx_poll_complete due to a race condition. The STA has already been removed, but the rx_status still had a pointer to the wcid in the STA. Set the links' wcid pointers to be NULL for a MLD in mt7925_sta_pre_rcu_remove() BUG: KASAN: invalid-access in mt76_rx_poll_complete+0x280/0x470 Call trace: dump_backtrace+0xec/0x128 show_stack+0x18/0x28 dump_stack_lvl+0x40/0xc8 print_report+0x1b8/0x710 kasan_report+0xe0/0x144 do_bad_area+0x120/0x260 do_tag_check_fault+0x20/0x34 do_mem_abort+0x54/0xa8 el1_abort+0x3c/0x5c el1h_64_sync_handler+0x40/0xcc el1h_64_sync+0x7c/0x80 mt76_rx_poll_complete+0x280/0x470 mt76_dma_rx_poll+0x114/0x51c mt792x_poll_rx+0x60/0xf8 napi_threaded_poll_loop+0xe0/0x450 napi_threaded_poll+0x80/0x9c kthread+0x11c/0x158 ret_from_fork+0x10/0x20
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: c948b5da6bbec742b433138e3e3f9537a85af2e5 , < aaf414bf81ab4b680580871784b0b929818188eb (git)
Affected: c948b5da6bbec742b433138e3e3f9537a85af2e5 , < b250943f3f8351385a17972bda001664a5c51008 (git)
Affected: c948b5da6bbec742b433138e3e3f9537a85af2e5 , < 217f9e7bb02558759be9d9ecfe532e9708741c50 (git)
guessed Create a notification for this product.
Linux Linux Affected: 6.7
Unaffected: 0 , < 6.7 (semver)
Unaffected: 6.12.110 , ≤ 6.12.* (semver)
Unaffected: 7.2.6 , ≤ 7.2.* (semver)
Unaffected: 7.3-rc1 , ≤ * (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/mediatek/mt76/mt7925/main.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "aaf414bf81ab4b680580871784b0b929818188eb",
              "status": "affected",
              "version": "c948b5da6bbec742b433138e3e3f9537a85af2e5",
              "versionType": "git"
            },
            {
              "lessThan": "b250943f3f8351385a17972bda001664a5c51008",
              "status": "affected",
              "version": "c948b5da6bbec742b433138e3e3f9537a85af2e5",
              "versionType": "git"
            },
            {
              "lessThan": "217f9e7bb02558759be9d9ecfe532e9708741c50",
              "status": "affected",
              "version": "c948b5da6bbec742b433138e3e3f9537a85af2e5",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/wireless/mediatek/mt76/mt7925/main.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.7"
            },
            {
              "lessThan": "6.7",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.110",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.2.*",
              "status": "unaffected",
              "version": "7.2.6",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.3-rc1",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.110",
                  "versionStartIncluding": "6.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2.6",
                  "versionStartIncluding": "6.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.3-rc1",
                  "versionStartIncluding": "6.7",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: mt76: mt792x: fix use-after-free in mt76_rx_poll_complete\n\nA use-after-free issue occurs in mt76_rx_poll_complete due to a race\ncondition. The STA has already been removed, but the rx_status still\nhad a pointer to the wcid in the STA.\n\nSet the links\u0027 wcid pointers to be NULL for a MLD in\nmt7925_sta_pre_rcu_remove()\n\nBUG: KASAN: invalid-access in mt76_rx_poll_complete+0x280/0x470\nCall trace:\ndump_backtrace+0xec/0x128\nshow_stack+0x18/0x28\ndump_stack_lvl+0x40/0xc8\nprint_report+0x1b8/0x710\nkasan_report+0xe0/0x144\ndo_bad_area+0x120/0x260\ndo_tag_check_fault+0x20/0x34\ndo_mem_abort+0x54/0xa8\nel1_abort+0x3c/0x5c\nel1h_64_sync_handler+0x40/0xcc\nel1h_64_sync+0x7c/0x80\nmt76_rx_poll_complete+0x280/0x470\nmt76_dma_rx_poll+0x114/0x51c\nmt792x_poll_rx+0x60/0xf8\nnapi_threaded_poll_loop+0xe0/0x450\nnapi_threaded_poll+0x80/0x9c\nkthread+0x11c/0x158\nret_from_fork+0x10/0x20"
        }
      ],
      "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 - An 802.11be MLO peer\u0027s frames are DMA\u0027d into mt792x_poll_rx\u2192mt76_dma_rx_poll\u2192mt7925_queue_rx_skb\u2192mt7925_mac_fill_rx, which stores status-\u003ewcid from MT_RXD1_NORMAL_WLAN_IDX via mt792x_rx_get_wcid(); those bytes arrive over WiFi radio, which is adjacent rather than a routable IP transport.\nAC:L - The attacker drives both sides: data frames on a non-default MLO link keep mt76_rx_poll_complete using a secondary mt792x_link_sta.wcid that mt76_sta_pre_rcu_remove never NULLs, while a deauth/disassoc runs __sta_info_destroy. mt7925_mac_link_sta_remove then sleeps in MCU commands before clearing that idx, so the race is attacker-retryable.\nPR:N - mt76_rx_poll_complete and ieee80211_rx_mgmt_deauth\u2192ieee80211_set_disassoc run on the WiFi RX path with no Linux credential or capability check; a radio-range MLO AP sending deauth plus data is enough, with no local account on the mt7925 client.\nUI:N - Once the mt7925 station VIF is already in an MLO association (WIPHY_FLAG_SUPPORTS_MLO is set only for NL80211_IFTYPE_STATION), the attacker triggers STA teardown and the concurrent RX by transmitting; no mount, click, or other victim action is required at exploit time.\nS:U - The UAF is of the mt792x_link_sta.wcid published in dev-\u003ewcid[] and later used in mt76_check_sta/mt76_rx_complete inside this host kernel; it does not cross a VM, IOMMU, or guest/host boundary.\nC:H - After the MLD STA is freed, mt76_check_sta and mt76_rx_convert still dereference status-\u003ewcid (wcid-\u003esta, wcid-\u003elink_valid/link_id, wcid_to_sta()) from skb-\u003ecb, a use-after-free of the attacker-reallocatable mt792x_link_sta that enables arbitrary kernel reads.\nI:H - The same dangling wcid is written in mt76_check_sta (ewma_signal_add, wcid-\u003einactive_count, PS flag bits) and in mt76_check_ccmp_pn (memcpy into wcid-\u003erx_key_pn[] from the frame IV), giving a kernel write primitive through the freed mt792x_link_sta.\nA:H - KASAN already reports invalid-access in mt76_rx_poll_complete when the RX NAPI uses the freed wcid after STA removal; that use-after-free oopses or panics the kernel even without a full exploit."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-18T17:54:57.266Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/aaf414bf81ab4b680580871784b0b929818188eb"
        },
        {
          "url": "https://git.kernel.org/stable/c/b250943f3f8351385a17972bda001664a5c51008"
        },
        {
          "url": "https://git.kernel.org/stable/c/217f9e7bb02558759be9d9ecfe532e9708741c50"
        }
      ],
      "title": "wifi: mt76: mt792x: fix use-after-free in mt76_rx_poll_complete",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-90380",
    "datePublished": "2026-09-17T16:09:17.948Z",
    "dateReserved": "2026-09-11T19:38:34.809Z",
    "dateUpdated": "2026-09-18T17:54:57.266Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-90380",
      "date": "2026-09-25",
      "epss": "0.00365",
      "percentile": "0.27623"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "drivers/net/wireless/mediatek/mt76/mt7925/main.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "aaf414bf81ab4b680580871784b0b929818188eb",
                    "status": "affected",
                    "version": "c948b5da6bbec742b433138e3e3f9537a85af2e5",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "b250943f3f8351385a17972bda001664a5c51008",
                    "status": "affected",
                    "version": "c948b5da6bbec742b433138e3e3f9537a85af2e5",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "217f9e7bb02558759be9d9ecfe532e9708741c50",
                    "status": "affected",
                    "version": "c948b5da6bbec742b433138e3e3f9537a85af2e5",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "drivers/net/wireless/mediatek/mt76/mt7925/main.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "6.7"
                  },
                  {
                    "lessThan": "6.7",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.12.*",
                    "status": "unaffected",
                    "version": "6.12.110",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.2.*",
                    "status": "unaffected",
                    "version": "7.2.6",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "7.3-rc1",
                    "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: mt76: mt792x: fix use-after-free in mt76_rx_poll_complete\n\nA use-after-free issue occurs in mt76_rx_poll_complete due to a race\ncondition. The STA has already been removed, but the rx_status still\nhad a pointer to the wcid in the STA.\n\nSet the links\u0027 wcid pointers to be NULL for a MLD in\nmt7925_sta_pre_rcu_remove()\n\nBUG: KASAN: invalid-access in mt76_rx_poll_complete+0x280/0x470\nCall trace:\ndump_backtrace+0xec/0x128\nshow_stack+0x18/0x28\ndump_stack_lvl+0x40/0xc8\nprint_report+0x1b8/0x710\nkasan_report+0xe0/0x144\ndo_bad_area+0x120/0x260\ndo_tag_check_fault+0x20/0x34\ndo_mem_abort+0x54/0xa8\nel1_abort+0x3c/0x5c\nel1h_64_sync_handler+0x40/0xcc\nel1h_64_sync+0x7c/0x80\nmt76_rx_poll_complete+0x280/0x470\nmt76_dma_rx_poll+0x114/0x51c\nmt792x_poll_rx+0x60/0xf8\nnapi_threaded_poll_loop+0xe0/0x450\nnapi_threaded_poll+0x80/0x9c\nkthread+0x11c/0x158\nret_from_fork+0x10/0x20"
          }
        ],
        "id": "CVE-2026-90380",
        "lastModified": "2026-09-18T18:17:56.080",
        "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-09-17T17:17:37.297",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/217f9e7bb02558759be9d9ecfe532e9708741c50"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/aaf414bf81ab4b680580871784b0b929818188eb"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/b250943f3f8351385a17972bda001664a5c51008"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    }
  }
}



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…