CVE-2022-50314
Description
In the Linux kernel, the following vulnerability has been resolved: nbd: Fix hung when signal interrupts nbd_start_device_ioctl() syzbot reported hung task [1]. The following program is a simplified version of the reproducer: int main(void) { int sv[2], fd; if (socketpair(AF_UNIX, SOCK_STREAM, 0, sv) < 0) return 1; if ((fd = open("/dev/nbd0", 0)) < 0) return 1; if (ioctl(fd, NBD_SET_SIZE_BLOCKS, 0x81) < 0) return 1; if (ioctl(fd, NBD_SET_SOCK, sv[0]) < 0) return 1; if (ioctl(fd, NBD_DO_IT) < 0) return 1; return 0; } When signal interrupt nbd_start_device_ioctl() waiting the condition atomic_read(&config->recv_threads) == 0, the task can hung because it waits the completion of the inflight IOs. This patch fixes the issue by clearing queue, not just shutdown, when signal interrupt nbd_start_device_ioctl().
How to fix
- linux linux_kernel4.14.296, 4.19.262, 5.4.220, 5.10.150, 5.15.75, 5.19.17, 6.0.3 or later
- git.kernel.org/stable/c/1de7c3cf48fc41cd95adb12bd1ea9033a917798a
- git.kernel.org/stable/c/3575949513ea3b387b30dac1e69468a923c86caf
- git.kernel.org/stable/c/35fb7d4a53d9e36d1b91161ea9870d9c6d57dccf
- git.kernel.org/stable/c/3ba3846cb3e2fb3c6fbf79e998472821b298419e
- git.kernel.org/stable/c/62006a72b05e0d38727eef5188700f2488be5e89
- git.kernel.org/stable/c/b2700f98b3f4dd19fb4315b70581e5caff89eb49
- git.kernel.org/stable/c/c0d73be0af8c1310713bc39a8d7a22e35084e14f
- git.kernel.org/stable/c/c7b4641bd2395c2f3cd3b0a0cbf292ed9d489398
Affected products
| Product | Affected versions | Fixed in |
|---|---|---|
| linux linux_kernel | v < 4.14.296, 4.15 ≤ v < 4.19.262, 4.20 ≤ v < 5.4.220, 5.5 ≤ v < 5.10.150, 5.11 ≤ v < 5.15.75, 5.16 ≤ v < 5.19.17, 6.0 ≤ v < 6.0.3 | 4.14.296, 4.19.262, 5.4.220, 5.10.150, 5.15.75, 5.19.17, 6.0.3 |
Check your version
Choose the product and enter the version you run to see whether it falls in the affected range.
Attack Surface Management
See the assets tied to your domains, the technologies they run and known vulnerabilities in one list.