CVE-2026-90380 (GCVE-0-2026-90380)
Vulnerability from cvelistv5 – Published: 2026-09-17 16:09 – Updated: 2026-10-19 09:02| Vendor | Product | Version | CPE status | |
|---|---|---|---|---|
| Linux | Linux |
Affected:
c948b5da6bbec742b433138e3e3f9537a85af2e5 , < aaf414bf81ab4b680580871784b0b929818188eb
(git)
Affected: c948b5da6bbec742b433138e3e3f9537a85af2e5 , < 2aa3d3b9fac9163e9226e35556607ae3f75be21e (git) Affected: c948b5da6bbec742b433138e3e3f9537a85af2e5 , < b250943f3f8351385a17972bda001664a5c51008 (git) Affected: c948b5da6bbec742b433138e3e3f9537a85af2e5 , < 217f9e7bb02558759be9d9ecfe532e9708741c50 (git) |
guessed | |
| Linux | Linux |
Affected:
6.7
Unaffected: 0 , < 6.7 (semver) Unaffected: 6.12.110 , ≤ 6.12.* (semver) Unaffected: 6.18.57 , ≤ 6.18.* (semver) Unaffected: 7.2.6 , ≤ 7.2.* (semver) Unaffected: 7.3 , ≤ * (original_commit_for_fix) |
guessed |
{
"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": "2aa3d3b9fac9163e9226e35556607ae3f75be21e",
"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": "6.18.*",
"status": "unaffected",
"version": "6.18.57",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"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": "6.18.57",
"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",
"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-10-19T09:02:39.607Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/aaf414bf81ab4b680580871784b0b929818188eb"
},
{
"url": "https://git.kernel.org/stable/c/2aa3d3b9fac9163e9226e35556607ae3f75be21e"
},
{
"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-10-19T09:02:39.607Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"epss": {
"cve": "CVE-2026-90380",
"date": "2026-11-10",
"epss": "0.00312",
"percentile": "0.24366"
},
"microsoft_vex": {
"current_release_date": "2026-10-22T01:11:42.000Z",
"cve": "CVE-2026-90380",
"id": "msrc_CVE-2026-90380",
"initial_release_date": "2026-10-22T01:11:42.000Z",
"product_status:under_investigation": "1",
"source": "Microsoft CSAF VEX",
"status": "final",
"title": "wifi: mt76: mt792x: fix use-after-free in mt76_rx_poll_complete",
"url": "https://msrc.microsoft.com/csaf/vex/2026/msrc_cve-2026-90380.json",
"version": "1"
},
"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": "2aa3d3b9fac9163e9226e35556607ae3f75be21e",
"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": "6.18.*",
"status": "unaffected",
"version": "6.18.57",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"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-10-19T09:19:31.980",
"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/2aa3d3b9fac9163e9226e35556607ae3f75be21e"
},
{
"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"
}
},
"redhat_vex": {
"aggregate_severity": "Moderate",
"current_release_date": "2026-11-06T01:42:21+00:00",
"cve": "CVE-2026-90380",
"id": "CVE-2026-90380",
"initial_release_date": "2026-09-17T00:00:00+00:00",
"product_status:known_affected": "110",
"product_status:known_not_affected": "93",
"source": "Red Hat CSAF VEX",
"status": "final",
"title": "kernel: wifi: mt76: mt792x: fix use-after-free in mt76_rx_poll_complete",
"url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-90380.json",
"version": "3"
}
}
}
Drag nodes to arrange them. Double-click a related vulnerability to open it, or a source to visit its link. The Physics button on the left tunes the layout and the simulation; the legend at the bottom left hides or shows nodes by kind and by sighting type.
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.
Vulnerability timeline
Sightings and recorded dates, grouped by day · UTC
How durations are calculated
Following the VTEM framework (Black Hat USA 2015), time to patch starts when the vendor or a coordinator was informed, total time to patch at discovery, and disclosure to patch at public disclosure; vendor response time runs from the report to its acknowledgement. Time to exploit and time unpatched start at the earliest discovery or report, falling back to public disclosure. Unpatched time ends at the first recorded patch, or the calculation time when no patch is recorded. Exploitation to patch shows the interval between those two events; a published proof of concept is a public exploit, not exploitation.
Each result shows its source dates. A negative interval means the end event came first; when date-only inputs leave the order open, the result says so. Date-only inputs are approximate. The earliest evidence wins: KEV report dates and sightings are labelled as such. Records describing another vulnerability are listed but never calculated from, and a PoC alone does not establish exploitation. Missing patch evidence does not prove that no patch exists. Filters below change the event list only.
Loading timeline…
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
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.