CVE-2021-47582: Vulnerability in Linux Linux
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.
AI Analysis
Technical Summary
CVE-2021-47582 is a vulnerability identified in the Linux kernel's USB core subsystem, specifically related to the handling of USBDEVFS_CONTROL and USBDEVFS_BULK ioctl calls. These ioctls invoke the function usb_start_wait_urb(), which performs an uninterruptible wait with a user-specified timeout. If the timeout value is set very high and the USB device being accessed does not respond promptly, the kernel task executing the ioctl can become blocked for an extended period, as observed in testing by syzbot. This blocking manifests as a "Task X blocked for more than N seconds" kernel warning, indicating a hung task. The root cause is that usb_start_wait_urb() uses a non-killable wait, which prevents the task from being interrupted or killed during the wait period, potentially leading to system resource exhaustion or degraded system responsiveness. The patch addressing this vulnerability replaces the calls to usb_control_msg() and usb_bulk_msg() with specialized code that performs equivalent operations but uses a killable wait and GFP_KERNEL memory allocation flags instead of GFP_NOIO. This change allows the waiting task to be interrupted or killed if necessary, preventing indefinite blocking and improving system stability. The vulnerability affects Linux kernel versions prior to the patch and is related to USB device communication, particularly when user-space processes interact with USB devices via USBDEVFS ioctls with large timeout values. There are no known exploits in the wild, and the vulnerability does not have an assigned CVSS score. The issue primarily impacts system availability and stability rather than confidentiality or integrity.
Potential Impact
For European organizations, this vulnerability poses a risk primarily to system availability and operational stability, especially in environments where Linux systems interact extensively with USB devices using user-space USBDEVFS ioctls. Systems that rely on USB peripherals for critical operations—such as industrial control systems, medical devices, or secure workstations—may experience hangs or degraded performance if a USB device becomes unresponsive and triggers this blocking behavior. This could lead to denial of service conditions on affected hosts, potentially disrupting business processes or critical infrastructure operations. While the vulnerability does not directly compromise data confidentiality or integrity, the resulting system hangs could indirectly affect service availability and operational continuity. Organizations with large Linux deployments, including cloud providers, data centers, and enterprises using Linux-based endpoints, may be impacted if USB device interactions are common. The lack of known exploits reduces immediate risk, but the vulnerability should be addressed proactively to avoid potential future exploitation or accidental system outages.
Mitigation Recommendations
European organizations should apply the Linux kernel patch that addresses CVE-2021-47582 as soon as it becomes available for their specific kernel versions and distributions. Kernel updates from trusted Linux vendors or distributions should be monitored and deployed promptly. In environments where immediate patching is not feasible, organizations can mitigate risk by limiting or controlling user-space access to USBDEVFS ioctls, restricting which users or processes can perform USB device control or bulk transfers. Monitoring kernel logs for hung task warnings related to USB operations can help detect attempts to trigger this condition. Additionally, organizations should audit USB device usage policies and consider disabling or restricting USB device access on critical systems where possible. For systems with custom or embedded Linux kernels, recompilation with the patched USB core code is recommended. Finally, educating system administrators about this vulnerability and its symptoms can aid in early detection and response.
Affected Countries
Germany, France, United Kingdom, Netherlands, Sweden, Finland, Poland, Italy, Spain
CVE-2021-47582: Vulnerability in Linux Linux
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.
AI-Powered Analysis
Technical Analysis
CVE-2021-47582 is a vulnerability identified in the Linux kernel's USB core subsystem, specifically related to the handling of USBDEVFS_CONTROL and USBDEVFS_BULK ioctl calls. These ioctls invoke the function usb_start_wait_urb(), which performs an uninterruptible wait with a user-specified timeout. If the timeout value is set very high and the USB device being accessed does not respond promptly, the kernel task executing the ioctl can become blocked for an extended period, as observed in testing by syzbot. This blocking manifests as a "Task X blocked for more than N seconds" kernel warning, indicating a hung task. The root cause is that usb_start_wait_urb() uses a non-killable wait, which prevents the task from being interrupted or killed during the wait period, potentially leading to system resource exhaustion or degraded system responsiveness. The patch addressing this vulnerability replaces the calls to usb_control_msg() and usb_bulk_msg() with specialized code that performs equivalent operations but uses a killable wait and GFP_KERNEL memory allocation flags instead of GFP_NOIO. This change allows the waiting task to be interrupted or killed if necessary, preventing indefinite blocking and improving system stability. The vulnerability affects Linux kernel versions prior to the patch and is related to USB device communication, particularly when user-space processes interact with USB devices via USBDEVFS ioctls with large timeout values. There are no known exploits in the wild, and the vulnerability does not have an assigned CVSS score. The issue primarily impacts system availability and stability rather than confidentiality or integrity.
Potential Impact
For European organizations, this vulnerability poses a risk primarily to system availability and operational stability, especially in environments where Linux systems interact extensively with USB devices using user-space USBDEVFS ioctls. Systems that rely on USB peripherals for critical operations—such as industrial control systems, medical devices, or secure workstations—may experience hangs or degraded performance if a USB device becomes unresponsive and triggers this blocking behavior. This could lead to denial of service conditions on affected hosts, potentially disrupting business processes or critical infrastructure operations. While the vulnerability does not directly compromise data confidentiality or integrity, the resulting system hangs could indirectly affect service availability and operational continuity. Organizations with large Linux deployments, including cloud providers, data centers, and enterprises using Linux-based endpoints, may be impacted if USB device interactions are common. The lack of known exploits reduces immediate risk, but the vulnerability should be addressed proactively to avoid potential future exploitation or accidental system outages.
Mitigation Recommendations
European organizations should apply the Linux kernel patch that addresses CVE-2021-47582 as soon as it becomes available for their specific kernel versions and distributions. Kernel updates from trusted Linux vendors or distributions should be monitored and deployed promptly. In environments where immediate patching is not feasible, organizations can mitigate risk by limiting or controlling user-space access to USBDEVFS ioctls, restricting which users or processes can perform USB device control or bulk transfers. Monitoring kernel logs for hung task warnings related to USB operations can help detect attempts to trigger this condition. Additionally, organizations should audit USB device usage policies and consider disabling or restricting USB device access on critical systems where possible. For systems with custom or embedded Linux kernels, recompilation with the patched USB core code is recommended. Finally, educating system administrators about this vulnerability and its symptoms can aid in early detection and response.
Affected Countries
For access to advanced analysis and higher rate limits, contact root@offseq.com
Technical Details
- Data Version
- 5.1
- Assigner Short Name
- Linux
- Date Reserved
- 2024-05-24T15:11:00.730Z
- Cisa Enriched
- true
- Cvss Version
- null
- State
- PUBLISHED
Threat ID: 682d9833c4522896dcbe9504
Added to database: 5/21/2025, 9:09:07 AM
Last enriched: 6/30/2025, 2:56:26 PM
Last updated: 8/1/2025, 7:13:37 AM
Views: 14
Related Threats
CVE-2025-8838: Improper Authentication in WinterChenS my-site
MediumCVE-2025-8837: Use After Free in JasPer
MediumCVE-2025-8661: Vulnerability in Broadcom Symantec PGP Encryption
MediumCVE-2025-8836: Reachable Assertion in JasPer
MediumCVE-2025-8747: CWE-502 Deserialization of Untrusted Data in Google Keras
HighActions
Updates to AI analysis are available only with a Pro account. Contact root@offseq.com for access.
External Links
Need enhanced features?
Contact root@offseq.com for Pro access with improved analysis and higher rate limits.