Skip to content
Heist/ feed
Back to feed
UnratedFix available

ALSA: bcd2000: Fix race between rawmidi and disconnect

Type: advisorySources: OSV

In the Linux kernel, the following vulnerability has been resolved: ALSA: bcd2000: Fix race between rawmidi and disconnect Although we tried to fix the potential UAF issues at USB disconnect on bcd2000 driver, there is still an overlooked case -- namely, when a rawmidi trigger callback has been already running at USB disconnect handling, the in-flight function (e.g. bcd2000_midi_send()) could still access the URB, because the previous URB NULL-check & clearance was considered only for the URB complete callbacks, but not about the parallel rawmidi operations. For addressing the race, this patch introduced a new spinlock that covers each rawmidi operation as well as the rawmidi handling in the complete callback. The URB is cleared with the lock, so it guarantees that the pending rawmidi task already finished or a NULL check is effective.

Products
Kernel
Affected versions
Not specified
Fixed versions
6.1.189, 6.12.112, 6.18.54, 6.6.158, 7.2.8
CVEs
CVE-2026-98316
Confirmed fixed CVEs
Not specified
Updated in this feed
7 Nov 2026, 03:20 UTC · Revision 1

Source evidence

ALSA: bcd2000: Fix race between rawmidi and disconnect

core-osv · Original source

Published 6 Oct 2026, 08:46 UTC

In the Linux kernel, the following vulnerability has been resolved: ALSA: bcd2000: Fix race between rawmidi and disconnect Although we tried to fix the potential UAF issues at USB disconnect on bcd2000 driver, there is still an overlooked case -- namely, when a rawmidi trigger callback has been already running at USB disconnect handling, the in-flight function (e.g. bcd2000_midi_send()) could still access the URB, because the previous URB NULL-check & clearance was considered only for the URB complete callbacks, but not about the parallel rawmidi operations. For addressing the race, this patch introduced a new spinlock that covers each rawmidi operation as well as the rawmidi handling in the complete callback. The URB is cleared with the lock, so it guarantees that the pending rawmidi task already finished or a NULL check is effective.

osv:CVE-2026-98316

Kernel

Fixed versions: 6.1.189, 6.6.158, 6.12.112, 6.18.54, 7.2.8

Complete source record
{
  "id": "c85cd587816ecac2663da02367aaa62d998520fc8118a57a7375feacb1c0eee7",
  "url": "https://osv.dev/vulnerability/CVE-2026-98316",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "ALSA: bcd2000: Fix race between rawmidi and disconnect",
    "summary": "In the Linux kernel, the following vulnerability has been resolved: ALSA: bcd2000: Fix race between rawmidi and disconnect Although we tried to fix the potential UAF issues at USB disconnect on bcd2000 driver, there is still an overlooked case -- namely, when a rawmidi trigger callback has been already running at USB disconnect handling, the in-flight function (e.g. bcd2000_midi_send()) could still access the URB, because the previous URB NULL-check & clearance was considered only for the URB complete callbacks, but not about the parallel rawmidi operations. For addressing the race, this patch introduced a new spinlock that covers each rawmidi operation as well as the rawmidi handling in the complete callback. The URB is cleared with the lock, so it guarantees that the pending rawmidi task already finished or a NULL check is effective.",
    "evidence": "osv:CVE-2026-98316",
    "products": [
      {
        "name": {
          "value": "Kernel",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "6.1.189",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.6.158",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.12.112",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.18.54",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "7.2.8",
            "evidence": "/affected/1/ranges"
          }
        ],
        "affected_versions": []
      }
    ],
    "severity": "unknown",
    "structured": {
      "id": "CVE-2026-98316",
      "aliases": [
        "CVE-2026-98316"
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "3c00004f134fc819f9d9e202c6a64acde0a1f8d0"
                },
                {
                  "fixed": "3b824930259d54f5047ce6b5c97bd20db2fc2b98"
                }
              ]
            },
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "6c07aad8a7c9ef8ebc4d03a964b882123a349a2e"
                },
                {
                  "fixed": "c83d6b0a65f7b71bbabcc91c045dfbffdff6ae76"
                }
              ]
            },
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "eb482a06791d6168beb8c78cc904ac5a5ed96a55"
                },
                {
                  "fixed": "0a7ecf52cb59ed77ec525deb52c496ea8fba10b1"
                }
              ]
            },
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "7df3194bdb7479cad9199889655a566a2c0c1d1b"
                },
                {
                  "fixed": "812ca56867bec3065c2a27f1ff5ce04e2a8bf4f0"
                }
              ]
            },
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "b06ebc7fe25a6af4a9f6e4a3d4236a4178ad4b01"
                },
                {
                  "fixed": "9c8b6eff6e7505c128b615d9a1364ef66fa5c18e"
                }
              ]
            },
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "459d3a64766f5ca2f1886daeaf24582831a5f5ab"
                },
                {
                  "fixed": "221253723dc58bb901c3f27a7659823e63fc598c"
                }
              ]
            },
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "5.10.270"
                },
                {
                  "fixed": "5.11"
                }
              ]
            },
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "5.15.221"
                },
                {
                  "fixed": "5.16"
                }
              ]
            },
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "9af08677aa57debaca5b57c8045c52a83d3dd376"
                }
              ]
            },
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "5a77febac6faf6da40fbb4555f703eeb91b58130"
                }
              ]
            }
          ],
          "versions": [
            "v6.1.188",
            "v6.6.157",
            "v6.12.111",
            "v6.12.110",
            "v6.12.109",
            "v6.18.53",
            "v6.18.52",
            "v6.18.51",
            "v6.18.50",
            "v7.2.7",
            "v7.2.6",
            "v7.2.5",
            "v7.2.4",
            "v5.10.272",
            "v5.10.271",
            "v5.10.270",
            "v5.15.223",
            "v5.15.222",
            "v5.15.221"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-98316.json"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.1.188"
                },
                {
                  "fixed": "6.1.189"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.6.157"
                },
                {
                  "fixed": "6.6.158"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.12.109"
                },
                {
                  "fixed": "6.12.112"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.18.50"
                },
                {
                  "fixed": "6.18.54"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "7.2.4"
                },
                {
                  "fixed": "7.2.8"
                }
              ]
            }
          ],
          "package": {
            "name": "Kernel",
            "ecosystem": "Linux"
          },
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-98316.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:49.359465006Z",
      "provider": "osv",
      "references": [
        "https://git.kernel.org/stable/c/0a7ecf52cb59ed77ec525deb52c496ea8fba10b1",
        "https://git.kernel.org/stable/c/221253723dc58bb901c3f27a7659823e63fc598c",
        "https://git.kernel.org/stable/c/3b824930259d54f5047ce6b5c97bd20db2fc2b98",
        "https://git.kernel.org/stable/c/812ca56867bec3065c2a27f1ff5ce04e2a8bf4f0",
        "https://git.kernel.org/stable/c/9c8b6eff6e7505c128b615d9a1364ef66fa5c18e",
        "https://git.kernel.org/stable/c/c83d6b0a65f7b71bbabcc91c045dfbffdff6ae76",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/98xxx/CVE-2026-98316.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-98316",
        "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/98xxx/CVE-2026-98316.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-98316",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": null
  },
  "source_id": "core-osv",
  "document_id": 517701,
  "published_at": "2026-10-06T08:46:11.528+00:00"
}