CVE-2021-47219: scsi: scsi_debug: Fix out-of-bound read in resp_report_tgtpgs()
In the Linux kernel, the following vulnerability has been resolved:
scsi: scsi_debug: Fix out-of-bound read in resp_report_tgtpgs()
The following issue was observed running syzkaller:
BUG: KASAN: slab-out-of-bounds in memcpy include/linux/string.h:377 [inline]
BUG: KASAN: slab-out-of-bounds in sg_copy_buffer+0x150/0x1c0 lib/scatterlist.c:831
Read of size 2132 at addr ffff8880aea95dc8 by task syz-executor.0/9815
CPU: 0 PID: 9815 Comm: syz-executor.0 Not tainted 4.19.202-00874-gfc0fe04215a9 #2
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014
Call Trace:
__dump_stack lib/dump_stack.c:77 [inline]
dump_stack+0xe4/0x14a lib/dump_stack.c:118
print_address_description+0x73/0x280 mm/kasan/report.c:253
kasan_report_error mm/kasan/report.c:352 [inline]
kasan_report+0x272/0x370 mm/kasan/report.c:410
memcpy+0x1f/0x50 mm/kasan/kasan.c:302
memcpy include/linux/string.h:377 [inline]
sg_copy_buffer+0x150/0x1c0 lib/scatterlist.c:831
fill_from_dev_buffer+0x14f/0x340 drivers/scsi/scsi_debug.c:1021
resp_report_tgtpgs+0x5aa/0x770 drivers/scsi/scsi_debug.c:1772
schedule_resp+0x464/0x12f0 drivers/scsi/scsi_debug.c:4429
scsi_debug_queuecommand+0x467/0x1390 drivers/scsi/scsi_debug.c:5835
scsi_dispatch_cmd+0x3fc/0x9b0 drivers/scsi/scsi_lib.c:1896
scsi_request_fn+0x1042/0x1810 drivers/scsi/scsi_lib.c:2034
__blk_run_queue_uncond block/blk-core.c:464 [inline]
__blk_run_queue+0x1a4/0x380 block/blk-core.c:484
blk_execute_rq_nowait+0x1c2/0x2d0 block/blk-exec.c:78
sg_common_write.isra.19+0xd74/0x1dc0 drivers/scsi/sg.c:847
sg_write.part.23+0x6e0/0xd00 drivers/scsi/sg.c:716
sg_write+0x64/0xa0 drivers/scsi/sg.c:622
__vfs_write+0xed/0x690 fs/read_write.c:485
kill_bdev:block_device:00000000e138492c
vfs_write+0x184/0x4c0 fs/read_write.c:549
ksys_write+0x107/0x240 fs/read_write.c:599
do_syscall_64+0xc2/0x560 arch/x86/entry/common.c:293
entry_SYSCALL_64_after_hwframe+0x49/0xbe
We get 'alen' from command its type is int. If userspace passes a large
length we will get a negative 'alen'.
Switch n, alen, and rlen to u32.
Security readout for executives and security teams
Plain-English summary
CVE-2021-47219 is a Linux kernel bug in the scsi_debug driver. A large user-provided length could trigger an out-of-bounds read and kernel memory safety failure. The sources show a kernel fix, but no CVSS score and no evidence of active exploitation.
Executive priority
Treat this as a patch-management item unless scsi_debug is intentionally used in sensitive environments. The business urgency is reduced by unknown severity and no cited exploitation, but kernel memory safety bugs still warrant routine remediation.
Technical view
In resp_report_tgtpgs(), an int length value could become negative when userspace supplied a large length. That value flowed into buffer-copy handling, producing a KASAN slab out-of-bounds read. The kernel fix changes n, alen, and rlen to u32.
Likely exposure
Exposure appears limited to Linux systems where the scsi_debug driver is present and reachable. The source bundle does not prove broad default exposure, remote reachability, or impact beyond the reported out-of-bounds read path.
Exploitation context
The issue was found by syzkaller and reported with a KASAN crash trace. CISA KEV status is false, and the provided sources do not claim public exploitation or weaponized use.
Researcher notes
The strongest evidence is the kernel commit description and KASAN trace. Missing evidence includes CVSS, CWE, exact distribution package status, exploitability assessment, and whether confidentiality impact is practical outside the fuzzed crash path.
Mitigation direction
Update to a vendor kernel containing the linked stable fixes.
Backport the referenced commits if maintaining a custom kernel.
Check distribution advisories for exact fixed package versions.
Review whether scsi_debug is needed on production systems.
Validation and detection
Inventory Linux kernels and map them against vendor fixed versions.
Check whether the scsi_debug driver is available or loaded.
Confirm patched source uses u32 for n, alen, and rlen.
Run existing kernel or platform regression tests after update.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2021-47219 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.