UBUNTU-CVE-2026-89483: High severity ubuntu/linux-azure vulnerability
In the Linux kernel, the following vulnerability has been resolved: nvme: zero the discard fallback page nvmesetupdiscard() always maps sizeof(struct nvmedsmrange) NVMEDSMMAXRANGES = 4096 bytes as the DSM payload however many ranges the command declares, because some devices ignore the 'Number of Ranges' field - the Fixes: commit records two that read past the declared ranges. A single-range discard fills only the first 16 bytes. Normally the buffer comes from kzalloc() and the other 4080 bytes are zero. When that allocation fails the code falls back to the per-controller ctrl->discardpage, which nvmeinitctrl() obtains with allocpage(GFPKERNEL) and nothing ever zeroes, so those 4080 bytes are whatever the page last held and are handed to the controller. Reaching it requires the kzalloc(GFPATOMIC | GFPNOWARN) to fail, that is memory pressure; it is not remotely triggerable. Failing the allocation under KMSAN reproduces it, with the leaked tail full of vmemmap struct page pointers. The extent in the report is a partial transfer of the payload, not the whole 4096 bytes; the 16-byte boundary in it is the one declared range: [ 11.991601] BUG: KMSAN: uninit-value in dmamapphys+0x14c8/0x1900 [ 11.991969] dmamapphys+0x14c8/0x1900 [ 11.992220] dmamappageattrs+0xcf/0x130 [ 11.992485] e1000xmitframe+0x4099/0x6d10 [ 11.992768] devhardstartxmit+0x22f/0xa80 [ 11.993068] schdirectxmit+0x35c/0xcb0 [ 11.993315] devqueuexmit+0x1ee5/0x5eb0 [ 11.993608] ipfinishoutput2+0x1903/0x1c30 [ 11.993881] ipfinishoutput+0x288/0x870 [ 11.994125] ipoutput+0x15e/0x400 [ 11.994365] ipqueuexmit+0x1e85/0x1fb0 [ 11.994639] ipqueuexmit+0x60/0x80 [ 11.994899] tcptransmitskb+0x4e71/0x5fa0 [ 11.995210] tcpwritexmit+0x3a36/0x9160 [ 11.995533] tcppushpendingframes+0xc5/0x3c0 [ 11.995854] tcppush+0x7dc/0x840 [ 11.996076] tcpsendmsglocked+0x766c/0x8400 [ 11.996371] tcpsendmsg+0x4b/0x90 [ 11.996572] inetsendmsg+0x134/0x2a0 [ 11.996823] socksendmsg+0x265/0x360 [ 11.997076] socksendmsg+0x100/0x1e0 [ 11.997293] nvmetcptrysend+0x196f/0x6370 [ 11.997605] nvmetcpqueuerq+0x1d54/0x20b0 [ 11.997882] blkmqdispatchrqlist+0x5ee/0x2e50 [ 11.998175] blkmqscheddispatchrequests+0x16dc/0x24a0 [ 11.998539] blkmqscheddispatchrequests+0x11b/0x2c0 [ 11.998865] blkmqrunworkfn+0x13b/0x280 [ 11.999146] processscheduledworks+0x966/0x1ad0 [ 11.999465] workerthread+0xe44/0x1480 [ 11.999709] kthread+0x53b/0x600 [ 11.999927] retfromfork+0x29f/0x7c0 [ 12.000191] retfromforkasm+0x1a/0x30 [ 12.000460] [ 12.000558] Uninit was created at: [ 12.000788] allocfrozenpagesnoprof+0x8bf/0xd30 [ 12.001096] allocpagesmpol+0x1d0/0x5f0 [ 12.001326] allocpagesnoprof+0x102/0x290 [ 12.001627] nvmeinitctrl+0x5a3/0x9f0 [ 12.001891] nvmetcpcreatectrl+0xd75/0x19b0 [ 12.002170] nvmfdevwrite+0x4c68/0x4fd0 [ 12.002426] vfswrite+0x587/0x1a10 [ 12.002636] x64syswrite+0x207/0x4f0 [ 12.002874] x64syscall+0x2ff0/0x3ea0 [ 12.003123] dosyscall64+0x147/0x3b0 [ 12.003400] entrySYSCALL64afterhwframe+0x77/0x7f [ 12.003680] [ 12.003777] Bytes 16-2843 of 2844 are uninitialized [ 12.004068] Memory access of size 2844 starts at ffff888109f82000 [ 12.004412] [ 12.004530] CPU: 0 UID: 0 PID: 101 Comm: kworker/0:1H Not tainted 7.2.0-rc5-NVMECTL-gf5098b6bae76 #1 PREEMPT(lazy) [ 12.005127] Hardware name: QEMU Ubuntu 24.04 PC v2 (i440FX + PIIX, archcaps fix, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 [ 12.005762] Workqueue: kblockd blkmqrunworkfn [ 12.006073] ===================================================== Allocate the page with GFPZERO. The single allocation site covers every use of it: bytes no discard has written stay zero, and bytes one did write hold that controller's own range list, which it has already been sent.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
ubuntu/linux-aws-5.15to a version that resolves this vulnerability.Fixed in 5.15.0-1119.126~20.04.1 - Upgrade
Upgrade
ubuntu/linux-azure-5.15to a version that resolves this vulnerability.Fixed in 5.15.0-1125.134~20.04.1 - Upgrade
Upgrade
ubuntu/linux-azure-fde-5.15to a version that resolves this vulnerability.Fixed in 5.15.0-1124.133~20.04.1 - Upgrade
Upgrade
ubuntu/linux-gcp-5.15to a version that resolves this vulnerability.Fixed in 5.15.0-1120.130~20.04.1 - Upgrade
Upgrade
ubuntu/linux-hwe-5.15to a version that resolves this vulnerability.Fixed in 5.15.0-202.212~20.04.1 - Upgrade
Upgrade
ubuntu/linux-ibm-5.15to a version that resolves this vulnerability.Fixed in 5.15.0-1113.117~20.04.1 - Upgrade
Upgrade
ubuntu/linux-intel-iotg-5.15to a version that resolves this vulnerability.Fixed in 5.15.0-1114.120~20.04.1 - Upgrade
Upgrade
ubuntu/linux-lowlatency-hwe-5.15to a version that resolves this vulnerability.Fixed in 5.15.0-197.207~20.04.1 - Upgrade
Upgrade
ubuntu/linux-nvidia-tegra-5.15to a version that resolves this vulnerability.Fixed in 5.15.0-1070.72~20.04.1 - Upgrade
Upgrade
ubuntu/linux-oracle-5.15to a version that resolves this vulnerability.Fixed in 5.15.0-1116.122~20.04.1 - Upgrade
Upgrade
ubuntu/linux-riscv-5.15to a version that resolves this vulnerability.Fixed in 5.15.0-1113.117~20.04.2 - Upgrade
Upgrade
ubuntu/linuxto a version that resolves this vulnerability.Fixed in 5.15.0-202.212 - Upgrade
Upgrade
ubuntu/linux-awsto a version that resolves this vulnerability.Fixed in 5.15.0-1119.126 - Upgrade
Upgrade
ubuntu/linux-azureto a version that resolves this vulnerability.Fixed in 5.15.0-1125.134 - Upgrade
Upgrade
ubuntu/linux-azure-fdeto a version that resolves this vulnerability.Fixed in 5.15.0-1124.133 - Upgrade
Upgrade
ubuntu/linux-gcpto a version that resolves this vulnerability.Fixed in 5.15.0-1120.130 - Upgrade
Upgrade
ubuntu/linux-gketo a version that resolves this vulnerability.Fixed in 5.15.0-1115.121 - Upgrade
Upgrade
ubuntu/linux-gkeopto a version that resolves this vulnerability.Fixed in 5.15.0-1102.110 - Upgrade
Upgrade
ubuntu/linux-ibmto a version that resolves this vulnerability.Fixed in 5.15.0-1113.117 - Upgrade
Upgrade
ubuntu/linux-intel-iotgto a version that resolves this vulnerability.Fixed in 5.15.0-1114.120 - Upgrade
Upgrade
ubuntu/linux-kvmto a version that resolves this vulnerability.Fixed in 5.15.0-1111.116 - Upgrade
Upgrade
ubuntu/linux-lowlatencyto a version that resolves this vulnerability.Fixed in 5.15.0-197.207 - Upgrade
Upgrade
ubuntu/linux-nvidiato a version that resolves this vulnerability.Fixed in 5.15.0-1114.115 - Upgrade
Upgrade
ubuntu/linux-nvidia-tegrato a version that resolves this vulnerability.Fixed in 5.15.0-1070.72 - Upgrade
Upgrade
ubuntu/linux-nvidia-tegra-igxto a version that resolves this vulnerability.Fixed in 5.15.0-1059.59 - Upgrade
Upgrade
ubuntu/linux-oracleto a version that resolves this vulnerability.Fixed in 5.15.0-1116.122 - Upgrade
Upgrade
ubuntu/linux-bluefieldto a version that resolves this vulnerability.Fixed in 5.15.0-1103.105 - Upgrade
Upgrade
ubuntu/linux-intel-iot-realtimeto a version that resolves this vulnerability.Fixed in 5.15.0-1111.115 - Upgrade
Upgrade
ubuntu/linux-realtimeto a version that resolves this vulnerability.Fixed in 5.15.0-1118.127 - Upgrade
Upgrade
ubuntu/linux-aws-fipsto a version that resolves this vulnerability.Fixed in 5.15.0-1119.126+fips1 - Upgrade
Upgrade
ubuntu/linux-azure-fipsto a version that resolves this vulnerability.Fixed in 5.15.0-1125.134+fips1 - Upgrade
Upgrade
ubuntu/linux-fipsto a version that resolves this vulnerability.Fixed in 5.15.0-202.212+fips1 - Upgrade
Upgrade
ubuntu/linux-gcp-fipsto a version that resolves this vulnerability.Fixed in 5.15.0-1120.130+fips1 - Upgrade
Upgrade
ubuntu/linux-hwe-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42~24.04.1 - Upgrade
Upgrade
ubuntu/linux-riscv-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1~24.04.1 - Upgrade
Upgrade
ubuntu/linuxto a version that resolves this vulnerability.Fixed in 7.0.0-42.42 - Upgrade
Upgrade
ubuntu/linux-awsto a version that resolves this vulnerability.Fixed in 7.0.0-1016.17 - Upgrade
Upgrade
ubuntu/linux-gcpto a version that resolves this vulnerability.Fixed in 7.0.0-1016.18 - Upgrade
Upgrade
ubuntu/linux-ibmto a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oem-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oracleto a version that resolves this vulnerability.Fixed in 7.0.0-1015.16 - Upgrade
Upgrade
ubuntu/linux-riscvto a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1 - Compensating control
Allocate the NVMe discard fallback page with __GFP_ZERO, including the per-controller ctrl->discard_page obtained by nvme_init_ctrl(), so the unused bytes of the 4096-byte DSM payload remain zeroed.
Event History
Frequently Asked Questions
Who is realistically exposed to this issue?
Systems using an affected Ubuntu Linux kernel with NVMe devices are relevant, but exposure is limited to the discard fallback path. The issue requires memory pressure severe enough for an atomic kzalloc allocation to fail; the report states this condition is not remotely triggerable.
What data could be disclosed if the fallback path is reached?
A single-range discard initializes only the first 16 bytes of a 4096-byte DSM payload. The remaining bytes in the fallback page may contain prior kernel memory and can be handed to the NVMe controller; under KMSAN, the leaked tail contained vmemmap struct page pointers.
How can I tell whether the vulnerable path has occurred?
The report describes KMSAN reproducing the issue by forcing the allocation failure, producing an uninitialized-value report during DMA. It does not provide a normal runtime indicator or log signature for detecting occurrence on production systems.