CVE-2022-50314
kernel: nbd: Fix hung when signal interrupts nbd_start_device_ioctl()
Severity
ModerateRed Hat Product Security
CVSS 3.1
Review impact separately from score.
Published · September 15, 2025
Updated · June 30, 2026
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().
Statement
A race condition in nbd_start_device_ioctl() could lead to a hang if a signal interrupts the wait on recv_threads. The system may end up with stuck I/O and an unresponsive NBD device. The issue can only be triggered by a privileged user with direct access to /dev/nbdX, making it a local DoS vulnerability rather than a privilege escalation or memory corruption risk.
CVSS score applicability
The CVSS score(s) listed for this vulnerability do not reflect the associated product's status, and are included for informational purposes to better understand the severity of this vulnerability.
Mitigation
No mitigation is specified in collected source.
CVSS / CWE
CVSS 3.1 · 4.4CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:H
CWE-667 · Improper Locking