MEDIUM 5.5

CVE-2026-53124: Linux Kernel ublk I/O Cancellation Hang Vulnerability

A vulnerability in the Linux kernel's ublk (userspace block device) subsystem can cause I/O cancellation to hang indefinitely when a userspace server process crashes during device recovery. The issue stems from how cancellation flags are managed: when a ublk server dies mid-recovery after fetching only some of the pending I/O operations, those fetched operations retain their cancellation flags and cannot be properly completed. This leaves I/O commands in a stuck state, potentially preventing graceful recovery or shutdown of the affected block device. The fix resets the cancellation flag for each I/O as it is fetched, rather than deferring this reset until all operations for a queue have been processed.

Source data · NVD / CISA · public domain

CVSS
3.1 · 5.5 MEDIUM · CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Weaknesses (CWE)
Affected products
7 configuration(s)
Published / Modified
2026-06-24 / 2026-07-23

NVD description (verbatim)

In the Linux kernel, the following vulnerability has been resolved: ublk: reset per-IO canceled flag on each fetch If a ublk server starts recovering devices but dies before issuing fetch commands for all IOs, cancellation of the fetch commands that were successfully issued may never complete. This is because the per-IO canceled flag can remain set even after the fetch for that IO has been submitted - the per-IO canceled flags for all IOs in a queue are reset together only once all IOs for that queue have been fetched. So if a nonempty proper subset of the IOs for a queue are fetched when the ublk server dies, the IOs in that subset will never successfully be canceled, as their canceled flags remain set, and this prevents ublk_cancel_cmd from actually calling io_uring_cmd_done on the commands, despite the fact that they are outstanding. Fix this by resetting the per-IO cancel flags immediately when each IO is fetched instead of waiting for all IOs for the queue (which may never happen).

2 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

The vulnerability exists in the ublk (userspace block device) driver's handling of I/O cancellation state during server recovery scenarios. The per-IO canceled flags are managed at the queue level: previously, all flags for a queue's I/O operations were reset only after every I/O in that queue had been fetched. If the ublk server process terminates before all fetch operations complete, the subset of IOs that were successfully fetched retain their canceled flag set to true. When ublk_cancel_cmd later attempts to cancel these outstanding commands, the function skips calling io_uring_cmd_done because the canceled flag is already set, leaving the I/O commands in an incomplete state and blocking further processing. The fix moves the per-IO canceled flag reset from the queue-level completion point to the individual fetch operation, ensuring each I/O's state is cleared as soon as its fetch is submitted rather than waiting for queue-wide synchronization that may never occur.

Business impact

This vulnerability affects systems using the Linux kernel's ublk subsystem for userspace-based block device management. On affected systems, a crash or unexpected termination of the ublk server during device recovery can result in hung I/O operations that cannot be canceled or cleaned up properly. This may cause application hangs, inability to unmount filesystems cleanly, or require forceful system intervention to recover. For production environments relying on ublk for storage virtualization or device management, this can lead to service disruptions and complicate disaster recovery procedures.

Affected systems

The Linux kernel is affected across all versions where the ublk subsystem is enabled. The vulnerability is specific to ublk (userspace block device) drivers and impacts systems that utilize userspace-based block device implementations, particularly in virtualized or containerized environments where device recovery scenarios are more likely to occur. Systems without ublk enabled or those not using userspace block devices are not affected.

Exploitability

This vulnerability requires local access to the system and involves triggering a specific failure scenario: a ublk server must be actively recovering devices and then crash or terminate before completing all fetch operations for the pending I/O queue. The issue is not easily exploitable for privilege escalation or remote attack, but rather manifests as a denial-of-service condition where I/O operations become hung. An attacker with local access could potentially intentionally crash a ublk server to cause this condition and disrupt system functionality, though this requires understanding ublk internals and having the ability to control server processes.

Remediation

Apply the Linux kernel patch that resets the per-IO canceled flag at the point each I/O fetch is submitted, rather than deferring the reset until all queue operations are fetched. Users should upgrade to a patched kernel version once available from their Linux distribution or verify against the vendor advisory for specific kernel version numbers containing this fix. For systems where ublk is not required, disabling the subsystem eliminates the attack surface, though this may not be practical for production deployments relying on ublk functionality.

Patch guidance

Monitor your Linux distribution's security advisories for kernel updates addressing CVE-2026-53124. When updates become available, test them in a non-production environment first, particularly if ublk is critical to your storage infrastructure. The patch is a targeted fix to the ublk cancellation logic and should have minimal performance or stability impact. Verify the specific patched kernel version numbers against your vendor's advisory before deployment. Standard kernel update procedures apply; depending on your distribution, you may need to rebuild the kernel or install a pre-built patched version.

Detection guidance

Monitor kernel logs for hung I/O operations or warnings related to ublk command cancellation failures. Systems may exhibit signs of hung processes attempting to interact with ublk devices, particularly during or after ublk server restarts or crashes. Tools like 'dmesg', 'journalctl', or system tracing utilities (ftrace, perf) can help identify when I/O operations fail to complete. Establish baseline monitoring of ublk-related process behavior and alert on unexpected crashes of ublk server processes followed by hung I/O, which would indicate exploitation of this condition.

Why prioritize this

While this is rated MEDIUM severity (CVSS 5.5) with local access requirements, prioritization depends on your deployment model. Organizations running ublk-based storage infrastructure should treat this as HIGH priority due to the potential for complete service disruption and difficult recovery procedures. For general-purpose systems where ublk is not actively used, this can be scheduled into standard patching cycles. The lack of exploitation complexity once access is obtained and the potential for operational disruption justify prompt attention for affected deployments.

Risk score, explained

The CVSS 3.1 score of 5.5 (MEDIUM) reflects local access requirement (AV:L), low attack complexity (AC:L), low privileges needed (PR:L), and no user interaction (UI:N). The impact is availability-focused (A:H) with no confidentiality or integrity impact. The score correctly captures that while the vulnerability requires local access and specific circumstances to trigger, the impact on system availability can be severe. However, operational context matters: ublk-dependent infrastructure may warrant treating this with elevated priority despite the MEDIUM base score.

Frequently asked questions

What is ublk and why should I care about this vulnerability?

ublk (userspace block device) is a Linux kernel subsystem that allows block devices to be managed from userspace rather than in kernel space. This enables flexible, user-controlled storage solutions in virtualized and containerized environments. If your infrastructure uses ublk for storage management and you experience a ublk server crash, this vulnerability could cause I/O operations to hang indefinitely, disrupting service availability.

Does this affect systems that don't use ublk?

No. This vulnerability is specific to the ublk subsystem. If ublk is not enabled in your kernel or you are not using userspace block devices, you are not affected. Most general-purpose Linux systems do not enable or use ublk by default.

Can this be exploited remotely?

No. This vulnerability requires local access to the system and involves crashing or terminating a ublk server process to trigger the hung I/O condition. It cannot be exploited over the network without first gaining local system access.

What should I do immediately?

Check whether your Linux distribution uses ublk and whether it is enabled in your kernel configuration. If you use ublk, monitor your vendor's security advisories for kernel updates and plan to deploy them promptly. If ublk is not critical to your environment, disabling it eliminates the risk. In the interim, monitor for ublk server crashes and hung I/O operations using system logging and alerting tools.

This analysis is based on publicly available vulnerability information as of the publication date. Patch availability, version numbers, and remediation timelines should be verified against official Linux distribution advisories and vendor security bulletins. The CVSS score and vector string are as published by the vulnerability source and represent base-level risk scoring; organizational impact may differ significantly based on deployment context and ublk usage. This vulnerability requires local system access to exploit and does not represent a remote code execution or privilege escalation risk. Organizations should conduct their own risk assessment considering their specific infrastructure and ublk deployment posture. Source: NVD (public-domain), retrieved 2026-08-02. Analysis generated by SEC.co (claude-haiku-4-5).