Skip to content
Heist/ feed
Back to feed
HighFix available

wifi: mt76: mt7996: hold dev->mt76.mutex while disabling tx worker in SER

Type: advisorySources: OSV

In the Linux kernel, the following vulnerability has been resolved: wifi: mt76: mt7996: hold dev->mt76.mutex while disabling tx worker in SER mt7996_mac_reset_work() parked the tx worker and disabled the RX/TX NAPIs before taking dev->mt76.mutex. mt76_worker_disable()/_enable() are plain kthread park/unpark, not refcounted, and __mt76_set_channel() toggles the same worker and the MT76_RESET bit under the mutex. An L1 SER racing a channel switch could therefore have the worker unparked and MT76_RESET cleared while the reset path resets the DMA rings, corrupting descriptors or tokens. Take the mutex before disabling the worker, as mt7915 does.

Products
Kernel
Affected versions
Not specified
Fixed versions
6.12.114, 6.18.52, 6.6.160, 7.2.6
CVEs
CVE-2026-90367
Confirmed fixed CVEs
Not specified
Updated in this feed
4 Nov 2026, 15:58 UTC · Revision 1

Source evidence

wifi: mt76: mt7996: hold dev->mt76.mutex while disabling tx worker in SER

core-osv · Original source

Published 17 Sept 2026, 16:09 UTC

In the Linux kernel, the following vulnerability has been resolved: wifi: mt76: mt7996: hold dev->mt76.mutex while disabling tx worker in SER mt7996_mac_reset_work() parked the tx worker and disabled the RX/TX NAPIs before taking dev->mt76.mutex. mt76_worker_disable()/_enable() are plain kthread park/unpark, not refcounted, and __mt76_set_channel() toggles the same worker and the MT76_RESET bit under the mutex. An L1 SER racing a channel switch could therefore have the worker unparked and MT76_RESET cleared while the reset path resets the DMA rings, corrupting descriptors or tokens. Take the mutex before disabling the worker, as mt7915 does.

osv:CVE-2026-90367

Kernel

Fixed versions: 6.6.160, 6.12.114, 6.18.52, 7.2.6

Complete source record
{
  "id": "6f104c31d032d53b9a247344f969f5ff74443af1e57a0cd3680777222e6bd887",
  "url": "https://osv.dev/vulnerability/CVE-2026-90367",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "wifi: mt76: mt7996: hold dev->mt76.mutex while disabling tx worker in SER",
    "summary": "In the Linux kernel, the following vulnerability has been resolved: wifi: mt76: mt7996: hold dev->mt76.mutex while disabling tx worker in SER mt7996_mac_reset_work() parked the tx worker and disabled the RX/TX NAPIs before taking dev->mt76.mutex. mt76_worker_disable()/_enable() are plain kthread park/unpark, not refcounted, and __mt76_set_channel() toggles the same worker and the MT76_RESET bit under the mutex. An L1 SER racing a channel switch could therefore have the worker unparked and MT76_RESET cleared while the reset path resets the DMA rings, corrupting descriptors or tokens. Take the mutex before disabling the worker, as mt7915 does.",
    "evidence": "osv:CVE-2026-90367",
    "products": [
      {
        "name": {
          "value": "Kernel",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "6.6.160",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.12.114",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.18.52",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "7.2.6",
            "evidence": "/affected/1/ranges"
          }
        ],
        "affected_versions": []
      }
    ],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-90367",
      "aliases": [
        "CVE-2026-90367"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "27015b6fbcca836c6dbf196afc266e068af4aeec"
                },
                {
                  "fixed": "bc4f4389f439e808185778d298da36976d13d415"
                },
                {
                  "fixed": "69f23622533a4f054b5c8fdb226c3319ffa017b6"
                },
                {
                  "fixed": "906ad486ba5c4933d82e1ebe0685656390a48450"
                },
                {
                  "fixed": "594c4b7f89f9ea75dc9c50b5e4c4296db4a3d701"
                },
                {
                  "fixed": "6190db312b8230813f529f014b26247c6d9800d0"
                }
              ]
            }
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-90367.json"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.4.0"
                },
                {
                  "fixed": "6.6.160"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.7.0"
                },
                {
                  "fixed": "6.12.114"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.13.0"
                },
                {
                  "fixed": "6.18.52"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.19.0"
                },
                {
                  "fixed": "7.2.6"
                }
              ]
            }
          ],
          "package": {
            "name": "Kernel",
            "ecosystem": "Linux"
          },
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-90367.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:37.003792566Z",
      "provider": "osv",
      "references": [
        "https://git.kernel.org/stable/c/594c4b7f89f9ea75dc9c50b5e4c4296db4a3d701",
        "https://git.kernel.org/stable/c/6190db312b8230813f529f014b26247c6d9800d0",
        "https://git.kernel.org/stable/c/69f23622533a4f054b5c8fdb226c3319ffa017b6",
        "https://git.kernel.org/stable/c/906ad486ba5c4933d82e1ebe0685656390a48450",
        "https://git.kernel.org/stable/c/bc4f4389f439e808185778d298da36976d13d415",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/90xxx/CVE-2026-90367.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-90367",
        "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
      ],
      "provider_metadata": {
        "cna_assigner": "Linux",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/90xxx/CVE-2026-90367.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-90367",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 504404,
  "published_at": "2026-09-17T16:09:09.43+00:00"
}