In the Linux kernel, the following vulnerability has been resolved:
bpf: Fix racing between bpf_timer_cancel_and_free and bpf_timer_cancel
The following race is possible between bpf_timer_cancel_and_free and bpf_timer_cancel. It will lead a UAF on the timer->timer.
bpf_timer_cancel(); spin_lock(); t = timer->time; spin_unlock();
bpf_timer_cancel_and_free(); spin_lock(); t = timer->timer; timer->timer = NULL; spin_unlock(); hrtimer_cancel(&t->timer); kfree(t);
/* UAF on t */ hrtimer_cancel(&t->timer);
In bpf_timer_cancel_and_free, this patch frees the timer->timer after a rcu grace period. This requires a rcu_head addition to the "struct bpf_hrtimer". Another kfree(t) happens in bpf_timer_init, this does not need a kfree_rcu because it is still under the spin_lock and timer->timer has not been visible by others yet.
In bpf_timer_cancel, rcu_read_lock() is added because this helper can be used in a non rcu critical section context (e.g. from a sleepable bpf prog). Other timer->timer usages in helpers.c have been audited, bpf_timer_cancel() is the only place where timer->timer is used outside of the spin_lock.
Another solution considered is to mark a t->flag in bpf_timer_cancel and clear it after hrtimer_cancel() is done. In bpf_timer_cancel_and_free, it busy waits for the flag to be cleared before kfree(t). This patch goes with a straight forward solution and frees timer->timer after a rcu grace period.
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 |
|---|---|---|---|---|
| Alma_linux | — | Upgrade kernel-devel-matchedUpgrade kernel-rtUpgrade kernel-rt-modulesUpgrade kernel-rt-debug-modules-coreUpgrade kernel-rt-debugUpgrade kernel-uki-virtUpgrade kernel-develUpgrade rvUpgrade kernel-rt-modules-coreUpgrade kernel-64k-develUpgrade kernel-zfcpdump-devel-matchedUpgrade kernel-rt-develUpgrade kernel-64k-debug-modulesUpgrade kernel-rt-debug-modules-extraUpgrade kernel-zfcpdump-coreUpgrade kernel-64k-debug-develUpgrade kernel-64k-modules-extraUpgrade kernel-coreUpgrade kernel-64k-debug-devel-matchedUpgrade kernel-zfcpdump-modulesUpgrade kernel-docUpgrade kernel-modules-extraUpgrade perfUpgrade kernel-toolsUpgrade kernel-modulesUpgrade libperfUpgrade kernel-debug-modules-extraUpgrade kernel-rt-debug-develUpgrade kernel-zfcpdumpUpgrade kernel-64k-debug-modules-coreUpgrade kernel-64k-debugUpgrade kernel-rt-debug-modulesUpgrade kernel-modules-coreUpgrade kernel-debug-develUpgrade kernel-64k-debug-modules-extraUpgrade python3-perfUpgrade kernel-64kUpgrade kernel-zfcpdump-modules-coreUpgrade kernel-tools-libsUpgrade kernel-debug-coreUpgrade kernel-cross-headersUpgrade kernel-rt-coreUpgrade rtlaUpgrade kernel-debugUpgrade kernel-64k-debug-coreUpgrade kernel-debug-uki-virtUpgrade kernel-tools-libs-develUpgrade kernel-64k-coreUpgrade kernel-64k-modulesUpgrade kernel-debug-modulesUpgrade kernel-rt-debug-coreUpgrade kernel-rt-modules-extraUpgrade kernel-headersUpgrade kernel-64k-modules-coreUpgrade kernel-zfcpdump-develUpgrade kernelUpgrade kernel-debug-devel-matchedUpgrade kernel-abi-stablelistsUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-64k-devel-matchedUpgrade bpftoolUpgrade kernel-debug-modules-core | Nov 4, 2024 | Apr 3, 2024 |
| Amazon Linux Ami 2 | — | Upgrade kernel-headersUpgrade kernelUpgrade bpftool-debuginfoUpgrade kernel-debuginfo-common-x86_64Upgrade python-perfUpgrade python-perf-debuginfoUpgrade kernel-toolsUpgrade kernel-livepatch-5.15.152-100.162Upgrade bpftoolUpgrade kernel-develUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-debuginfoUpgrade perfUpgrade kernel-tools-debuginfoUpgrade kernel-tools-develUpgrade perf-debuginfo | Dec 20, 2024 | Apr 3, 2024 |
| Amazon_linux_2023 | — | Upgrade kernel-headersUpgrade kernel-libbpfUpgrade kernel-debuginfoUpgrade python3-perfUpgrade kernel-tools-develUpgrade perfUpgrade kernel-modules-extra-commonUpgrade perf-debuginfoUpgrade kernel-libbpf-staticUpgrade bpftoolUpgrade kernel-modules-extraUpgrade kernel-toolsUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-debuginfo-common-x86_64Upgrade kernel-tools-debuginfoUpgrade kernel-libbpf-develUpgrade kernelUpgrade python3-perf-debuginfoUpgrade kernel-livepatch-6.1.82-99.168Upgrade bpftool-debuginfoUpgrade kernel-devel | Feb 17, 2025 | Apr 3, 2024 |
| Debian | — | Upgrade linux | Jul 30, 2024 | Apr 3, 2024 |
| Oracle_linux | — | Upgrade kernel | Aug 16, 2024 | Apr 3, 2024 |
| Redhat_linux | — | No solution existsUpgrade kernelUpgrade kernel-rt | Sep 13, 2024 | Apr 3, 2024 |
| Rocky_linux | — | Upgrade kernel-rtUpgrade kernel-debug-devel-matchedUpgrade kernel-rt-develUpgrade python3-perfUpgrade bpftoolUpgrade kernel-debug-modulesUpgrade kernel-rt-modules-coreUpgrade kernel-zfcpdump-devel-matchedUpgrade kernel-toolsUpgrade rvUpgrade kernel-rt-modules-extraUpgrade kernel-zfcpdump-modulesUpgrade kernel-rt-debug-debuginfoUpgrade kernel-zfcpdump-debuginfoUpgrade kernel-cross-headersUpgrade kernel-tools-libsUpgrade kernel-rt-debug-coreUpgrade kernelUpgrade kernel-zfcpdump-coreUpgrade kernel-zfcpdump-modules-coreUpgrade python3-perf-debuginfoUpgrade libperf-debuginfoUpgrade kernel-rt-kvmUpgrade kernel-tools-libs-develUpgrade perf-debuginfoUpgrade kernel-rt-debug-modules-extraUpgrade kernel-rt-debuginfoUpgrade kernel-modules-coreUpgrade kernel-debuginfoUpgrade kernel-debug-develUpgrade kernel-coreUpgrade kernel-zfcpdumpUpgrade kernel-rt-modulesUpgrade kernel-headersUpgrade kernel-debug-debuginfoUpgrade kernel-debugUpgrade perfUpgrade kernel-modulesUpgrade kernel-debug-modules-coreUpgrade kernel-debug-coreUpgrade rtlaUpgrade kernel-uki-virtUpgrade bpftool-debuginfoUpgrade kernel-rt-debug-modules-coreUpgrade kernel-modules-extraUpgrade kernel-debug-modules-extraUpgrade kernel-debug-uki-virtUpgrade kernel-rt-debug-kvmUpgrade kernel-rt-debug-develUpgrade kernel-develUpgrade kernel-rt-coreUpgrade kernel-devel-matchedUpgrade kernel-zfcpdump-develUpgrade kernel-tools-debuginfoUpgrade kernel-rt-debug-modulesUpgrade kernel-rt-debugUpgrade libperfUpgrade kernel-zfcpdump-modules-extra | Aug 1, 2024 | Apr 3, 2024 |
| Suse | — | Upgrade kernel-64kb-optionalUpgrade ocfs2-kmp-rtUpgrade dtb-socionextUpgrade kernel-64kb-livepatch-develUpgrade dtb-lgUpgrade kernel-debug-develUpgrade kernel-docsUpgrade kernel-rt-livepatch-develUpgrade kernel-rt-vdsoUpgrade kselftests-kmp-azureUpgrade kernel-macrosUpgrade dtb-amlogicUpgrade kernel-rt_debug-develUpgrade dtb-amdUpgrade cluster-md-kmp-defaultUpgrade kernel-azureUpgrade kernel-default-livepatch-develUpgrade kernel-source-vanillaUpgrade dlm-kmp-defaultUpgrade kernel-syms-rtUpgrade reiserfs-kmp-64kbUpgrade reiserfs-kmp-rtUpgrade kernel-rt-optionalUpgrade dtb-broadcomUpgrade kernel-default-develUpgrade dtb-hisiliconUpgrade dtb-amazonUpgrade kernel-debugUpgrade kernel-rt_debug-livepatch-develUpgrade kernel-docs-htmlUpgrade cluster-md-kmp-azureUpgrade kernel-debug-livepatch-develUpgrade kernel-default-baseUpgrade dtb-freescaleUpgrade gfs2-kmp-64kbUpgrade kernel-azure-vdsoUpgrade ocfs2-kmp-64kbUpgrade kernel-zfcpdumpUpgrade kernel-rt_debugUpgrade kernel-azure-optionalUpgrade kernel-kvmsmall-livepatch-develUpgrade kernel-azure-extraUpgrade kernel-kvmsmall-vdsoUpgrade reiserfs-kmp-defaultUpgrade kernel-64kb-extraUpgrade kernel-kvmsmall-develUpgrade kernel-default-livepatchUpgrade dlm-kmp-azureUpgrade kernel-64kbUpgrade kernel-source-rtUpgrade kernel-rt_debug-vdsoUpgrade dtb-marvellUpgrade kernel-default-extraUpgrade kernel-source-azureUpgrade dtb-renesasUpgrade dtb-appleUpgrade kselftests-kmp-rtUpgrade kernel-debug-vdsoUpgrade gfs2-kmp-rtUpgrade kernel-default-vdsoUpgrade kernel-rt-extraUpgrade kernel-devel-azureUpgrade kernel-develUpgrade gfs2-kmp-azureUpgrade cluster-md-kmp-64kbUpgrade kernel-obs-qaUpgrade kernel-default-base-rebuildUpgrade dtb-armUpgrade kernel-symsUpgrade kselftests-kmp-defaultUpgrade kernel-devel-rtUpgrade dtb-alteraUpgrade dtb-caviumUpgrade kernel-default-optionalUpgrade kernel-azure-livepatch-develUpgrade kernel-syms-azureUpgrade dtb-apmUpgrade dlm-kmp-rtUpgrade ocfs2-kmp-defaultUpgrade ocfs2-kmp-azureUpgrade dtb-nvidiaUpgrade kernel-defaultUpgrade dtb-qcomUpgrade dtb-mediatekUpgrade cluster-md-kmp-rtUpgrade kernel-sourceUpgrade kernel-azure-develUpgrade reiserfs-kmp-azureUpgrade kernel-64kb-develUpgrade dtb-allwinnerUpgrade dtb-rockchipUpgrade kernel-rtUpgrade dtb-exynosUpgrade dtb-xilinxUpgrade dtb-sprdUpgrade dlm-kmp-64kbUpgrade kernel-rt-livepatchUpgrade kernel-rt-develUpgrade kernel-kvmsmallUpgrade kselftests-kmp-64kbUpgrade gfs2-kmp-defaultUpgrade kernel-obs-build | May 6, 2024 | Apr 3, 2024 |
| Ubuntu | — | Upgrade linux-image-5.15.0-110-lowlatency-64kUpgrade linux-image-5.15.0-1065-azure-fdeUpgrade linux-image-5.15.0-1058-nvidiaUpgrade linux-image-oem-20.04cUpgrade linux-image-5.15.0-1058-raspiUpgrade linux-image-5.15.0-1060-kvmUpgrade linux-image-5.15.0-1058-intel-iotgUpgrade linux-image-5.15.0-112-generic-lpaeUpgrade linux-image-awsUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-5.15.0-1066-azureUpgrade linux-image-5.15.0-1060-gkeUpgrade linux-image-gkeop-5.15Upgrade linux-image-oem-20.04Upgrade linux-image-intel-iotgUpgrade linux-image-raspiUpgrade linux-image-5.15.0-1057-ibmUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-generic-hwe-20.04Upgrade linux-image-5.15.0-1056-ibmUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-kvmUpgrade linux-image-5.15.0-113-generic-lpaeUpgrade linux-image-gkeUpgrade linux-image-5.15.0-1046-gkeopUpgrade linux-image-5.15.0-112-generic-64kUpgrade linux-image-5.15.0-1062-gcpUpgrade linux-image-5.15.0-113-generic-64kUpgrade linux-image-5.15.0-112-genericUpgrade linux-image-oem-20.04dUpgrade linux-image-raspi-nolpaeUpgrade linux-image-5.15.0-1058-nvidia-lowlatencyUpgrade linux-image-lowlatency-64kUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-lowlatencyUpgrade linux-image-generic-64kUpgrade linux-image-gkeopUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-intelUpgrade linux-image-5.15.0-1061-oracleUpgrade linux-image-gke-5.15Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-5.15.0-113-genericUpgrade linux-image-virtualUpgrade linux-image-5.15.0-1030-xilinx-zynqmpUpgrade linux-image-5.15.0-110-lowlatencyUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-genericUpgrade linux-image-nvidiaUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-azure-fde-lts-22.04Upgrade linux-image-5.15.0-1063-awsUpgrade linux-image-oem-20.04bUpgrade linux-image-ibmUpgrade linux-image-aws-lts-22.04Upgrade linux-image-gcpUpgrade linux-image-azure-lts-22.04Upgrade linux-image-generic-lpae | Jul 1, 2024 | Apr 3, 2024 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Oct 14, 2025 | Apr 3, 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