In the Linux kernel, the following vulnerability has been resolved:
rcu/nocb: Fix WARN_ON_ONCE() in the rcu_nocb_bypass_lock()
For the kernels built with CONFIG_RCU_NOCB_CPU_DEFAULT_ALL=y and CONFIG_RCU_LAZY=y, the following scenarios will trigger WARN_ON_ONCE() in the rcu_nocb_bypass_lock() and rcu_nocb_wait_contended() functions:
CPU2 CPU11 kthread rcu_nocb_cb_kthread ksys_write rcu_do_batch vfs_write rcu_torture_timer_cb proc_sys_write __kmem_cache_free proc_sys_call_handler kmemleak_free drop_caches_sysctl_handler delete_object_full drop_slab __delete_object shrink_slab put_object lazy_rcu_shrink_scan call_rcu rcu_nocb_flush_bypass __call_rcu_commn rcu_nocb_bypass_lock raw_spin_trylock(&rdp->nocb_bypass_lock) fail atomic_inc(&rdp->nocb_lock_contended); rcu_nocb_wait_contended WARN_ON_ONCE(smp_processor_id() != rdp->cpu); WARN_ON_ONCE(atomic_read(&rdp->nocb_lock_contended)) | |_ _ _ _ _ _ _ _ _ _same rdp and rdp->cpu != 11_ _ _ _ _ _ _ _ _ __|
Reproduce this bug with "echo 3 > /proc/sys/vm/drop_caches".
This commit therefore uses rcu_nocb_try_flush_bypass() instead of rcu_nocb_flush_bypass() in lazy_rcu_shrink_scan(). If the nocb_bypass queue is being flushed, then rcu_nocb_try_flush_bypass will return directly.
CVSS Details
- CVSS 3.1 Base Score: 7.8
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Debian | — | Upgrade linux | May 15, 2025 | May 19, 2024 |
| Redhat_linux | — | No solution exists | Jul 9, 2025 | May 19, 2024 |
| Ubuntu | — | Upgrade linux-image-6.8.0-38-lowlatencyUpgrade linux-image-6.8.0-1009-nvidia-64kUpgrade linux-image-oem-24.04aUpgrade linux-image-6.8.0-1008-oracle-64kUpgrade linux-image-gcpUpgrade linux-image-6.8.0-1007-raspiUpgrade linux-image-gkeUpgrade linux-image-oracleUpgrade linux-image-6.8.0-1009-nvidiaUpgrade linux-image-virtualUpgrade linux-image-6.8.0-1010-azureUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-awsUpgrade linux-image-6.8.0-1007-intelUpgrade linux-image-kvmUpgrade linux-image-oem-24.04Upgrade linux-image-virtual-hwe-24.04Upgrade linux-image-generic-hwe-24.04Upgrade linux-image-6.8.0-1010-azure-fdeUpgrade linux-image-6.8.0-1011-awsUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-6.8.0-38-genericUpgrade linux-image-6.8.0-38-generic-64kUpgrade linux-image-generic-64kUpgrade linux-image-azure-fdeUpgrade linux-image-6.8.0-1006-gkeUpgrade linux-image-6.8.0-1008-ibmUpgrade linux-image-oracle-64kUpgrade linux-image-lowlatency-64kUpgrade linux-image-nvidia-64kUpgrade linux-image-6.8.0-38-lowlatency-64kUpgrade linux-image-6.8.0-1008-oemUpgrade linux-image-azureUpgrade linux-image-generic-lpaeUpgrade linux-image-ibmUpgrade linux-image-lowlatencyUpgrade linux-image-genericUpgrade linux-image-nvidiaUpgrade linux-image-intelUpgrade linux-image-6.8.0-1010-gcpUpgrade linux-image-ibm-classicUpgrade linux-image-6.8.0-1008-oracleUpgrade linux-image-raspi | Jul 12, 2024 | May 19, 2024 |
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