← Back to CVE Explorer

CVE-2026-80938

Full vulnerability record from the local CVENow database.

Description

In the Linux kernel, the following vulnerability has been resolved: wifi: mt76: mt7615: avoid waiting for mac work under the mt76 mutex mt7615_suspend() acquired the mt76 mutex and then called cancel_delayed_work_sync() on mac_work. mt7615_mac_work() acquires the same mutex via mt7615_mutex_acquire() at the top of the worker, so if mac_work is already running and blocked on the mutex, the suspend path deadlocks waiting for the work it holds the mutex against. Flush scan_work and mac_work before taking the mutex, matching the suspend paths in mt7921 and mt7925. scan_work only takes the mt76 spinlock, but moving it keeps the sequence consistent. This also keeps mac_work from running over an already suspended HIF, which the previous split (async cancel under the lock, sync cancel after release) would have allowed.

Severity
Not scored
CVSS score
Not available
Vulnerability status
Received
Source identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Published
2026-09-11 20:18:58.053000
Last modified
2026-10-19 09:17:25.010000
View original CVE JSON
{
  "id": "CVE-2026-80938",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "published": "2026-09-11T20:18:58.053",
  "lastModified": "2026-10-19T09:17:25.010",
  "vulnStatus": "Received",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: mt76: mt7615: avoid waiting for mac work under the mt76 mutex\n\nmt7615_suspend() acquired the mt76 mutex and then called\ncancel_delayed_work_sync() on mac_work.  mt7615_mac_work() acquires the\nsame mutex via mt7615_mutex_acquire() at the top of the worker, so if\nmac_work is already running and blocked on the mutex, the suspend path\ndeadlocks waiting for the work it holds the mutex against.\n\nFlush scan_work and mac_work before taking the mutex, matching the\nsuspend paths in mt7921 and mt7925.  scan_work only takes the mt76\nspinlock, but moving it keeps the sequence consistent.  This also keeps\nmac_work from running over an already suspended HIF, which the previous\nsplit (async cancel under the lock, sync cancel after release) would\nhave allowed."
    }
  ],
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "programFiles": [
            "drivers/net/wireless/mediatek/mt76/mt7615/main.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "c6bf20109a3fae92402cb76ad709ec5256bcd169",
              "lessThan": "36c73b86a09f0e51c0f81a75c8945b6c5557ff27",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "c6bf20109a3fae92402cb76ad709ec5256bcd169",
              "lessThan": "33d29aeb4c0eede92622a7d04ea492b94c30f089",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "c6bf20109a3fae92402cb76ad709ec5256bcd169",
              "lessThan": "ef2ec8b537c3a54e241d693bd03016f80d0d4484",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "c6bf20109a3fae92402cb76ad709ec5256bcd169",
              "lessThan": "3114d479f2a1d31b2e6214c395794c6e5715e579",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "c6bf20109a3fae92402cb76ad709ec5256bcd169",
              "lessThan": "4506e229b2e468b8c64bcf52c50c41a3bf2e633e",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "c6bf20109a3fae92402cb76ad709ec5256bcd169",
              "lessThan": "44be85af3e1772ffb3332feafedad2a73b22854c",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "c6bf20109a3fae92402cb76ad709ec5256bcd169",
              "lessThan": "bda8324270b1ac91bfba1df8928e0570e29759e8",
              "versionType": "git",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "programFiles": [
            "drivers/net/wireless/mediatek/mt76/mt7615/main.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "5.8",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "5.8",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "5.15.221",
              "lessThanOrEqual": "5.15.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.1.188",
              "lessThanOrEqual": "6.1.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.6.157",
              "lessThanOrEqual": "6.6.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.12.109",
              "lessThanOrEqual": "6.12.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.18.50",
              "lessThanOrEqual": "6.18.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.2.4",
              "lessThanOrEqual": "7.2.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.3",
              "lessThanOrEqual": "*",
              "versionType": "original_commit_for_fix",
              "status": "unaffected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {},
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/3114d479f2a1d31b2e6214c395794c6e5715e579",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/33d29aeb4c0eede92622a7d04ea492b94c30f089",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/36c73b86a09f0e51c0f81a75c8945b6c5557ff27",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/44be85af3e1772ffb3332feafedad2a73b22854c",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/4506e229b2e468b8c64bcf52c50c41a3bf2e633e",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/bda8324270b1ac91bfba1df8928e0570e29759e8",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/ef2ec8b537c3a54e241d693bd03016f80d0d4484",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ]
}