-

CVE-2026-89515

scsi: core: Fill in DMA padding bytes in scsi_alloc_sgtables()

In the Linux kernel, the following vulnerability has been resolved:

scsi: core: Fill in DMA padding bytes in scsi_alloc_sgtables()

During fuzz testing, the following issue was discovered:

BUG: KMSAN: uninit-value in __dma_map_sg_attrs+0x217/0x310
 __dma_map_sg_attrs+0x217/0x310
 dma_map_sg_attrs+0x4a/0x70
 ata_qc_issue+0x9f8/0x1420
 __ata_scsi_queuecmd+0x1657/0x1740
 ata_scsi_queuecmd+0x79a/0x920
 scsi_queue_rq+0x4472/0x4f40
 blk_mq_dispatch_rq_list+0x1cca/0x3ee0
 __blk_mq_sched_dispatch_requests+0x458/0x630
 blk_mq_sched_dispatch_requests+0x15b/0x340
 __blk_mq_run_hw_queue+0xe5/0x250
 __blk_mq_delay_run_hw_queue+0x138/0x780
 blk_mq_run_hw_queue+0x4bb/0x7e0
 blk_mq_sched_insert_request+0x2a7/0x4c0
 blk_execute_rq+0x497/0x8a0
 sg_io+0xbe0/0xe20
 scsi_ioctl+0x2b36/0x3c60
 sr_block_ioctl+0x319/0x440
 blkdev_ioctl+0x80f/0xd70
 __se_sys_ioctl+0x219/0x420
 __x64_sys_ioctl+0x93/0xe0
 x64_sys_call+0x1d6c/0x3ad0
 do_syscall_64+0x4c/0xa0
 entry_SYSCALL_64_after_hwframe+0x6e/0xd8

Uninit was created at:
 __alloc_pages+0x5c0/0xc80
 alloc_pages+0xe0e/0x1050
 blk_rq_map_user_iov+0x2b77/0x6100
 blk_rq_map_user_io+0x2fa/0x4d0
 sg_io+0xad6/0xe20
 scsi_ioctl+0x2b36/0x3c60
 sr_block_ioctl+0x319/0x440
 blkdev_ioctl+0x80f/0xd70
 __se_sys_ioctl+0x219/0x420
 __x64_sys_ioctl+0x93/0xe0
 x64_sys_call+0x1d6c/0x3ad0
 do_syscall_64+0x4c/0xa0
 entry_SYSCALL_64_after_hwframe+0x6e/0xd8

Bytes 14-15 of 16 are uninitialized
Memory access of size 16 starts at ffff88800cbdb000

When processing the last unaligned element of the scatterlist, it is
supplemented with missing bytes in the amount of pad_len.  These bytes
remain uninitialized, which leads to a problem.

Extend last_sg->length by pad_len first, then use sg_zero_buffer() to
zero those pad_len bytes.  sg_zero_buffer() uses sg_miter internally,
which correctly handles sg entries spanning multiple pages and padding
that crosses a page boundary.

Found by Linux Verification Center (linuxtesting.org) with Syzkaller.
Daten sind bereitgestellt durch das CVE Programm von einer CVE Numbering Authority (CNA) (Unstrukturiert).
HerstellerLinux
≫
Produkt Linux
Default Statusunaffected
Version 40b01b9bbdf51ae543a04744283bf2d56c4a6afa
Version < 1aa6df61cef1f47f503c3ccf60d08c4dd931fdc1
Status affected
Version 40b01b9bbdf51ae543a04744283bf2d56c4a6afa
Version < 6da140ebdfdd6aa3773945f2c0ebba01d2ef33d8
Status affected
Version 40b01b9bbdf51ae543a04744283bf2d56c4a6afa
Version < fd2cbe08c6ccba7fc1ddb830653a93bb7e2d833c
Status affected
Version 40b01b9bbdf51ae543a04744283bf2d56c4a6afa
Version < 28ed5343666ff424ce5e248fa1c5a402303b4aff
Status affected
Version 40b01b9bbdf51ae543a04744283bf2d56c4a6afa
Version < a4353ec7742bdf87dcdde5875270feb3a1982a51
Status affected
Version 40b01b9bbdf51ae543a04744283bf2d56c4a6afa
Version < e7143c3f4e5c0a7986733c6f27009274bf6c4264
Status affected
Version 40b01b9bbdf51ae543a04744283bf2d56c4a6afa
Version < 6fd1cce5018fdcc8d928e00a6a1dd2997d5b9409
Status affected
Version 40b01b9bbdf51ae543a04744283bf2d56c4a6afa
Version < 626147717bea776b61ed3631d2c26283760c4cc4
Status affected
HerstellerLinux
≫
Produkt Linux
Default Statusaffected
Version 2.6.25
Status affected
Version 0
Version < 2.6.25
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
Diese Information steht angemeldeten Benutzern zur Verfügung. Login Login
Zu dieser CVE wurde keine Warnung gefunden.
EPSS Metriken
Typ Quelle Score Percentile
EPSS FIRST.org 0.17% 0.063
CVSS Metriken
Quelle Base Score Exploit Score Impact Score Vector String
Es wurden noch keine Informationen zu CWE veröffentlicht.
https://git.kernel.org/stable/c/a4353ec7742bdf87dcdde5875270feb3a1982a51
https://git.kernel.org/stable/c/e7143c3f4e5c0a7986733c6f27009274bf6c4264
https://git.kernel.org/stable/c/6fd1cce5018fdcc8d928e00a6a1dd2997d5b9409
https://git.kernel.org/stable/c/626147717bea776b61ed3631d2c26283760c4cc4
https://git.kernel.org/stable/c/1aa6df61cef1f47f503c3ccf60d08c4dd931fdc1
https://git.kernel.org/stable/c/28ed5343666ff424ce5e248fa1c5a402303b4aff
https://git.kernel.org/stable/c/6da140ebdfdd6aa3773945f2c0ebba01d2ef33d8
https://git.kernel.org/stable/c/fd2cbe08c6ccba7fc1ddb830653a93bb7e2d833c