Vulnerability · Published Jun 19, 2024 · Assigned by Linux

CVE-2021-47582USB: core: Make do_proc_control() and do_proc_bulk() killable

Medium 5.5

In plain English

A medium-severity security flaw in Linux from Linux. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.2% (higher than 10% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.

Severity (CVSS NVD)5.5Medium
Exploit odds (30 days)0.2%top 90.3% of all CVEs
Exploited in the wildNo reportsCISA SSVC: none
Attack toolingNoneno public tooling known

Official description

In the Linux kernel, the following vulnerability has been resolved: USB: core: Make do_proc_control() and do_proc_bulk() killable The USBDEVFS_CONTROL and USBDEVFS_BULK ioctls invoke usb_start_wait_urb(), which contains an uninterruptible wait with a user-specified timeout value. If timeout value is very large and the device being accessed does not respond in a reasonable amount of time, the kernel will complain about "Task X blocked for more than N seconds", as found in testing by syzbot: INFO: task syz-executor.0:8700 blocked for more than 143 seconds. Not tainted 5.14.0-rc7-syzkaller #0 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. task:syz-executor.0 state:D stack:23192 pid: 8700 ppid: 8455 flags:0x00004004 Call Trace: context_switch kernel/sched/core.c:4681 [inline] __schedule+0xc07/0x11f0 kernel/sched/core.c:5938 schedule+0x14b/0x210 kernel/sched/core.c:6017 schedule_timeout+0x98/0x2f0 kernel/time/timer.c:1857 do_wait_for_common+0x2da/0x480 kernel/sched/completion.c:85 __wait_for_common kernel/sched/completion.c:106 [inline] wait_for_common kernel/sched/completion.c:117 [inline] wait_for_completion_timeout+0x46/0x60 kernel/sched/completion.c:157 usb_start_wait_urb+0x167/0x550 drivers/usb/core/message.c:63 do_proc_bulk+0x978/0x1080 drivers/usb/core/devio.c:1236 proc_bulk drivers/usb/core/devio.c:1273 [inline] usbdev_do_ioctl drivers/usb/core/devio.c:2547 [inline] usbdev_ioctl+0x3441/0x6b10 drivers/usb/core/devio.c:2713 ... To fix this problem, this patch replaces usbfs's calls to usb_control_msg() and usb_bulk_msg() with special-purpose code that does essentially the same thing (as recommended in the comment for usb_start_wait_urb()), except that it always uses a killable wait and it uses GFP_KERNEL rather than GFP_NOIO.

Affected packages & fixed versions

EcosystemPackageFixed inAdvisory
AlmaLinux:8bpftool4.18.0-553.22.1.el8_10ALSA-2024:7000
AlmaLinux:8kernel4.18.0-553.22.1.el8_10ALSA-2024:7000
AlmaLinux:8kernel-abi-stablelists4.18.0-553.22.1.el8_10ALSA-2024:7000
AlmaLinux:8kernel-core4.18.0-553.22.1.el8_10ALSA-2024:7000
AlmaLinux:8kernel-cross-headers4.18.0-553.22.1.el8_10ALSA-2024:7000
AlmaLinux:8kernel-debug4.18.0-553.22.1.el8_10ALSA-2024:7000
AlmaLinux:8kernel-debug-core4.18.0-553.22.1.el8_10ALSA-2024:7000
AlmaLinux:8kernel-debug-devel4.18.0-553.22.1.el8_10ALSA-2024:7000
AlmaLinux:8kernel-debug-modules4.18.0-553.22.1.el8_10ALSA-2024:7000
AlmaLinux:8kernel-debug-modules-extra4.18.0-553.22.1.el8_10ALSA-2024:7000
AlmaLinux:8kernel-devel4.18.0-553.22.1.el8_10ALSA-2024:7000
AlmaLinux:8kernel-doc4.18.0-553.22.1.el8_10ALSA-2024:7000
AlmaLinux:8kernel-headers4.18.0-553.22.1.el8_10ALSA-2024:7000
AlmaLinux:8kernel-modules4.18.0-553.22.1.el8_10ALSA-2024:7000
AlmaLinux:8kernel-modules-extra4.18.0-553.22.1.el8_10ALSA-2024:7000
AlmaLinux:8kernel-rt4.18.0-553.22.1.rt7.363.el8_10ALSA-2024:7001
AlmaLinux:8kernel-rt-core4.18.0-553.22.1.rt7.363.el8_10ALSA-2024:7001
AlmaLinux:8kernel-rt-debug4.18.0-553.22.1.rt7.363.el8_10ALSA-2024:7001
AlmaLinux:8kernel-rt-debug-core4.18.0-553.22.1.rt7.363.el8_10ALSA-2024:7001
AlmaLinux:8kernel-rt-debug-devel4.18.0-553.22.1.rt7.363.el8_10ALSA-2024:7001
AlmaLinux:8kernel-rt-debug-kvm4.18.0-553.22.1.rt7.363.el8_10ALSA-2024:7001
AlmaLinux:8kernel-rt-debug-modules4.18.0-553.22.1.rt7.363.el8_10ALSA-2024:7001
AlmaLinux:8kernel-rt-debug-modules-extra4.18.0-553.22.1.rt7.363.el8_10ALSA-2024:7001
AlmaLinux:8kernel-rt-devel4.18.0-553.22.1.rt7.363.el8_10ALSA-2024:7001
AlmaLinux:8kernel-rt-kvm4.18.0-553.22.1.rt7.363.el8_10ALSA-2024:7001
AlmaLinux:8kernel-rt-modules4.18.0-553.22.1.rt7.363.el8_10ALSA-2024:7001
AlmaLinux:8kernel-rt-modules-extra4.18.0-553.22.1.rt7.363.el8_10ALSA-2024:7001
AlmaLinux:8kernel-tools4.18.0-553.22.1.el8_10ALSA-2024:7000
AlmaLinux:8kernel-tools-libs4.18.0-553.22.1.el8_10ALSA-2024:7000
AlmaLinux:8kernel-tools-libs-devel4.18.0-553.22.1.el8_10ALSA-2024:7000
AlmaLinux:8kernel-zfcpdump4.18.0-553.22.1.el8_10ALSA-2024:7000
AlmaLinux:8kernel-zfcpdump-core4.18.0-553.22.1.el8_10ALSA-2024:7000
AlmaLinux:8kernel-zfcpdump-devel4.18.0-553.22.1.el8_10ALSA-2024:7000
AlmaLinux:8kernel-zfcpdump-modules4.18.0-553.22.1.el8_10ALSA-2024:7000
AlmaLinux:8kernel-zfcpdump-modules-extra4.18.0-553.22.1.el8_10ALSA-2024:7000
AlmaLinux:8perf4.18.0-553.22.1.el8_10ALSA-2024:7000
AlmaLinux:8python3-perf4.18.0-553.22.1.el8_10ALSA-2024:7000
Debian:12linux5.15.15-1DEBIAN-CVE-2021-47582
Debian:13linux5.15.15-1DEBIAN-CVE-2021-47582
Debian:14linux5.15.15-1DEBIAN-CVE-2021-47582
Rocky Linux:8kernel0:4.18.0-553.22.1.el8_10RLSA-2024:7000
Rocky Linux:8kernel-rt0:4.18.0-553.22.1.rt7.363.el8_10RLSA-2024:7001
Ubuntu:22.04:LTSlinux-allwinner-5.19no fix listedUBUNTU-CVE-2021-47582
Ubuntu:22.04:LTSlinux-aws-5.19no fix listedUBUNTU-CVE-2021-47582
Ubuntu:22.04:LTSlinux-aws-6.2no fix listedUBUNTU-CVE-2021-47582
Ubuntu:22.04:LTSlinux-azure-5.19no fix listedUBUNTU-CVE-2021-47582
Ubuntu:22.04:LTSlinux-azure-6.2no fix listedUBUNTU-CVE-2021-47582
Ubuntu:22.04:LTSlinux-azure-fde-5.19no fix listedUBUNTU-CVE-2021-47582
Ubuntu:22.04:LTSlinux-azure-fde-6.2no fix listedUBUNTU-CVE-2021-47582
Ubuntu:22.04:LTSlinux-gcp-5.19no fix listedUBUNTU-CVE-2021-47582
Ubuntu:22.04:LTSlinux-gcp-6.2no fix listedUBUNTU-CVE-2021-47582
Ubuntu:22.04:LTSlinux-hwe-5.19no fix listedUBUNTU-CVE-2021-47582
Ubuntu:22.04:LTSlinux-hwe-6.2no fix listedUBUNTU-CVE-2021-47582
Ubuntu:22.04:LTSlinux-intel-iot-realtimeno fix listedUBUNTU-CVE-2021-47582
Ubuntu:22.04:LTSlinux-lowlatency-hwe-5.19no fix listedUBUNTU-CVE-2021-47582
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.2no fix listedUBUNTU-CVE-2021-47582
Ubuntu:22.04:LTSlinux-nvidia-6.2no fix listedUBUNTU-CVE-2021-47582
Ubuntu:22.04:LTSlinux-oem-5.17no fix listedUBUNTU-CVE-2021-47582
Ubuntu:22.04:LTSlinux-oem-6.0no fix listedUBUNTU-CVE-2021-47582
Ubuntu:22.04:LTSlinux-oem-6.1no fix listedUBUNTU-CVE-2021-47582
Ubuntu:24.04:LTSlinux-raspi-realtimeno fix listedUBUNTU-CVE-2021-47582
Ubuntu:22.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2021-47582
Ubuntu:22.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2021-47582
Ubuntu:22.04:LTSlinux-riscv-5.19no fix listedUBUNTU-CVE-2021-47582
Ubuntu:22.04:LTSlinux-starfive-5.19no fix listedUBUNTU-CVE-2021-47582
Ubuntu:22.04:LTSlinux-starfive-6.2no fix listedUBUNTU-CVE-2021-47582

Affected products (as reported)

VendorProductVersions
Linux Linux 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 – before 403716741c6c2c510dce44e88f085a740f535de61da177e4c3f41524e886b7f1b8a0c1fc7321cac2 – before ae8709b296d80c7f45aa1f35c0e7659ad69edce1
Linux Linux 2.6.12

References