In the Linux kernel, the following vulnerability has been resolved:
blk-cgroup: fix possible deadlock while configuring policy
Following deadlock can be triggered easily by lockdep:
WARNING: possible circular locking dependency detected 6.17.0-rc3-00124-ga12c2658ced0 #1665 Not tainted ------------------------------------------------------ check/1334 is trying to acquire lock: ff1100011d9d0678 (&q->sysfs_lock){+.+.}-{4:4}, at: blk_unregister_queue+0x53/0x180
but task is already holding lock: ff1100011d9d00e0 (&q->q_usage_counter(queue)#3){++++}-{0:0}, at: del_gendisk+0xba/0x110
which lock already depends on the new lock.
the existing dependency chain (in reverse order) is:
-> #2 (&q->q_usage_counter(queue)#3){++++}-{0:0}: blk_queue_enter+0x40b/0x470 blkg_conf_prep+0x7b/0x3c0 tg_set_limit+0x10a/0x3e0 cgroup_file_write+0xc6/0x420 kernfs_fop_write_iter+0x189/0x280 vfs_write+0x256/0x490 ksys_write+0x83/0x190 __x64_sys_write+0x21/0x30 x64_sys_call+0x4608/0x4630 do_syscall_64+0xdb/0x6b0 entry_SYSCALL_64_after_hwframe+0x76/0x7e
-> #1 (&q->rq_qos_mutex){+.+.}-{4:4}: __mutex_lock+0xd8/0xf50 mutex_lock_nested+0x2b/0x40 wbt_init+0x17e/0x280 wbt_enable_default+0xe9/0x140 blk_register_queue+0x1da/0x2e0 __add_disk+0x38c/0x5d0 add_disk_fwnode+0x89/0x250 device_add_disk+0x18/0x30 virtblk_probe+0x13a3/0x1800 virtio_dev_probe+0x389/0x610 really_probe+0x136/0x620 __driver_probe_device+0xb3/0x230 driver_probe_device+0x2f/0xe0 __driver_attach+0x158/0x250 bus_for_each_dev+0xa9/0x130 driver_attach+0x26/0x40 bus_add_driver+0x178/0x3d0 driver_register+0x7d/0x1c0 __register_virtio_driver+0x2c/0x60 virtio_blk_init+0x6f/0xe0 do_one_initcall+0x94/0x540 kernel_init_freeable+0x56a/0x7b0 kernel_init+0x2b/0x270 ret_from_fork+0x268/0x4c0 ret_from_fork_asm+0x1a/0x30
-> #0 (&q->sysfs_lock){+.+.}-{4:4}: __lock_acquire+0x1835/0x2940 lock_acquire+0xf9/0x450 __mutex_lock+0xd8/0xf50 mutex_lock_nested+0x2b/0x40 blk_unregister_queue+0x53/0x180 __del_gendisk+0x226/0x690 del_gendisk+0xba/0x110 sd_remove+0x49/0xb0 [sd_mod] device_remove+0x87/0xb0 device_release_driver_internal+0x11e/0x230 device_release_driver+0x1a/0x30 bus_remove_device+0x14d/0x220 device_del+0x1e1/0x5a0 __scsi_remove_device+0x1ff/0x2f0 scsi_remove_device+0x37/0x60 sdev_store_delete+0x77/0x100 dev_attr_store+0x1f/0x40 sysfs_kf_write+0x65/0x90 kernfs_fop_write_iter+0x189/0x280 vfs_write+0x256/0x490 ksys_write+0x83/0x190 __x64_sys_write+0x21/0x30 x64_sys_call+0x4608/0x4630 do_syscall_64+0xdb/0x6b0 entry_SYSCALL_64_after_hwframe+0x76/0x7e
other info that might help us debug this:
Chain exists of: &q->sysfs_lock --> &q->rq_qos_mutex --> &q->q_usage_counter(queue)#3
Possible unsafe locking scenario:
CPU0 CPU1 ---- ---- lock(&q->q_usage_counter(queue)#3); lock(&q->rq_qos_mutex); lock(&q->q_usage_counter(queue)#3); lock(&q->sysfs_lock);
Root cause is that queue_usage_counter is grabbed with rq_qos_mutex held in blkg_conf_prep(), while queue should be freezed before rq_qos_mutex from other context.
The blk_queue_enter() from blkg_conf_prep() is used to protect against policy deactivation, which is already protected with blkcg_mutex, hence convert blk_queue_enter() to blkcg_mutex to fix this problem. Meanwhile, consider that blkcg_mutex is held after queue is freezed from policy deactivation, also convert blkg_alloc() to use GFP_NOIO.
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon_linux_2023 | — | Upgrade kernel6.12-toolsUpgrade kernel6.12Upgrade kernel6.12-modules-extra-commonUpgrade kernel6.12-debuginfoUpgrade python3-perf6.12-debuginfoUpgrade python3-perf6.12Upgrade kernel6.12-libbpfUpgrade kernel6.12-tools-develUpgrade kernel6.12-headersUpgrade kernel6.12-modules-extraUpgrade kernel6.12-debuginfo-common-x86_64Upgrade bpftool6.12Upgrade perf6.12Upgrade kernel6.12-debuginfo-common-aarch64Upgrade kernel6.12-develUpgrade kernel6.12-libbpf-staticUpgrade kernel-livepatch-6.12.58-82.121Upgrade kernel6.12-tools-debuginfoUpgrade kernel6.12-libbpf-debuginfoUpgrade kernel6.12-libbpf-develUpgrade bpftool6.12-debuginfoUpgrade perf6.12-debuginfo | Apr 7, 2026 | Dec 16, 2025 |
| Debian | — | Upgrade linux | Jul 23, 2026 | Jul 23, 2026 |
| Oracle_linux | — | Upgrade kernel-uek | Jan 15, 2026 | Dec 16, 2025 |
| Redhat_linux | — | No solution exists | Jul 17, 2026 | Dec 16, 2025 |
| Ubuntu | — | Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-gke-64k-6.8Upgrade linux-image-gkeopUpgrade linux-image-gke-6.8Upgrade linux-image-6.17.0-1007-oracleUpgrade linux-image-oem-22.04dUpgrade linux-image-azure-fipsUpgrade linux-image-aws-fipsUpgrade linux-image-gke-64kUpgrade linux-image-xilinx-6.8Upgrade linux-image-generic-64k-6.17Upgrade linux-image-raspiUpgrade linux-image-6.8.0-1052-azure-fipsUpgrade linux-image-aws-lts-24.04Upgrade linux-image-genericUpgrade linux-image-oracle-64k-6.17Upgrade linux-image-oracle-6.8Upgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-virtual-6.17Upgrade linux-image-6.8.0-106-lowlatencyUpgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-6.8.0-2040-raspi-realtimeUpgrade linux-image-azure-lts-24.04Upgrade linux-image-gcp-64k-6.17Upgrade linux-image-azure-6.17Upgrade linux-image-oem-22.04Upgrade linux-image-6.8.0-1050-aws-64kUpgrade linux-image-gcp-fips-6.8Upgrade linux-image-generic-hwe-22.04Upgrade linux-image-6.17.0-1007-oracle-64kUpgrade linux-image-raspi-realtime-6.8Upgrade linux-image-6.17.0-14-genericUpgrade linux-image-nvidiaUpgrade linux-image-6.8.0-1048-gkeUpgrade linux-image-nvidia-64kUpgrade linux-image-lowlatency-64kUpgrade linux-image-6.8.0-1048-gke-64kUpgrade linux-image-nvidia-6.8Upgrade linux-image-ibm-classicUpgrade linux-image-6.8.1-1045-realtimeUpgrade linux-image-generic-6.17Upgrade linux-image-6.8.0-1052-gcp-64kUpgrade linux-image-6.8.0-1047-oracle-64kUpgrade linux-image-lowlatencyUpgrade linux-image-virtual-6.8Upgrade linux-image-6.8.0-106-fipsUpgrade linux-image-6.8.0-106-genericUpgrade linux-image-6.8.0-1035-gkeopUpgrade linux-image-6.8.0-1049-ibmUpgrade linux-image-6.8.0-1029-xilinxUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-oracle-64kUpgrade linux-image-azureUpgrade linux-image-6.17.0-1007-gcpUpgrade linux-image-aws-6.8Upgrade linux-image-oem-22.04aUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-oracle-64k-6.8Upgrade linux-image-lowlatency-6.8Upgrade linux-image-6.17.0-1007-aws-64kUpgrade linux-image-generic-64k-6.8Upgrade linux-image-oracle-lts-24.04Upgrade linux-image-gcp-fipsUpgrade linux-image-realtime-6.17Upgrade linux-image-aws-64k-6.17Upgrade linux-image-6.17.0-1008-azureUpgrade linux-image-gcp-64kUpgrade linux-image-realtime-6.8.1Upgrade linux-image-oem-22.04cUpgrade linux-image-ibmUpgrade linux-image-6.8.0-106-lowlatency-64kUpgrade linux-image-generic-64kUpgrade linux-image-6.8.0-1049-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1051-azureUpgrade linux-image-raspi-6.8Upgrade linux-image-awsUpgrade linux-image-oem-6.17Upgrade linux-image-gcp-6.17Upgrade linux-image-aws-fips-6.8Upgrade linux-image-6.17.0-1008-raspiUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-xilinx-zynqmpUpgrade linux-image-aws-6.17Upgrade linux-image-6.17.0-1011-oemUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-6.17.0-1007-gcp-64kUpgrade linux-image-oem-22.04bUpgrade linux-image-intel-iotgUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-kvmUpgrade linux-image-6.8.0-1047-oracleUpgrade linux-image-aws-64k-6.8Upgrade linux-image-oracle-6.17Upgrade linux-image-oracleUpgrade linux-image-gkeop-6.8Upgrade linux-image-raspi-realtimeUpgrade linux-image-gcp-6.8Upgrade linux-image-generic-lpaeUpgrade linux-image-azure-6.8Upgrade linux-image-ibm-6.8Upgrade linux-image-azure-fips-6.8Upgrade linux-image-6.17.0-1006-realtimeUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-aws-64kUpgrade linux-image-generic-6.8Upgrade linux-image-6.17.0-1007-awsUpgrade linux-image-realtime-hwe-22.04Upgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-nvidia-64k-6.8Upgrade linux-image-realtimeUpgrade linux-image-6.8.0-1049-nvidia-lowlatencyUpgrade linux-image-6.17.0-14-generic-64kUpgrade linux-image-6.8.0-1050-awsUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-gcpUpgrade linux-image-6.8.0-1049-nvidiaUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-gkeUpgrade linux-image-gcp-64k-6.8Upgrade linux-image-fips-6.8Upgrade linux-image-6.8.0-1052-gcp-fipsUpgrade linux-image-6.8.0-1050-aws-fipsUpgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-raspi-6.17Upgrade linux-image-6.8.0-1052-gcpUpgrade linux-image-6.8.0-1050-raspiUpgrade linux-image-6.8.0-1049-nvidia-64kUpgrade linux-image-virtualUpgrade linux-image-fipsUpgrade linux-image-xilinxUpgrade linux-image-6.8.0-106-generic-64kUpgrade linux-image-aws-64k-lts-24.04 | Feb 13, 2026 | Feb 12, 2026 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub