CVE-2026-23148
High · 7.5CVSS
7.5
EPSS
0.3%
Published
Feb 14, 2026
CISA due date
—
Cloudanix analysis
A flaw in how the Linux kernel manages certain storage requests can cause the whole system to crash.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Moderate
- Impact
- Denial Of Service
- Component
- OS kernel
- Class
- Race Condition
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Race condition in nvmet_bio_done() permits nvmet_req_bio_put() to invoke bio_uninit() on the inline_bio after nvmet_req_complete() triggers re-submission via queue_response, leaving bi_blkg NULL when the re-queued bio reaches blk_cgroup_bio_start() inside submit_bio_noacct_nocheck().
Why it matters to the business
Systems exposing NVMe over Fabrics target functionality can suffer unexpected kernel crashes and service interruption; widespread Linux kernel deployment increases operational risk until patched releases are applied.
How an attack unfolds
An attacker with network access to submit NVMe commands triggers repeated bio completion and re-queuing paths in nvmet; the window between nvmet_req_complete() and the subsequent nvmet_req_bio_put() allows the same inline_bio to be re-submitted while bi_blkg has already been cleared, resulting in the NULL dereference crash.
How to fix it
Upgrade the Linux kernel to version 6.12.69 or apply commit ee10b06980acca1d46e0fa36d6fb4a9578eab6e4; rebuild and reboot affected hosts with the patched kernel image.
How to confirm the fix worked
Confirm running kernel version is at least 6.12.69 or contains commit ee10b06980acca1d46e0fa36d6fb4a9578eab6e4; attempt to reproduce the original race with targeted NVMe command sequences and verify absence of the NULL dereference oops.
Typical attack path
- Submit NVMe read/write commands to nvmet target
- Force bio completion that invokes nvmet_bio_done()
- queue_response callback re-queues the request reusing inline_bio
- nvmet_req_bio_put() runs after re-submission and calls bio_uninit()
- Re-submitted bio reaches blk_cgroup_bio_start() and dereferences NULL bi_blkg
How to detect it
Search kernel logs and crash dumps for oops traces containing blk_cgroup_bio_start, submit_bio_noacct_nocheck, nvmet_bdev_execute_rw, and nvmet_bio_done; correlate with process_one_work and worker_thread entries.
- BUG: kernel NULL pointer dereference, address: 0000000000000028
- RIP: 0010:blk_cgroup_bio_start+0x10/0xd0
- Call Trace: submit_bio_noacct_nocheck+0x44/0x250 nvmet_bdev_execute_rw+0x254/0x370
- nvmet_bio_done
What your security team should do
- Prioritize kernel upgrades on all hosts exposing nvmet target functionality
- Apply the fix within standard change windows given the 254-day exposure window
- Add kernel crash monitoring for nvmet-related oops to detect attempted exploitation
- Review downstream dependent packages and rebuild any custom kernels containing nvmet
The record
In the Linux kernel, the following vulnerability has been resolved: nvmet: fix race in nvmet_bio_done() leading to NULL pointer dereference There is a race condition in nvmet_bio_done() that can cause a NULL pointer dereference in blk_cgroup_bio_start(): 1. nvmet_bio_done() is called when a bio completes 2. nvmet_req_complete() is called, which invokes req->ops->queue_response(req) 3. The queue_response callback can re-queue and re-submit the same request 4. The re-submission reuses the same inline_bio from nvmet_req 5. Meanwhile, nvmet_req_bio_put() (called after nvmet_req_complete) invokes bio_uninit() for inline_bio, which sets bio->bi_blkg to NULL 6. The re-submitted bio enters submit_bio_noacct_nocheck() 7. blk_cgroup_bio_start() dereferences bio->bi_blkg, causing a crash: BUG: kernel NULL pointer dereference, address: 0000000000000028 #PF: supervisor read access in kernel mode RIP: 0010:blk_cgroup_bio_start+0x10/0xd0 Call Trace: submit_bio_noacct_nocheck+0x44/0x250 nvmet_bdev_execute_rw+0x254/0x370 [nvmet] process_one_work+0x193/0x3c0 worker_thread+0x281/0x3a0 Fix this by reordering nvmet_bio_done() to call nvmet_req_bio_put() BEFORE nvmet_req_complete(). This ensures the bio is cleaned up before the request can be re-submitted, preventing the race condition.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Linux | Kernel | 0 | 6.12.69 |
| openSUSE:Leap 16.0 | dtb-aarch64 | 0 | 6.12.0-160000.27.1 |
| openSUSE:Leap 16.0 | kernel-64kb | 0 | 6.12.0-160000.27.1 |
| openSUSE:Leap 16.0 | kernel-azure | 0 | 6.12.0-160000.27.1 |
| openSUSE:Leap 16.0 | kernel-default | 0 | 6.12.0-160000.27.1 |
| openSUSE:Leap 16.0 | kernel-default-base | 0 | 6.12.0-160000.27.1.160000.2.8 |
| openSUSE:Leap 16.0 | kernel-docs | 0 | 6.12.0-160000.27.1 |
| openSUSE:Leap 16.0 | kernel-kvmsmall | 0 | 6.12.0-160000.27.1 |
| openSUSE:Leap 16.0 | kernel-obs-build | 0 | 6.12.0-160000.27.1 |
| openSUSE:Leap 16.0 | kernel-obs-qa | 0 | 6.12.0-160000.27.1 |
| openSUSE:Leap 16.0 | kernel-rt | 0 | 6.12.0-160000.27.1 |
| openSUSE:Leap 16.0 | kernel-source | 0 | 6.12.0-160000.27.1 |
| openSUSE:Leap 16.0 | kernel-syms | 0 | 6.12.0-160000.27.1 |
| openSUSE:Leap 16.0 | kernel-zfcpdump | 0 | 6.12.0-160000.27.1 |
Related vulnerabilities
- CVE-2026-23226 In the Linux kernel, the following vulnerability has been resolved: ksmbd: add chann_lock… Also affects Kernel
- CVE-2026-23225 In the Linux kernel, the following vulnerability has been resolved: sched/mmcid: Don't… Also affects Kernel
- CVE-2026-23230 In the Linux kernel, the following vulnerability has been resolved: smb: client: split… Also affects Kernel
- CVE-2026-23224 In the Linux kernel, the following vulnerability has been resolved: erofs: fix UAF issue… Also affects Kernel
- CVE-2026-23227 In the Linux kernel, the following vulnerability has been resolved: drm/exynos: vidi: use… Also affects Kernel
- CVE-2026-23223 In the Linux kernel, the following vulnerability has been resolved: xfs: fix UAF in… Also affects Kernel
- CVE-2026-23228 In the Linux kernel, the following vulnerability has been resolved: smb: server: fix leak… Also affects Kernel
- CVE-2026-23229 In the Linux kernel, the following vulnerability has been resolved: crypto: virtio - Add… Also affects Kernel