7.5
CVE-2026-89483
- EPSS 0.49%
- Veröffentlicht 11.09.2026 19:43:38
- Zuletzt bearbeitet 14.09.2026 13:19:05
- Erkennungen
nvme: zero the discard fallback page
In the Linux kernel, the following vulnerability has been resolved: nvme: zero the discard fallback page nvme_setup_discard() always maps sizeof(struct nvme_dsm_range) * NVME_DSM_MAX_RANGES = 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->discard_page, which nvme_init_ctrl() obtains with alloc_page(GFP_KERNEL) 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(GFP_ATOMIC | __GFP_NOWARN) 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 dma_map_phys+0x14c8/0x1900 [ 11.991969] dma_map_phys+0x14c8/0x1900 [ 11.992220] dma_map_page_attrs+0xcf/0x130 [ 11.992485] e1000_xmit_frame+0x4099/0x6d10 [ 11.992768] dev_hard_start_xmit+0x22f/0xa80 [ 11.993068] sch_direct_xmit+0x35c/0xcb0 [ 11.993315] __dev_queue_xmit+0x1ee5/0x5eb0 [ 11.993608] ip_finish_output2+0x1903/0x1c30 [ 11.993881] ip_finish_output+0x288/0x870 [ 11.994125] ip_output+0x15e/0x400 [ 11.994365] __ip_queue_xmit+0x1e85/0x1fb0 [ 11.994639] ip_queue_xmit+0x60/0x80 [ 11.994899] __tcp_transmit_skb+0x4e71/0x5fa0 [ 11.995210] tcp_write_xmit+0x3a36/0x9160 [ 11.995533] __tcp_push_pending_frames+0xc5/0x3c0 [ 11.995854] tcp_push+0x7dc/0x840 [ 11.996076] tcp_sendmsg_locked+0x766c/0x8400 [ 11.996371] tcp_sendmsg+0x4b/0x90 [ 11.996572] inet_sendmsg+0x134/0x2a0 [ 11.996823] __sock_sendmsg+0x265/0x360 [ 11.997076] sock_sendmsg+0x100/0x1e0 [ 11.997293] nvme_tcp_try_send+0x196f/0x6370 [ 11.997605] nvme_tcp_queue_rq+0x1d54/0x20b0 [ 11.997882] blk_mq_dispatch_rq_list+0x5ee/0x2e50 [ 11.998175] __blk_mq_sched_dispatch_requests+0x16dc/0x24a0 [ 11.998539] blk_mq_sched_dispatch_requests+0x11b/0x2c0 [ 11.998865] blk_mq_run_work_fn+0x13b/0x280 [ 11.999146] process_scheduled_works+0x966/0x1ad0 [ 11.999465] worker_thread+0xe44/0x1480 [ 11.999709] kthread+0x53b/0x600 [ 11.999927] ret_from_fork+0x29f/0x7c0 [ 12.000191] ret_from_fork_asm+0x1a/0x30 [ 12.000460] [ 12.000558] Uninit was created at: [ 12.000788] __alloc_frozen_pages_noprof+0x8bf/0xd30 [ 12.001096] alloc_pages_mpol+0x1d0/0x5f0 [ 12.001326] alloc_pages_noprof+0x102/0x290 [ 12.001627] nvme_init_ctrl+0x5a3/0x9f0 [ 12.001891] nvme_tcp_create_ctrl+0xd75/0x19b0 [ 12.002170] nvmf_dev_write+0x4c68/0x4fd0 [ 12.002426] vfs_write+0x587/0x1a10 [ 12.002636] __x64_sys_write+0x207/0x4f0 [ 12.002874] x64_sys_call+0x2ff0/0x3ea0 [ 12.003123] do_syscall_64+0x147/0x3b0 [ 12.003400] entry_SYSCALL_64_after_hwframe+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, arch_caps fix, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 [ 12.005762] Workqueue: kblockd blk_mq_run_work_fn [ 12.006073] ===================================================== Allocate the page with __GFP_ZERO. 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.
Daten sind bereitgestellt durch das CVE Programm von einer CVE Numbering Authority (CNA) (Unstrukturiert).
HerstellerLinux
≫
Produkt
Linux
Default Statusunaffected
Version
530436c45ef2e446c12538a400e465929a0b3ade
Version <
76139b5bbf531e675934b97227be3521c7fdd537
Status
affected
Version
530436c45ef2e446c12538a400e465929a0b3ade
Version <
3f84d2bd0d8ae8c7e8e0f8fc3cbf018a282971a1
Status
affected
Version
530436c45ef2e446c12538a400e465929a0b3ade
Version <
415f2772ebcbc7f3f1ab1a71915dab82cee3465e
Status
affected
Version
530436c45ef2e446c12538a400e465929a0b3ade
Version <
66b5af23b6f956e57f8205c46aa80b054631be34
Status
affected
Version
530436c45ef2e446c12538a400e465929a0b3ade
Version <
dc4d4b70a863f7e39ef8bd137634be4e6db8b084
Status
affected
Version
530436c45ef2e446c12538a400e465929a0b3ade
Version <
67551d8430df94c827e1830bd3a5fae1f66a5219
Status
affected
Version
530436c45ef2e446c12538a400e465929a0b3ade
Version <
f5827817b4fc7feeabf4f53fb4b626e6edc52fef
Status
affected
Version
530436c45ef2e446c12538a400e465929a0b3ade
Version <
bededeaaeff404978a5a8e2a605a6c3017cddd3e
Status
affected
Version
ffa56cbdd2409b522b4cb56461bea1c45889417b
Status
affected
Version
8b0acb768a06083b0d28bace1481c1f6679e76f4
Status
affected
Version
4.19.92
Version <
4.20
Status
affected
Version
5.4.7
Version <
5.5
Status
affected
HerstellerLinux
≫
Produkt
Linux
Default Statusaffected
Version
5.5
Status
affected
Version
0
Version <
5.5
Status
unaffected
Version <=
5.10.*
Version
5.10.270
Status
unaffected
Version <=
5.15.*
Version
5.15.221
Status
unaffected
Version <=
6.1.*
Version
6.1.188
Status
unaffected
Version <=
6.6.*
Version
6.6.157
Status
unaffected
Version <=
6.12.*
Version
6.12.109
Status
unaffected
Version <=
6.18.*
Version
6.18.50
Status
unaffected
Version <=
7.2.*
Version
7.2.4
Status
unaffected
Version <=
*
Version
7.3-rc1
Status
unaffected
VulnDex Vulnerability Enrichment
| Typ | Quelle | Score | Percentile |
|---|---|---|---|
| EPSS | FIRST.org | 0.49% | 0.405 |
| Quelle | Base Score | Exploit Score | Impact Score | Vector String |
|---|---|---|---|---|
| 416baaa9-dc9f-4396-8d5f-8c081fb06d67 | 7.5 | 3.9 | 3.6 |
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
|
https://git.kernel.org/stable/c/dc4d4b70a863f7e39ef8bd137634be4e6db8b084
https://git.kernel.org/stable/c/67551d8430df94c827e1830bd3a5fae1f66a5219
https://git.kernel.org/stable/c/f5827817b4fc7feeabf4f53fb4b626e6edc52fef
https://git.kernel.org/stable/c/bededeaaeff404978a5a8e2a605a6c3017cddd3e
https://git.kernel.org/stable/c/3f84d2bd0d8ae8c7e8e0f8fc3cbf018a282971a1
https://git.kernel.org/stable/c/415f2772ebcbc7f3f1ab1a71915dab82cee3465e
https://git.kernel.org/stable/c/66b5af23b6f956e57f8205c46aa80b054631be34
https://git.kernel.org/stable/c/76139b5bbf531e675934b97227be3521c7fdd537