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.
| 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-awsUpgrade linux-image-gkeUpgrade linux-image-kvmUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-6.8.0-1009-nvidiaUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-virtualUpgrade linux-image-6.8.0-1007-raspiUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-oem-24.04aUpgrade linux-image-oracleUpgrade linux-image-oem-24.04Upgrade linux-image-6.8.0-1010-azure-fdeUpgrade linux-image-6.8.0-1007-intelUpgrade linux-image-6.8.0-1008-oracle-64kUpgrade linux-image-6.8.0-38-lowlatencyUpgrade linux-image-6.8.0-1009-nvidia-64kUpgrade linux-image-6.8.0-1010-azureUpgrade linux-image-gcpUpgrade linux-image-azure-fdeUpgrade linux-image-genericUpgrade linux-image-ibmUpgrade linux-image-ibm-classicUpgrade linux-image-6.8.0-1006-gkeUpgrade linux-image-6.8.0-1008-ibmUpgrade linux-image-6.8.0-1008-oemUpgrade linux-image-6.8.0-38-lowlatency-64kUpgrade linux-image-oracle-64kUpgrade linux-image-lowlatencyUpgrade linux-image-6.8.0-1008-oracleUpgrade linux-image-lowlatency-64kUpgrade linux-image-nvidia-64kUpgrade linux-image-raspiUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-6.8.0-1011-awsUpgrade linux-image-intelUpgrade linux-image-6.8.0-38-genericUpgrade linux-image-6.8.0-38-generic-64kUpgrade linux-image-generic-64kUpgrade linux-image-nvidiaUpgrade linux-image-azureUpgrade linux-image-6.8.0-1010-gcpUpgrade linux-image-generic-lpae | Jul 12, 2024 | May 19, 2024 |
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