Cloudanix VulnDB

CVE-2026-43475

Medium · 5.5

CVSS

5.5

EPSS

0.2%

Published

May 8, 2026

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Track

A flaw in some Linux virtual machines on Hyper-V can let a local user or workload crash or freeze the system by triggering heavy storage activity.

Exploitation
Local Privilege
Attacker needs
Low Privilege
Complexity
Moderate
Impact
Denial Of Service
Component
OS kernel
Class
Denial of service
Remediation
Upgrade
Effort
Medium
Patch risk
Medium

What it actually does

This flaw is a Linux kernel availability issue in the Hyper-V SCSI storage driver, hv_storvsc/storvsc, when the kernel is built or running with PREEMPT_RT real-time preemption enabled. Under local I/O activity, storvsc_queuecommand can attempt an operation that may sleep while execution is in an atomic/preemption-disabled context, triggering a kernel "scheduling while atomic" condition. On affected Hyper-V virtual machines, this can result in kernel warnings, stalled storage I/O, or a system lock-up. The impact is availability only; the provided CVSS vector indicates local, low-complexity exploitation requiring local privileges, with no confidentiality or integrity impact.

Why it matters to the business

Organizations running Linux real-time kernels on Hyper-V may experience VM hangs or storage-related outages if a local user or workload triggers the vulnerable code path through disk I/O. The most likely consequence is service disruption, failed jobs, delayed processing, or the need to reboot affected systems. Because this is not in CISA KEV, has very low EPSS, and has no known public exploit maturity in the supplied data, broad internet-scale exploitation is unlikely; however, critical real-time or latency-sensitive workloads using Hyper-V storage should treat it as an operational stability risk.

How an attack unfolds

An attacker must first have local ability to run code or otherwise generate disk I/O on an affected Linux guest. The target system must be using the Hyper-V storvsc storage path and PREEMPT_RT must be enabled. The attacker then generates sufficient read/write activity, such as repeated filesystem writes or I/O stress, to drive SCSI requests through storvsc_queuecommand. When the vulnerable path is hit, the driver may attempt to acquire a sleeping RT lock or send through the Hyper-V VMBus ring buffer while preemption is disabled. The kernel detects scheduling while atomic and the VM may lock up or become unresponsive, causing a denial of service. There is no indication from the supplied data that this flaw enables privilege escalation, data theft, or remote unauthenticated compromise.

How to fix it

Apply the Linux kernel update that includes the storvsc PREEMPT_RT scheduling fix for the distribution and kernel stream in use. No exact fixed package versions were provided, so administrators should consult their Linux distribution, cloud image, or kernel vendor advisories for CVE-2026-43475 and deploy the corrected kernel. After updating, reboot into the fixed kernel and verify the running kernel version, because kernel package installation alone does not remediate until the host is running the patched kernel. Where immediate patching is not possible, reduce exposure by avoiding PREEMPT_RT kernels on affected Hyper-V guests where real-time behavior is not required, limiting local shell or workload execution to trusted users, isolating untrusted workloads, and monitoring/restarting affected VMs if storage stalls occur. For high-availability services, fail workloads over before patching to avoid unplanned downtime.

How to confirm the fix worked

Confirm exposure by checking whether the system is a Linux guest using Hyper-V storage modules such as hv_storvsc and whether PREEMPT_RT is enabled in the running kernel configuration. Validate remediation by confirming the machine has rebooted into a vendor kernel version that contains the storvsc fix, then review kernel logs for absence of new "BUG: scheduling while atomic" events involving storvsc_queuecommand, hv_ringbuffer_write, vmbus_sendpacket_mpb_desc, or hv_storvsc during normal and representative storage I/O. In test environments, run controlled disk I/O stress against a patched Hyper-V guest with PREEMPT_RT enabled and verify the VM remains responsive and no relevant kernel splats are emitted. Do not use destructive stress testing on production systems without change control and rollback plans.

Typical attack path

  1. Gain local access to an affected Linux virtual machine, or obtain the ability to run a workload that performs disk I/O.
  2. Confirm or rely on the system using the Hyper-V SCSI storage driver, typically hv_storvsc, with PREEMPT_RT enabled.
  3. Generate sustained filesystem or block-device I/O, for example repeated writes, reads, or I/O stress workloads.
  4. Trigger the vulnerable storvsc_queuecommand path during SCSI request submission.
  5. Cause a kernel "scheduling while atomic" condition that may stall storage I/O or lock up the virtual machine.
  6. Wait for service degradation, watchdog intervention, or administrative reboot/recovery.

How to detect it

To determine whether this issue may already have been triggered, review kernel and system logs from affected Linux Hyper-V guests, including journalctl -k, /var/log/kern.log, /var/log/messages, /var/log/syslog, persistent pstore records, crash dumps, and hypervisor/VM availability telemetry. Search for kernel splats containing "BUG: scheduling while atomic" with call traces that include storvsc_queuecommand, hv_storvsc, hv_ringbuffer_write, vmbus_sendpacket_mpb_desc, scsi_queue_rq, or blk_mq functions. Correlate these events with local user sessions, cron jobs, containers, batch workloads, backup jobs, database maintenance, or I/O stress tools that were active immediately beforehand. Also look for sudden VM lockups, storage timeouts, watchdog resets, unexpected reboots, or gaps in telemetry following the kernel message. These artifacts indicate the vulnerable condition was likely reached, but they are not proof of malicious exploitation because ordinary high-I/O workloads can trigger the same failure mode.

  • BUG: scheduling while atomic
  • storvsc_queuecommand
  • hv_storvsc
  • hv_ringbuffer_write
  • vmbus_sendpacket_mpb_desc
  • schedule_rtlock
  • rtlock_slowlock_locked
  • rt_spin_lock
  • scsi_queue_rq
  • blk_mq_issue_direct
  • blk_mq_dispatch_queue_requests
  • Preemption disabled at:
  • PREEMPT_RT
  • stress-ng-iomix
  • Modules linked in:
  • /var/log/kern.log
  • /var/log/messages
  • /var/log/syslog
  • /sys/fs/pstore/

What your security team should do

  • Prioritize inventory of Linux VMs running on Hyper-V with PREEMPT_RT or real-time kernel variants enabled.
  • Patch and reboot affected real-time Hyper-V Linux guests using the vendor-provided kernel update as soon as operationally practical, prioritizing production systems with heavy storage I/O.
  • If real-time preemption is not required, consider moving affected workloads to a non-PREEMPT_RT kernel until the fixed RT kernel is available and deployed.
  • Restrict local interactive access and untrusted workload execution on exposed systems, because exploitation requires local privileges or the ability to generate local I/O.
  • Add monitoring for kernel log messages indicating "scheduling while atomic" in hv_storvsc/storvsc paths and alert on repeated storage-driver splats or VM responsiveness failures.
  • Coordinate patching with service owners because the remediation requires booting into a fixed kernel and may require planned downtime or workload failover.
  • Because KEV is false, ransomware use is not indicated, EPSS is very low, and exploit maturity is listed as none, handle this as a targeted availability/stability risk rather than an emergency internet-facing remote code execution event.

The record

In the Linux kernel, the following vulnerability has been resolved: scsi: storvsc: Fix scheduling while atomic on PREEMPT_RT This resolves the follow splat and lock-up when running with PREEMPT_RT enabled on Hyper-V: [ 415.140818] BUG: scheduling while atomic: stress-ng-iomix/1048/0x00000002 [ 415.140822] INFO: lockdep is turned off. [ 415.140823] Modules linked in: intel_rapl_msr intel_rapl_common intel_uncore_frequency_common intel_pmc_core pmt_telemetry pmt_discovery pmt_class intel_pmc_ssram_telemetry intel_vsec ghash_clmulni_intel aesni_intel rapl binfmt_misc nls_ascii nls_cp437 vfat fat snd_pcm hyperv_drm snd_timer drm_client_lib drm_shmem_helper snd sg soundcore drm_kms_helper pcspkr hv_balloon hv_utils evdev joydev drm configfs efi_pstore nfnetlink vsock_loopback vmw_vsock_virtio_transport_common hv_sock vmw_vsock_vmci_transport vsock vmw_vmci efivarfs autofs4 ext4 crc16 mbcache jbd2 sr_mod sd_mod cdrom hv_storvsc serio_raw hid_generic scsi_transport_fc hid_hyperv scsi_mod hid hv_netvsc hyperv_keyboard scsi_common [ 415.140846] Preemption disabled at: [ 415.140847] [<ffffffffc0656171>] storvsc_queuecommand+0x2e1/0xbe0 [hv_storvsc] [ 415.140854] CPU: 8 UID: 0 PID: 1048 Comm: stress-ng-iomix Not tainted 6.19.0-rc7 #30 PREEMPT_{RT,(full)} [ 415.140856] Hardware name: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS Hyper-V UEFI Release v4.1 09/04/2024 [ 415.140857] Call Trace: [ 415.140861] <TASK> [ 415.140861] ? storvsc_queuecommand+0x2e1/0xbe0 [hv_storvsc] [ 415.140863] dump_stack_lvl+0x91/0xb0 [ 415.140870] __schedule_bug+0x9c/0xc0 [ 415.140875] __schedule+0xdf6/0x1300 [ 415.140877] ? rtlock_slowlock_locked+0x56c/0x1980 [ 415.140879] ? rcu_is_watching+0x12/0x60 [ 415.140883] schedule_rtlock+0x21/0x40 [ 415.140885] rtlock_slowlock_locked+0x502/0x1980 [ 415.140891] rt_spin_lock+0x89/0x1e0 [ 415.140893] hv_ringbuffer_write+0x87/0x2a0 [ 415.140899] vmbus_sendpacket_mpb_desc+0xb6/0xe0 [ 415.140900] ? rcu_is_watching+0x12/0x60 [ 415.140902] storvsc_queuecommand+0x669/0xbe0 [hv_storvsc] [ 415.140904] ? HARDIRQ_verbose+0x10/0x10 [ 415.140908] ? __rq_qos_issue+0x28/0x40 [ 415.140911] scsi_queue_rq+0x760/0xd80 [scsi_mod] [ 415.140926] __blk_mq_issue_directly+0x4a/0xc0 [ 415.140928] blk_mq_issue_direct+0x87/0x2b0 [ 415.140931] blk_mq_dispatch_queue_requests+0x120/0x440 [ 415.140933] blk_mq_flush_plug_list+0x7a/0x1a0 [ 415.140935] __blk_flush_plug+0xf4/0x150 [ 415.140940] __submit_bio+0x2b2/0x5c0 [ 415.140944] ? submit_bio_noacct_nocheck+0x272/0x360 [ 415.140946] submit_bio_noacct_nocheck+0x272/0x360 [ 415.140951] ext4_read_bh_lock+0x3e/0x60 [ext4] [ 415.140995] ext4_block_write_begin+0x396/0x650 [ext4] [ 415.141018] ? __pfx_ext4_da_get_block_prep+0x10/0x10 [ext4] [ 415.141038] ext4_da_write_begin+0x1c4/0x350 [ext4] [ 415.141060] generic_perform_write+0x14e/0x2c0 [ 415.141065] ext4_buffered_write_iter+0x6b/0x120 [ext4] [ 415.141083] vfs_write+0x2ca/0x570 [ 415.141087] ksys_write+0x76/0xf0 [ 415.141089] do_syscall_64+0x99/0x1490 [ 415.141093] ? rcu_is_watching+0x12/0x60 [ 415.141095] ? finish_task_switch.isra.0+0xdf/0x3d0 [ 415.141097] ? rcu_is_watching+0x12/0x60 [ 415.141098] ? lock_release+0x1f0/0x2a0 [ 415.141100] ? rcu_is_watching+0x12/0x60 [ 415.141101] ? finish_task_switch.isra.0+0xe4/0x3d0 [ 415.141103] ? rcu_is_watching+0x12/0x60 [ 415.141104] ? __schedule+0xb34/0x1300 [ 415.141106] ? hrtimer_try_to_cancel+0x1d/0x170 [ 415.141109] ? do_nanosleep+0x8b/0x160 [ 415.141111] ? hrtimer_nanosleep+0x89/0x100 [ 415.141114] ? __pfx_hrtimer_wakeup+0x10/0x10 [ 415.141116] ? xfd_validate_state+0x26/0x90 [ 415.141118] ? rcu_is_watching+0x12/0x60 [ 415.141120] ? do_syscall_64+0x1e0/0x1490 [ 415.141121] ? do_syscall_64+0x1e0/0x1490 [ 415.141123] ? rcu_is_watching+0x12/0x60 [ 415.141124] ? do_syscall_64+0x1e0/0x1490 [ 415.141125] ? do_syscall_64+0x1e0/0x1490 [ 415.141127] ? irqentry_exit+0x140/0 ---truncated---

Affected packages

Ecosystem Package Introduced Fixed