Commit bdb854f
scsi: scsi_debug: Fix type in min_t to avoid stack OOB
commit 36e07d7 upstream.
Change min_t() to use type "u32" instead of type "int" to avoid stack out
of bounds. With min_t() type "int" the values get sign extended and the
larger value gets used causing stack out of bounds.
BUG: KASAN: stack-out-of-bounds in memcpy include/linux/fortify-string.h:191 [inline]
BUG: KASAN: stack-out-of-bounds in sg_copy_buffer+0x1de/0x240 lib/scatterlist.c:976
Read of size 127 at addr ffff888072607128 by task syz-executor.7/18707
CPU: 1 PID: 18707 Comm: syz-executor.7 Not tainted 5.15.0-syzk #1
Hardware name: Red Hat KVM, BIOS 1.13.0-2
Call Trace:
__dump_stack lib/dump_stack.c:88 [inline]
dump_stack_lvl+0x89/0xb5 lib/dump_stack.c:106
print_address_description.constprop.9+0x28/0x160 mm/kasan/report.c:256
__kasan_report mm/kasan/report.c:442 [inline]
kasan_report.cold.14+0x7d/0x117 mm/kasan/report.c:459
check_region_inline mm/kasan/generic.c:183 [inline]
kasan_check_range+0x1a3/0x210 mm/kasan/generic.c:189
memcpy+0x23/0x60 mm/kasan/shadow.c:65
memcpy include/linux/fortify-string.h:191 [inline]
sg_copy_buffer+0x1de/0x240 lib/scatterlist.c:976
sg_copy_from_buffer+0x33/0x40 lib/scatterlist.c:1000
fill_from_dev_buffer.part.34+0x82/0x130 drivers/scsi/scsi_debug.c:1162
fill_from_dev_buffer drivers/scsi/scsi_debug.c:1888 [inline]
resp_readcap16+0x365/0x3b0 drivers/scsi/scsi_debug.c:1887
schedule_resp+0x4d8/0x1a70 drivers/scsi/scsi_debug.c:5478
scsi_debug_queuecommand+0x8c9/0x1ec0 drivers/scsi/scsi_debug.c:7533
scsi_dispatch_cmd drivers/scsi/scsi_lib.c:1520 [inline]
scsi_queue_rq+0x16b0/0x2d40 drivers/scsi/scsi_lib.c:1699
blk_mq_dispatch_rq_list+0xb9b/0x2700 block/blk-mq.c:1639
__blk_mq_sched_dispatch_requests+0x28f/0x590 block/blk-mq-sched.c:325
blk_mq_sched_dispatch_requests+0x105/0x190 block/blk-mq-sched.c:358
__blk_mq_run_hw_queue+0xe5/0x150 block/blk-mq.c:1761
__blk_mq_delay_run_hw_queue+0x4f8/0x5c0 block/blk-mq.c:1838
blk_mq_run_hw_queue+0x18d/0x350 block/blk-mq.c:1891
blk_mq_sched_insert_request+0x3db/0x4e0 block/blk-mq-sched.c:474
blk_execute_rq_nowait+0x16b/0x1c0 block/blk-exec.c:62
sg_common_write.isra.18+0xeb3/0x2000 drivers/scsi/sg.c:836
sg_new_write.isra.19+0x570/0x8c0 drivers/scsi/sg.c:774
sg_ioctl_common+0x14d6/0x2710 drivers/scsi/sg.c:939
sg_ioctl+0xa2/0x180 drivers/scsi/sg.c:1165
vfs_ioctl fs/ioctl.c:51 [inline]
__do_sys_ioctl fs/ioctl.c:874 [inline]
__se_sys_ioctl fs/ioctl.c:860 [inline]
__x64_sys_ioctl+0x19d/0x220 fs/ioctl.c:860
do_syscall_x64 arch/x86/entry/common.c:50 [inline]
do_syscall_64+0x3a/0x80 arch/x86/entry/common.c:80
entry_SYSCALL_64_after_hwframe+0x44/0xae
Link: https://lore.kernel.org/r/[email protected]
Reported-by: syzkaller <[email protected]>
Acked-by: Douglas Gilbert <[email protected]>
Signed-off-by: George Kennedy <[email protected]>
Signed-off-by: Martin K. Petersen <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>1 parent aa1f912 commit bdb854f
1 file changed
+19
-15
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1188 | 1188 | | |
1189 | 1189 | | |
1190 | 1190 | | |
1191 | | - | |
| 1191 | + | |
1192 | 1192 | | |
1193 | 1193 | | |
1194 | 1194 | | |
| |||
1561 | 1561 | | |
1562 | 1562 | | |
1563 | 1563 | | |
1564 | | - | |
| 1564 | + | |
| 1565 | + | |
1565 | 1566 | | |
1566 | 1567 | | |
1567 | 1568 | | |
| |||
1584 | 1585 | | |
1585 | 1586 | | |
1586 | 1587 | | |
1587 | | - | |
| 1588 | + | |
| 1589 | + | |
1588 | 1590 | | |
1589 | 1591 | | |
1590 | 1592 | | |
| |||
1675 | 1677 | | |
1676 | 1678 | | |
1677 | 1679 | | |
1678 | | - | |
| 1680 | + | |
1679 | 1681 | | |
1680 | | - | |
| 1682 | + | |
1681 | 1683 | | |
1682 | 1684 | | |
1683 | 1685 | | |
| |||
1713 | 1715 | | |
1714 | 1716 | | |
1715 | 1717 | | |
1716 | | - | |
| 1718 | + | |
1717 | 1719 | | |
1718 | 1720 | | |
1719 | 1721 | | |
| |||
1728 | 1730 | | |
1729 | 1731 | | |
1730 | 1732 | | |
1731 | | - | |
1732 | | - | |
| 1733 | + | |
| 1734 | + | |
1733 | 1735 | | |
1734 | 1736 | | |
1735 | 1737 | | |
| |||
1773 | 1775 | | |
1774 | 1776 | | |
1775 | 1777 | | |
1776 | | - | |
| 1778 | + | |
1777 | 1779 | | |
1778 | 1780 | | |
1779 | 1781 | | |
| |||
2311 | 2313 | | |
2312 | 2314 | | |
2313 | 2315 | | |
2314 | | - | |
| 2316 | + | |
| 2317 | + | |
2315 | 2318 | | |
2316 | 2319 | | |
2317 | 2320 | | |
| |||
2467 | 2470 | | |
2468 | 2471 | | |
2469 | 2472 | | |
2470 | | - | |
| 2473 | + | |
2471 | 2474 | | |
2472 | 2475 | | |
2473 | 2476 | | |
| |||
2582 | 2585 | | |
2583 | 2586 | | |
2584 | 2587 | | |
2585 | | - | |
| 2588 | + | |
| 2589 | + | |
2586 | 2590 | | |
2587 | 2591 | | |
2588 | 2592 | | |
| |||
2652 | 2656 | | |
2653 | 2657 | | |
2654 | 2658 | | |
2655 | | - | |
| 2659 | + | |
2656 | 2660 | | |
2657 | | - | |
| 2661 | + | |
2658 | 2662 | | |
2659 | 2663 | | |
2660 | 2664 | | |
| |||
4409 | 4413 | | |
4410 | 4414 | | |
4411 | 4415 | | |
4412 | | - | |
| 4416 | + | |
4413 | 4417 | | |
4414 | 4418 | | |
4415 | 4419 | | |
| |||
0 commit comments