CVE-2022-50652
Linux Kernel vulnerability analysis and mitigation

Overview

CVE-2022-50652 is a missing spinlock unlock bug in the Linux kernel's uio_dmem_genirq driver, specifically in the IRQ control path (uio_dmem_genirq_irqcontrol()). The vulnerability was introduced by a prior fix (commit b74351287d4b) that moved disable_irq() outside the spinlock to avoid sleeping in atomic context, but inadvertently omitted the spinlock release when an interrupt is already disabled and a new disable request arrives. This results in a "scheduling while atomic" kernel BUG, causing a system hang or crash. The vulnerability affects the Linux kernel and was published on December 9, 2025 (Feedly). The CVSS category is estimated as Medium, with an EPSS score of 0.033% (Feedly).

Technical details

The root cause is a missing spinlock unlock (CWE-667: Improper Locking) in the uio_dmem_genirq_irqcontrol() function of the Linux kernel's UIO (Userspace I/O) subsystem. When a userspace process writes to /dev/uioX to disable an already-disabled interrupt, the code path exits without releasing the spinlock, leaving the kernel in an atomic context with the lock held. This triggers the kernel's "scheduling while atomic" BUG detector, as demonstrated by writing \x00\x00\x00\x00 twice to /dev/uio0 on a system using the uio_dmem_genirq module. The fix involves ensuring the spinlock is properly released in all code paths, including the early-exit case when the interrupt is already in the requested state (Feedly).

Impact

Successful exploitation of this vulnerability causes a kernel BUG (scheduling while atomic) that results in a system hang or crash, impacting availability. A local user with write access to a UIO device node (e.g., /dev/uio0) using the uio_dmem_genirq driver can trigger this condition. There is no known confidentiality or integrity impact; the primary consequence is a denial of service through kernel instability (Feedly).

Exploitability

No public exploit code or in-the-wild exploitation has been reported for CVE-2022-50652. The vulnerability requires local access and the presence of the uio_dmem_genirq kernel module, significantly limiting the attack surface. The EPSS score is approximately 0.033%, indicating a very low probability of exploitation in the near term (Feedly). The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. It is detectable via Nessus plugin 278327 (Tenable).

Exploitation steps

  1. Precondition: Obtain local access to a Linux system with the uio_dmem_genirq kernel module loaded and a UIO device node (e.g., /dev/uio0) accessible to the attacker.
  2. First write: Write a disable-interrupt command to the UIO device: printf '\x00\x00\x00\x00' > /dev/uio0. This disables the interrupt and acquires the spinlock normally.
  3. Second write: Immediately write the same disable command again: printf '\x00\x00\x00\x00' > /dev/uio0. Because the interrupt is already disabled, the code takes an early-exit path without releasing the spinlock.
  4. Trigger kernel BUG: The held spinlock causes the kernel to detect a "scheduling while atomic" condition, resulting in a BUG trace and system instability or crash (Feedly).

Indicators of compromise

  • Logs: Kernel log (dmesg or /var/log/kern.log) entries containing BUG: scheduling while atomic with a call trace referencing uio_dmem_genirq or uio_dmem_genirq_irqcontrol.
  • Process: Repeated writes to /dev/uio0 (or other UIO device nodes) from a shell or script process in rapid succession.
  • System: Unexpected system hangs or kernel panics on systems using the uio_dmem_genirq module, particularly following UIO device write operations (Feedly).

Mitigation and workarounds

Apply the upstream Linux kernel patches that fix the missing spinlock unlock in uio_dmem_genirq_irqcontrol(). The fixes are available in the stable kernel tree via commits 9bf7a0b2b15c, 9de255c461d1, 030b6c7bb1e4, 79a4bdb6b992, and 9977cb7af5a8 (kernel.org). SUSE has issued kernel security updates addressing this CVE (e.g., SUSE-2026:0263-1, SUSE-2026:0317-1, SUSE-2026:0411-1) (Linux Security). As a workaround, restrict access to UIO device nodes or unload the uio_dmem_genirq module if it is not required.

Additional resources


SourceThis report was generated using AI

Related Linux Kernel vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-74730CRITICAL9.8
  • Linux Kernel logoLinux Kernel
  • linux
NoYesAug 22, 2026
CVE-2026-74733HIGH7.8
  • Linux Kernel logoLinux Kernel
  • kernel-64k-debug-devel-matched
NoYesAug 22, 2026
CVE-2026-74726HIGH7.3
  • Linux Kernel logoLinux Kernel
  • kernel
NoYesAug 22, 2026
CVE-2026-74732MEDIUM5.5
  • Linux Kernel logoLinux Kernel
  • kernel-selftests-internal
NoYesAug 22, 2026
CVE-2026-74728NONEN/A
  • Linux Kernel logoLinux Kernel
  • kernel-debug-modules-core
NoNoAug 22, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management