Skip to main content

Linux Kernel CVE-2025-40048

HIGH
2025-10-28 416baaa9-dc9f-4396-8d5f-8c081fb06d67
7.5
CVSS 3.1 · Vendor: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Share

Severity by source

Vendor (416baaa9-dc9f-4396-8d5f-8c081fb06d67) PRIMARY
7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
vuln.today AI
4.7 MEDIUM

Local race in a specialized in-guest driver rather than a remote payload gives AV:L/AC:H; the UIO driver must be deployed and in use (PR:L); impact is a hang, availability only.

3.1 AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H
4.0 AV:L/AC:H/AT:P/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE
5.5 MEDIUM
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Red Hat
6.2 MEDIUM
qualitative

Primary rating from Vendor (416baaa9-dc9f-4396-8d5f-8c081fb06d67).

CVSS VectorVendor: 416baaa9-dc9f-4396-8d5f-8c081fb06d67

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

2
Analysis Generated
Jul 30, 2026 - 07:53 vuln.today
CVE Published
Oct 28, 2025 - 12:15 cve.org
HIGH 7.5

DescriptionCVE.org

In the Linux kernel, the following vulnerability has been resolved:

uio_hv_generic: Let userspace take care of interrupt mask

Remove the logic to set interrupt mask by default in uio_hv_generic driver as the interrupt mask value is supposed to be controlled completely by the user space. If the mask bit gets changed by the driver, concurrently with user mode operating on the ring, the mask bit may be set when it is supposed to be clear, and the user-mode driver will miss an interrupt which will cause a hang.

For eg- when the driver sets inbound ring buffer interrupt mask to 1, the host does not interrupt the guest on the UIO VMBus channel. However, setting the mask does not prevent the host from putting a message in the inbound ring buffer. So let’s assume that happens, the host puts a message into the ring buffer but does not interrupt.

Subsequently, the user space code in the guest sets the inbound ring buffer interrupt mask to 0, saying “Hey, I’m ready for interrupts”. User space code then calls pread() to wait for an interrupt. Then one of two things happens:

  • The host never sends another message. So the pread() waits forever.
  • The host does send another message. But because there’s already a

message in the ring buffer, it doesn’t generate an interrupt. This is the correct behavior, because the host should only send an interrupt when the inbound ring buffer transitions from empty to not-empty. Adding an additional message to a ring buffer that is not empty is not supposed to generate an interrupt on the guest. Since the guest is waiting in pread() and not removing messages from the ring buffer, the pread() waits forever.

This could be easily reproduced in hv_fcopy_uio_daemon if we delay setting interrupt mask to 0.

Similarly if hv_uio_channel_cb() sets the interrupt_mask to 1, there’s a race condition. Once user space empties the inbound ring buffer, but before user space sets interrupt_mask to 0, the host could put another message in the ring buffer but it wouldn’t interrupt. Then the next pread() would hang.

Fix these by removing all instances where interrupt_mask is changed, while keeping the one in set_event() unchanged to enable userspace control the interrupt mask by writing 0/1 to /dev/uioX.

AnalysisAI

Denial of service in the Linux kernel's uio_hv_generic driver affects Hyper-V guest VMs that expose VMBus channels to userspace UIO drivers, where the kernel driver improperly manipulated the ring-buffer interrupt mask concurrently with user space. This race causes the guest user-mode driver to miss a host interrupt and hang indefinitely inside pread(), stalling the affected service. No public exploit identified at time of analysis; EPSS is low (0.21%, 12th percentile) and it is not on the CISA KEV list.

Technical ContextAI

The affected component is uio_hv_generic, the userspace I/O (UIO) bridge for Microsoft Hyper-V VMBus channels, used by helper daemons such as hv_fcopy_uio_daemon. VMBus communication uses inbound/outbound ring buffers, and the host only raises a guest interrupt when a ring transitions from empty to non-empty. An interrupt_mask bit governs whether the host signals the guest. The bug is a concurrency/race condition (functionally a CWE-362-class defect, though the input lists CWE as N/A): the kernel driver set interrupt_mask by default and inside hv_uio_channel_cb(), while by design that bit is meant to be owned exclusively by user space via writes of 0/1 to /dev/uioX. If the driver sets the mask while user space is operating on the ring, the guest can miss the empty-to-non-empty transition and never be woken. The fix removes all driver-side interrupt_mask writes except the one in set_event(), returning full control of the mask to user space.

Affected ProductsAI

The affected product is the Linux kernel, specifically the uio_hv_generic driver used by Hyper-V guests that expose VMBus channels to user space (e.g., via hv_fcopy_uio_daemon). No CPE strings or explicit version ranges were provided in the input; the eight git.kernel.org/stable commit references (01ce972e, 2af39ab5, 37bd91f2, 540aac11, 65d40acd, a44f61f8, b15b7d2a, e29587c0) indicate the fix was applied to mainline and backported across multiple stable kernel branches, but the exact vulnerable version ranges are not stated in the available data. Only Linux guests running under Hyper-V with the UIO generic VMBus driver in use are practically affected.

RemediationAI

Update to a Linux kernel build that includes the fix removing the driver-side interrupt_mask writes; the fix is distributed as the stable-tree commits referenced (for example https://git.kernel.org/stable/c/a44f61f878f32071d6378e8dd7c2d47f9490c8f7 and the seven sibling commits), so apply your distribution's kernel update that incorporates the matching stable commit for your branch. Upstream fix available (commit); a single released/tagged patched version is not independently confirmed from the input, so consult your distro advisory for the exact package version. As a compensating measure where you cannot immediately patch, ensure user-space UIO daemons set the inbound interrupt mask to 0 promptly and avoid delaying that operation (the described reproduction relies on delaying it); if the uio_hv_generic userspace path is not required, unbind or avoid loading the driver so the vulnerable code path is not exercised - the trade-off is loss of Hyper-V userspace VMBus functionality such as file-copy operations.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
Container suse/hpc/warewulf4-x86_64/sle-hpc-node:latest Image SLES15-SP6 Image SLES15-SP6-BYOS Image SLES15-SP6-BYOS-Azure Image SLES15-SP6-BYOS-EC2 Image SLES15-SP6-BYOS-GCE Image SLES15-SP6-CHOST-BYOS Image SLES15-SP6-CHOST-BYOS-Aliyun Image SLES15-SP6-CHOST-BYOS-Azure Image SLES15-SP6-CHOST-BYOS-EC2 Image SLES15-SP6-CHOST-BYOS-GCE Image SLES15-SP6-CHOST-BYOS-GDC Image SLES15-SP6-CHOST-BYOS-SAP-CCloud Image SLES15-SP6-EC2 Image SLES15-SP6-EC2-ECS-HVM Image SLES15-SP6-GCE Image SLES15-SP6-HPC-BYOS Image SLES15-SP6-HPC-BYOS-Azure Image SLES15-SP6-HPC-BYOS-EC2 Image SLES15-SP6-HPC-BYOS-GCE Image SLES15-SP6-HPC-EC2 Image SLES15-SP6-HPC-GCE Image SLES15-SP6-Hardened-BYOS Image SLES15-SP6-Hardened-BYOS-Azure Image SLES15-SP6-Hardened-BYOS-EC2 Image SLES15-SP6-Hardened-BYOS-GCE Image SLES15-SP6-SAP Image SLES15-SP6-SAP-Azure Image SLES15-SP6-SAP-EC2 Image SLES15-SP6-SAP-GCE Image SLES15-SP6-SAPCAL Image SLES15-SP6-SAPCAL-Azure Image SLES15-SP6-SAPCAL-EC2 Image SLES15-SP6-SAPCAL-GCE Affected
Container suse/sl-micro/6.0/baremetal-os-container:latest Container suse/sl-micro/6.0/toolbox:latest Affected
Container suse/sl-micro/6.0/base-os-container:2.1.3-7.95 Image SLE-Micro Image SLE-Micro-Azure Image SLE-Micro-BYOS Image SLE-Micro-BYOS-Azure Image SLE-Micro-BYOS-EC2 Image SLE-Micro-BYOS-GCE Image SLE-Micro-EC2 Image SLE-Micro-GCE Affected
Container suse/sl-micro/6.0/kvm-os-container:2.1.3-6.114 Affected
Container suse/sl-micro/6.0/rt-os-container:2.1.3-7.116 Affected

Share

CVE-2025-40048 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy