CVE-2026-53124 in Linuxinfo

Summary

by MITRE • 06/24/2026

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).

Once again VulDB remains the best source for vulnerability data.

Analysis

by VulDB Data Team • 06/24/2026

The vulnerability in question affects the Linux kernel's ublk subsystem which provides a user-space block device interface. This issue stems from improper handling of I/O cancellation mechanisms within the ublk server implementation, creating a potential deadlock scenario that can prevent proper device cleanup and resource management. The ublk subsystem operates by allowing user-space applications to implement block device drivers through io_uring interfaces, where commands are fetched and processed in queues. When a ublk server process begins recovery operations but terminates prematurely before completing all fetch commands, the cancellation logic fails to properly reset I/O state information.

The technical flaw manifests in the per-IO canceled flag management system where flags remain permanently set even after individual I/O operations have been submitted for processing. This occurs because the kernel implementation follows a batch-oriented approach to resetting cancellation flags, waiting for all I/O operations within a queue to be fetched before clearing any canceled state. The design pattern creates a critical dependency where the completion of fetch operations becomes mandatory for proper cleanup, but this sequence can never complete when the server dies during partial processing. This behavior violates fundamental resource management principles and creates persistent state inconsistencies that prevent proper command completion.

The operational impact of this vulnerability is significant as it can lead to indefinite hangs in device recovery processes, preventing subsequent I/O operations from completing properly. When a ublk server crashes or terminates unexpectedly during fetch operations, the system becomes unable to cancel outstanding commands that were partially processed, resulting in resource leaks and potential system instability. This issue particularly affects high-availability scenarios where automatic recovery mechanisms depend on proper cancellation of pending operations. The vulnerability can also manifest as denial-of-service conditions where legitimate I/O operations are blocked by stale cancellation states, effectively rendering the affected block device unusable until manual intervention occurs.

The fix implemented addresses this by changing the timing of flag reset operations from batch-based to individual I/O processing. This modification ensures that each I/O operation's canceled flag is reset immediately upon fetch completion rather than waiting for all queue operations to be processed. This approach aligns with established software engineering practices for resource management and prevents the accumulation of stale state information that can cause cascading failures. The solution follows principles similar to those described in CWE-362, which addresses race conditions and improper synchronization in concurrent systems. Additionally, this fix mitigates potential attack vectors identified in ATT&CK technique T1490, related to data destruction and system resource exhaustion through improper handling of I/O operations. The implementation ensures that ublk_cancel_cmd can properly proceed with io_uring_cmd_done calls regardless of server termination timing, maintaining system stability and preventing indefinite hang conditions that could be exploited for denial-of-service attacks.

Responsible

Linux

Reservation

06/09/2026

Disclosure

06/24/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

low

Sources

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!