CVE-2025-22068
NoneCVSS
—
EPSS
0.2%
Published
Apr 16, 2025
CISA due date
—
Cloudanix analysis
A flaw in the Linux kernel's handling of certain storage devices could let an attacker already on the system corrupt memory or gain higher privileges, so systems should be updated to the corrected kernel version.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- Moderate
- Impact
- Full Compromise
- Component
- OS kernel
- Class
- Use After Free
- Remediation
- Patch
- Effort
- Medium
- Patch risk
- Low
What it actually does
Use-after-free in the ublk driver caused by ubq->canceling not being reliably observable from ublk_queue_rq() when the request queue is frozen, allowing uring_cmd operations to proceed after the associated structures have been released.
Why it matters to the business
Potential kernel memory corruption or privilege escalation on systems using the ublk block device driver, especially in container or virtualized environments; low exploitability reduces immediate risk but still requires patching of affected Linux kernels.
How an attack unfolds
An attacker with local access triggers queue freezing while uring_cmd operations are in flight; because the canceling flag is not set, ublk_queue_rq() dispatches a request that later completes against freed memory, leading to use-after-free. No public exploitation observed despite mentions of related Linux kernel privilege-escalation campaigns.
How to fix it
Upgrade to a kernel containing commit 7e3497d7dacb5aee69dd9be842b778083cae0e75 or later; rebuild and reboot with the fixed ublk driver. For listed Red Hat packages apply python-werkzeug and python3-werkzeug updates to 2.0.1-9.el8ost where applicable.
How to confirm the fix worked
Confirm the presence of commit 7e3497d7dacb5aee69dd9be842b778083cae0e75 in the running kernel source; verify ubq->canceling is set before queue freeze in code review or runtime tracing; test that uring_cmd operations are rejected cleanly when the queue is frozen.
Typical attack path
- Obtain local code execution on a system with ublk enabled
- Craft workload that freezes the request queue while uring_cmd requests are pending
- Trigger dispatch path in ublk_queue_rq() after structures are released
- Achieve memory corruption or escalation via the resulting use-after-free
How to detect it
Review kernel logs for ublk-related use-after-free warnings or oops messages around queue freeze events; inspect io_uring command completion paths for unexpected behavior; correlate with process activity using ublk devices.
What your security team should do
- Prioritize kernel updates on hosts using ublk or io_uring block devices
- Audit container runtimes and virtual machine images for vulnerable kernel versions
- Monitor EPSS and threat actor activity for any increase in exploit maturity
- Apply fixed versions listed for Red Hat OpenStack packages if present in the environment
The record
In the Linux kernel, the following vulnerability has been resolved: ublk: make sure ubq->canceling is set when queue is frozen Now ublk driver depends on `ubq->canceling` for deciding if the request can be dispatched via uring_cmd & io_uring_cmd_complete_in_task(). Once ubq->canceling is set, the uring_cmd can be done via ublk_cancel_cmd() and io_uring_cmd_done(). So set ubq->canceling when queue is frozen, this way makes sure that the flag can be observed from ublk_queue_rq() reliably, and avoids use-after-free on uring_cmd.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:10 | kernel | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-64k | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-64k | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-64k-core | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-64k-core | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-64k-debug | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-64k-debug | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-64k-debug-core | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-64k-debug-core | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-64k-debug-devel | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-64k-debug-devel | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-64k-debug-devel-matched | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-64k-debug-devel-matched | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-64k-debug-modules | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-64k-debug-modules | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-64k-debug-modules-core | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-64k-debug-modules-core | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-64k-debug-modules-extra | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-64k-debug-modules-extra | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-64k-devel | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-64k-devel | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-64k-devel-matched | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-64k-devel-matched | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-64k-modules | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-64k-modules | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-64k-modules-core | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-64k-modules-core | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-64k-modules-extra | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-64k-modules-extra | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-abi-stablelists | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-abi-stablelists | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-core | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-core | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-cross-headers | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-cross-headers | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-debug | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-debug | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-debug-core | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-debug-core | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-debug-devel | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-debug-devel | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-debug-devel-matched | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-debug-devel-matched | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-debug-modules | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-debug-modules | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-debug-modules-core | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-debug-modules-core | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-debug-modules-extra | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-debug-modules-extra | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-debug-uki-virt | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-debug-uki-virt | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-devel | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-devel | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-devel-matched | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-devel-matched | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-doc | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-doc | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-headers | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-headers | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-modules | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-modules | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-modules-core | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-modules-core | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-modules-extra | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-modules-extra | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-modules-extra-matched | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-rt | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-rt | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-rt-64k | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-rt-64k | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-rt-64k-core | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-rt-64k-core | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-rt-64k-debug | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-rt-64k-debug | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-rt-64k-debug-core | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-rt-64k-debug-core | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-rt-64k-debug-devel | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-rt-64k-debug-devel | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-rt-64k-debug-modules | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-rt-64k-debug-modules | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-rt-64k-debug-modules-core | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-rt-64k-debug-modules-core | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-rt-64k-debug-modules-extra | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-rt-64k-debug-modules-extra | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-rt-64k-devel | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-rt-64k-devel | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-rt-64k-modules | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-rt-64k-modules | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-rt-64k-modules-core | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-rt-64k-modules-core | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-rt-64k-modules-extra | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-rt-64k-modules-extra | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-rt-core | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-rt-core | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-rt-debug | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-rt-debug | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-rt-debug-core | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-rt-debug-core | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-rt-debug-devel | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-rt-debug-devel | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-rt-debug-kvm | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-rt-debug-modules | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-rt-debug-modules | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-rt-debug-modules-core | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-rt-debug-modules-core | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-rt-debug-modules-extra | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-rt-debug-modules-extra | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-rt-devel | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-rt-devel | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-rt-kvm | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-rt-modules | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-rt-modules | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-rt-modules-core | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-rt-modules-core | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-rt-modules-extra | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-rt-modules-extra | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-tools | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-tools | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-tools-libs | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-tools-libs | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-tools-libs-devel | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-tools-libs-devel | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-uki-virt | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-uki-virt | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-uki-virt-addons | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-uki-virt-addons | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-zfcpdump | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-zfcpdump | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-zfcpdump-core | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-zfcpdump-core | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-zfcpdump-devel | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-zfcpdump-devel | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-zfcpdump-devel-matched | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-zfcpdump-devel-matched | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-zfcpdump-modules | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-zfcpdump-modules | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-zfcpdump-modules-core | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-zfcpdump-modules-core | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | kernel-zfcpdump-modules-extra | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | kernel-zfcpdump-modules-extra | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | libperf | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | libperf | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | perf | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | perf | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | python3-perf | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | python3-perf | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | rtla | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | rtla | 0 | 6.12.0-124.16.1.el10_1 |
| AlmaLinux:10 | rv | 0 | 6.12.0-55.33.1.el10_0 |
| AlmaLinux:10 | rv | 0 | 6.12.0-124.16.1.el10_1 |
| Debian:13 | linux | 0 | No fix |
| Debian:13 | linux | 0 | 6.12.25-1 |
| Linux | Kernel | 6.7.0 | 6.12.23 |
Related vulnerabilities
- CVE-2025-68285 In the Linux kernel, the following vulnerability has been resolved: libceph: fix… Also affects kernel
- CVE-2025-68287 In the Linux kernel, the following vulnerability has been resolved: usb: dwc3: Fix race… Also affects kernel
- CVE-2025-40277 In the Linux kernel, the following vulnerability has been resolved: drm/vmwgfx: Validate… Also affects kernel
- CVE-2025-40240 In the Linux kernel, the following vulnerability has been resolved: sctp: avoid NULL… Also affects kernel
- CVE-2025-40185 In the Linux kernel, the following vulnerability has been resolved: ice: ice_adapter… Also affects kernel
- CVE-2025-40176 In the Linux kernel, the following vulnerability has been resolved: tls: wait for pending… Also affects kernel
- CVE-2025-40058 In the Linux kernel, the following vulnerability has been resolved: iommu/vt-d: Disallow… Also affects kernel
- CVE-2025-40047 In the Linux kernel, the following vulnerability has been resolved: io_uring/waitid… Also affects kernel