{
  "schema_version": "1.6.1",
  "id": "RPI-CVE-2026-80967",
  "modified": "2026-10-09T11:39:44Z",
  "upstream": [
    "CVE-2026-80967"
  ],
  "published": "2026-09-11T19:47:07Z",
  "summary": "ALSA: pcxhr: initialize mutexes before requesting threaded IRQ",
  "details": "In the Linux kernel, the following vulnerability has been resolved:\n\nALSA: pcxhr: initialize mutexes before requesting threaded IRQ\n\npcxhr_probe() requests pcxhr_threaded_irq() before initializing\nmgr->lock, even though the threaded handler takes that mutex.\n\nInitialize the manager locks before request_threaded_irq() so an\nearly interrupt cannot run against uninitialized mutex state during\nprobe.",
  "severity": [
    {
      "type": "CVSS_V3",
      "score": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"
    }
  ],
  "affected": [
    {
      "package": {
        "ecosystem": "Raspberry Pi OS:12",
        "name": "linux"
      },
      "versions": [
        "1:6.1.47-1+rpt4"
      ],
      "ecosystem_specific": {
        "binaries": [
          {
            "binary_name": "linux-image-6.1.0-rpi3-rpi-2712",
            "binary_version": "1:6.1.47-1+rpt4"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi3-rpi-v6",
            "binary_version": "1:6.1.47-1+rpt4"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi3-rpi-v7",
            "binary_version": "1:6.1.47-1+rpt4"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi3-rpi-v7l",
            "binary_version": "1:6.1.47-1+rpt4"
          },
          {
            "binary_name": "linux-image-6.1.0-rpi3-rpi-v8",
            "binary_version": "1:6.1.47-1+rpt4"
          }
        ]
      },
      "database_specific": {
        "per_version": {
          "1:6.1.47-1+rpt4": {
            "linux_commit": "655fc658a15ae7a6f37103754adb39ba52a9a14e",
            "upstream_version": "6.1.47",
            "assessment": "commit ancestry (strak rule)",
            "upstream_fixed": "6.1.188",
            "compiled_filter": false
          }
        }
      }
    }
  ],
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://www.cve.org/CVERecord?id=CVE-2026-80967"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/039602d6ddb1febbb0561b30dab04461f78a1319"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/a5f405adb0229c9cf64eb3d695c333c92e3d3d4f"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/ede25b7fea0d7487ee8528bf35dc7b9a1cbcd814"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/c069b3cfd753d6688ea0271c43553631ab38ce10"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/7ef9ad82d95dd3c74570d80a689a0570fbc7539e"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/7cf280fbef5db6310e1b32074c8c34d1ba459796"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/6c97817e20598e5473094e0e38d1f51f1cf4dfff"
    }
  ],
  "database_specific": {
    "source": "https://git.kernel.org/pub/scm/linux/security/vulns.git",
    "upstream_modified": "2026-09-14T12:06:03Z",
    "severity": {
      "source": "kernel CNA",
      "cvss_v3_score": 8.4,
      "cvss_v3_severity": "High",
      "scenario": "AV:L - The flaw is reached only from snd-pcxhr PCI probe (pcxhr_probe() -> request_threaded_irq() -> pcxhr_threaded_irq()) on a locally attached Digigram PCXHR board; studio, broadcast, and embedded audio systems enumerate that card at boot or udev bind, which is a local PCI probe path, not a network or USB protocol path.\nAC:L - pcxhr_probe() never masks PLX doorbell IRQs before request_threaded_irq(), so leftover or device-asserted PCXHR_IRQCS_ACTIVE_PCIDB plus TIMER/MASK bits wake pcxhr_threaded_irq() immediately; on preemptible kernels that handler preempts probe before mutex_init(), so the attacker does not depend on an uncontrollable race.\nPR:N - pcxhr_probe() performs no capability or authentication checks; when matching PCI hardware is present, kernel enumeration/udev runs the vulnerable request_threaded_irq() sequence automatically without an OS account or user-namespace privilege.\nUI:N - The uninitialized mutex is taken in the threaded IRQ during automatic PCI probe; no victim must open ALSA device nodes, load firmware, or otherwise interact.\nS:U - Uninitialized-mutex use and the follow-on NULL mgr->prmh dereference occur inside the host kernel pcxhr driver and do not cross a VM, container, or IOMMU security boundary.\nC:H - pcxhr_threaded_irq() takes uninitialized mgr->lock (and pcxhr_msg_thread() may take uninitialized mgr->msg_lock) with a zeroed wait_list, then reads through NULL mgr->prmh; that uninitialized-lock/IRQ-thread memory-safety failure can disclose kernel memory rather than a small bounded leak.\nI:H - Probe can mutex_init() mgr->lock while the IRQ thread still holds the zeroed mutex, and pcxhr_init_rmh() writes through NULL prmh; that lock-state corruption and invalid kernel write are exploitable memory-corruption/control-flow primitives, not a pure crash.\nA:H - Locking an uninitialized mutex, DEBUG_MUTEXES checks, and NULL dereference of mgr->prmh in pcxhr_msg_thread() cause a kernel oops or panic during probe, fully denying availability."
    }
  }
}
