Description
In the Linux kernel, the following vulnerability has been resolved: scsi: sg: Resolve soft lockup issue when opening /dev/sgX The parameter def_reserved_size defines the default buffer size reserved for each Sg_fd and should be restricted to a range between 0 and 1,048,576 (see https://tldp.org/HOWTO/SCSI-Generic-HOWTO/proc.html). Although the function sg_proc_write_dressz enforces this limit, it is possible to bypass it by directly modifying the module parameter as shown below, which then causes a soft lockup: echo -1 > /sys/module/sg/parameters/def_reserved_size exec 4<> /dev/sg0 watchdog: BUG: soft lockup - CPU#5 stuck for 26 seconds! [bash:537] Modules loaded: CPU: 5 UID: 0 PID: 537 Command: bash, kernel version 6.19.0-rc3+ #134, PREEMPT disabled Hardware: QEMU Standard PC (i440FX + PIIX, 1996), BIOS version 1.16.1-2.fc37 dated 04/01/2014 ... Call Trace: sg_build_reserve+0x5c/0xa0 sg_add_sfp+0x168/0x270 sg_open+0x16e/0x340 chrdev_open+0xbe/0x230 do_dentry_open+0x175/0x480 vfs_open+0x34/0xf0 do_open+0x265/0x3d0 path_openat+0x110/0x290 do_filp_open+0xc3/0x170 do_sys_openat2+0x71/0xe0 __x64_sys_openat+0x6d/0xa0 do_syscall_64+0x62/0x310 entry_SYSCALL_64_after_hwframe+0x76/0x7e The fix is to use module_param_cb to validate and reject invalid values assigned to def_reserved_size.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
6460e75a104d10458817d2f5b2fbff775bf0b43a to < 3d74e0654ac908c65a8f20373091826fe43b1363affected6460e75a104d10458817d2f5b2fbff775bf0b43a to < c47ccfb3d80dfed522ca06a5954ac97488d78c5aaffected6460e75a104d10458817d2f5b2fbff775bf0b43a to < fe671d3c84ffb1b763d590c25195755adeaadabaaffected6460e75a104d10458817d2f5b2fbff775bf0b43a to < c5f4a211e82d04ccc1809311322c47023bbe66e2affected6460e75a104d10458817d2f5b2fbff775bf0b43a to < 9676ca7b1ef31a3a65b3e61e7ce3b54ce7364202affected6460e75a104d10458817d2f5b2fbff775bf0b43a to < 1afd963fcd963db0dc5d47df6dfcf010c9c4647eaffected6460e75a104d10458817d2f5b2fbff775bf0b43a to < feade299e932967de27519338d41de348fb5b061affected6460e75a104d10458817d2f5b2fbff775bf0b43a to < d06a310b45e153872033dd0cf19d5a2279121099affected
Linux Linux
Default version status: affected
2.6.19affected0 to < 2.6.19unaffected5.10.258 to ≤ 5.10.*unaffected5.15.209 to ≤ 5.15.*unaffected6.1.175 to ≤ 6.1.*unaffected6.6.141 to ≤ 6.6.*unaffected6.12.91 to ≤ 6.12.*unaffected6.18.33 to ≤ 6.18.*unaffected7.0.10 to ≤ 7.0.*unaffected7.1 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/3d74e0654ac908c65a8f20373091826fe43b1363 ↗
- https://git.kernel.org/stable/c/c47ccfb3d80dfed522ca06a5954ac97488d78c5a ↗
- https://git.kernel.org/stable/c/fe671d3c84ffb1b763d590c25195755adeaadaba ↗
- https://git.kernel.org/stable/c/c5f4a211e82d04ccc1809311322c47023bbe66e2 ↗
- https://git.kernel.org/stable/c/9676ca7b1ef31a3a65b3e61e7ce3b54ce7364202 ↗
- https://git.kernel.org/stable/c/1afd963fcd963db0dc5d47df6dfcf010c9c4647e ↗
- https://git.kernel.org/stable/c/feade299e932967de27519338d41de348fb5b061 ↗
- https://git.kernel.org/stable/c/d06a310b45e153872033dd0cf19d5a2279121099 ↗