In the Linux kernel, the following vulnerability has been resolved:
x86: stop playing stack games in profile_pc()
The 'profile_pc()' function is used for timer-based profiling, which isn't really all that relevant any more to begin with, but it also ends up making assumptions based on the stack layout that aren't necessarily valid.
Basically, the code tries to account the time spent in spinlocks to the caller rather than the spinlock, and while I support that as a concept, it's not worth the code complexity or the KASAN warnings when no serious profiling is done using timers anyway these days.
And the code really does depend on stack layout that is only true in the simplest of cases. We've lost the comment at some point (I think when the 32-bit and 64-bit code was unified), but it used to say:
Assume the lock function has either no stack frame or a copy of eflags from PUSHF.
which explains why it just blindly loads a word or two straight off the stack pointer and then takes a minimal look at the values to just check if they might be eflags or the return pc:
Eflags always has bits 22 and up cleared unlike kernel addresses
but that basic stack layout assumption assumes that there isn't any lock debugging etc going on that would complicate the code and cause a stack frame.
It causes KASAN unhappiness reported for years by syzkaller [1] and others [2].
With no real practical reason for this any more, just remove the code.
Just for historical interest, here's some background commits relating to this code from 2006:
0cb91a229364 ("i386: Account spinlocks to the caller during profiling for !FP kernels") 31679f38d886 ("Simplify profile_pc on x86-64")
and a code unification from 2009:
ef4512882dbe ("x86: time_32/64.c unify profile_pc")
but the basics of this thing actually goes back to before the git tree.
CVSS Details
- CVSS 3.1 Base Score: 5.5
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Alma_linux | — | Upgrade bpftoolUpgrade kernel-rt-debug-kvmUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-abi-stablelistsUpgrade kernel-64k-coreUpgrade kernel-debug-modulesUpgrade kernel-rt-debug-coreUpgrade kernel-debug-uki-virtUpgrade kernel-debug-develUpgrade rtlaUpgrade kernel-64k-debug-coreUpgrade kernel-64k-modulesUpgrade kernel-cross-headersUpgrade kernel-debug-modules-coreUpgrade kernel-64k-debug-modules-extraUpgrade python3-perfUpgrade kernel-modules-coreUpgrade kernel-64k-modules-coreUpgrade kernel-headersUpgrade kernelUpgrade kernel-rt-coreUpgrade kernel-debugUpgrade kernel-tools-libsUpgrade kernel-debug-devel-matchedUpgrade kernel-rt-modules-extraUpgrade kernel-64kUpgrade kernel-zfcpdump-develUpgrade kernel-tools-libs-develUpgrade kernel-64k-devel-matchedUpgrade kernel-toolsUpgrade kernel-64k-debug-develUpgrade kernel-rt-debug-modules-coreUpgrade kernel-devel-matchedUpgrade kernel-zfcpdump-modulesUpgrade rvUpgrade kernel-rt-modulesUpgrade kernel-coreUpgrade kernel-rt-kvmUpgrade kernel-rt-debugUpgrade kernel-64k-modules-extraUpgrade libperfUpgrade kernel-debug-modules-extraUpgrade kernel-modules-extraUpgrade kernel-64k-develUpgrade kernel-modulesUpgrade kernel-64k-debug-devel-matchedUpgrade kernel-64k-debugUpgrade kernel-rt-debug-modulesUpgrade kernel-rtUpgrade kernel-64k-debug-modulesUpgrade kernel-zfcpdump-devel-matchedUpgrade perfUpgrade kernel-develUpgrade kernel-uki-virtUpgrade kernel-zfcpdump-modules-coreUpgrade kernel-64k-debug-modules-coreUpgrade kernel-zfcpdumpUpgrade kernel-docUpgrade kernel-rt-debug-modules-extraUpgrade kernel-zfcpdump-coreUpgrade kernel-rt-modules-coreUpgrade kernel-rt-develUpgrade kernel-debug-coreUpgrade kernel-rt-debug-devel | Sep 26, 2024 | Jul 29, 2024 |
| Amazon Linux Ami 2 | — | Upgrade kernel-livepatch-5.10.223-211.872Upgrade kernel-tools-develUpgrade perf-debuginfoUpgrade bpftoolUpgrade kernelUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-develUpgrade kernel-debuginfoUpgrade perfUpgrade kernel-tools-debuginfoUpgrade bpftool-debuginfoUpgrade kernel-headersUpgrade kernel-toolsUpgrade kernel-livepatch-5.15.162-107.160Upgrade kernel-debuginfo-common-x86_64Upgrade python-perf-debuginfoUpgrade python-perf | Aug 22, 2024 | Jul 29, 2024 |
| Amazon_linux_2023 | — | Upgrade kernel-tools-develUpgrade kernel-libbpf-develUpgrade bpftoolUpgrade kernel-modules-extra-commonUpgrade python3-perf-debuginfoUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-libbpf-staticUpgrade kernelUpgrade python3-perfUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-develUpgrade bpftool-debuginfoUpgrade kernel-debuginfoUpgrade kernel-headersUpgrade perfUpgrade kernel-modules-extraUpgrade kernel-livepatch-6.1.97-104.177Upgrade kernel-libbpfUpgrade perf-debuginfoUpgrade kernel-tools-debuginfoUpgrade kernel-tools | Feb 17, 2025 | Jul 29, 2024 |
| Debian | — | Upgrade linuxUpgrade linux-6.1 | Aug 7, 2024 | Jul 29, 2024 |
| Huawei Euleros 2_0_sp10 | — | Upgrade kernel-toolsUpgrade kernelUpgrade kernel-tools-libsUpgrade kernel-abi-stablelistsUpgrade python3-perf | Nov 11, 2024 | Jul 29, 2024 |
| Huawei Euleros 2_0_sp11 | — | Upgrade kernel-tools-libsUpgrade kernel-toolsUpgrade kernel-abi-stablelistsUpgrade kernelUpgrade python3-perfUpgrade bpftool | Oct 9, 2024 | Jul 29, 2024 |
| Huawei Euleros 2_0_sp12 | — | Upgrade kernel-toolsUpgrade bpftoolUpgrade kernel-tools-libsUpgrade kernel-abi-stablelistsUpgrade kernelUpgrade python3-perf | Nov 5, 2024 | Jul 29, 2024 |
| Huawei Euleros 2_0_sp9 | — | Upgrade python3-perfUpgrade kernelUpgrade kernel-toolsUpgrade kernel-tools-libs | Nov 11, 2024 | Jul 29, 2024 |
| Oracle_linux | — | Upgrade kernel-uekUpgrade kernel | Oct 16, 2024 | Jul 29, 2024 |
| Redhat_linux | — | No solution existsUpgrade kernelUpgrade kernel-rt | Sep 25, 2024 | Jul 29, 2024 |
| Rocky_linux | — | Upgrade libperfUpgrade perf-debuginfoUpgrade kernel-devel-matchedUpgrade kernel-zfcpdump-coreUpgrade kernel-debug-devel-matchedUpgrade kernel-tools-libs-develUpgrade kernel-zfcpdump-debuginfoUpgrade kernelUpgrade python3-perfUpgrade kernel-develUpgrade kernel-rt-debug-modules-extraUpgrade libperf-debuginfoUpgrade perfUpgrade kernel-zfcpdump-modules-coreUpgrade kernel-rt-modules-extraUpgrade kernel-rt-coreUpgrade kernel-modules-coreUpgrade kernel-headersUpgrade kernel-cross-headersUpgrade kernel-modulesUpgrade kernel-rtUpgrade kernel-rt-debug-modulesUpgrade kernel-debug-develUpgrade kernel-debug-debuginfoUpgrade kernel-zfcpdump-devel-matchedUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-zfcpdumpUpgrade kernel-toolsUpgrade kernel-tools-debuginfoUpgrade kernel-modules-extraUpgrade bpftoolUpgrade kernel-rt-debugUpgrade kernel-debuginfoUpgrade bpftool-debuginfoUpgrade python3-perf-debuginfoUpgrade kernel-rt-modules-coreUpgrade kernel-rt-debug-kvmUpgrade kernel-rt-debuginfoUpgrade kernel-tools-libsUpgrade kernel-debug-modules-coreUpgrade kernel-zfcpdump-modulesUpgrade kernel-zfcpdump-develUpgrade kernel-rt-debug-develUpgrade kernel-rt-debug-modules-coreUpgrade kernel-coreUpgrade kernel-debug-coreUpgrade kernel-debugUpgrade kernel-rt-develUpgrade kernel-debug-uki-virtUpgrade kernel-debug-modules-extraUpgrade kernel-rt-kvmUpgrade kernel-rt-debug-coreUpgrade kernel-uki-virtUpgrade rtlaUpgrade kernel-rt-debug-debuginfoUpgrade rvUpgrade kernel-rt-modulesUpgrade kernel-rt-debuginfo-common-x86_64Upgrade kernel-debug-modules | Sep 17, 2024 | Jul 29, 2024 |
| Suse | — | Upgrade kernel-rtUpgrade dtb-broadcomUpgrade dtb-rockchipUpgrade ocfs2-kmp-defaultUpgrade kernel-rt-optionalUpgrade kernel-source-rtUpgrade kernel-azure-develUpgrade kernel-default-livepatchUpgrade kernel-default-baseUpgrade kernel-azureUpgrade kernel-azure-baseUpgrade dlm-kmp-defaultUpgrade cluster-md-kmp-64kbUpgrade dtb-socionextUpgrade kernel-default-base-rebuildUpgrade dtb-alteraUpgrade reiserfs-kmp-rtUpgrade dtb-qcomUpgrade kernel-rt-vdsoUpgrade kernel-rt_debug-develUpgrade kernel-debug-vdsoUpgrade kernel-64kb-extraUpgrade kernel-default-manUpgrade gfs2-kmp-defaultUpgrade kselftests-kmp-rtUpgrade kernel-rt-extraUpgrade kernel-azure-vdsoUpgrade kernel-default-livepatch-develUpgrade kernel-kvmsmall-vdsoUpgrade dlm-kmp-rtUpgrade dtb-sprdUpgrade dtb-allwinnerUpgrade dtb-caviumUpgrade dtb-nvidiaUpgrade gfs2-kmp-azureUpgrade kernel-obs-buildUpgrade kernel-default-vdsoUpgrade kernel-source-vanillaUpgrade kernel-defaultUpgrade kernel-rt_debugUpgrade reiserfs-kmp-64kbUpgrade kernel-azure-optionalUpgrade kernel-rt_debug-livepatch-develUpgrade kselftests-kmp-azureUpgrade dtb-marvellUpgrade ocfs2-kmp-64kbUpgrade kernel-docs-htmlUpgrade dlm-kmp-64kbUpgrade reiserfs-kmp-defaultUpgrade kernel-debugUpgrade dtb-amazonUpgrade kernel-default-optionalUpgrade kernel-symsUpgrade kernel-devel-azureUpgrade kernel-rt_debug-vdsoUpgrade reiserfs-kmp-azureUpgrade kernel-default-develUpgrade dtb-hisiliconUpgrade kernel-devel-rtUpgrade kernel-obs-qaUpgrade kernel-docsUpgrade kernel-azure-livepatch-develUpgrade kernel-64kb-optionalUpgrade gfs2-kmp-rtUpgrade dtb-exynosUpgrade dtb-amlogicUpgrade kernel-rt-livepatch-develUpgrade kselftests-kmp-64kbUpgrade kernel-rt-livepatchUpgrade kernel-develUpgrade dtb-xilinxUpgrade dtb-freescaleUpgrade ocfs2-kmp-rtUpgrade kernel-default-extraUpgrade ocfs2-kmp-azureUpgrade cluster-md-kmp-defaultUpgrade kernel-syms-azureUpgrade kernel-source-azureUpgrade kernel-debug-develUpgrade kernel-debug-livepatch-develUpgrade kernel-64kb-livepatch-develUpgrade dtb-appleUpgrade dtb-amdUpgrade dlm-kmp-azureUpgrade kernel-syms-rtUpgrade cluster-md-kmp-rtUpgrade kernel-kvmsmall-develUpgrade kernel-kvmsmallUpgrade kernel-zfcpdumpUpgrade dtb-apmUpgrade cluster-md-kmp-azureUpgrade kernel-macrosUpgrade kernel-azure-extraUpgrade kernel-64kb-develUpgrade kernel-64kbUpgrade dtb-renesasUpgrade dtb-armUpgrade kselftests-kmp-defaultUpgrade kernel-kvmsmall-livepatch-develUpgrade dtb-mediatekUpgrade gfs2-kmp-64kbUpgrade kernel-sourceUpgrade kernel-rt-develUpgrade dtb-lg | Aug 14, 2024 | Jul 29, 2024 |
| Ubuntu | — | Upgrade linux-image-awsUpgrade linux-image-5.4.0-195-generic-lpaeUpgrade linux-image-oracleUpgrade linux-image-5.15.0-121-genericUpgrade linux-image-oem-osp1Upgrade linux-image-virtual-hwe-24.04Upgrade linux-image-bluefieldUpgrade linux-image-5.15.0-1068-gcpUpgrade linux-image-kvmUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1018-awsUpgrade linux-image-virtual-hwe-18.04Upgrade linux-image-5.15.0-121-generic-lpaeUpgrade linux-image-6.8.0-1014-ibmUpgrade linux-image-6.8.0-1017-azure-fdeUpgrade linux-image-5.4.0-195-lowlatencyUpgrade linux-image-azure-cvmUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-oem-24.04Upgrade linux-image-xilinx-zynqmpUpgrade linux-image-5.4.0-1136-gcpUpgrade linux-image-5.4.0-1120-kvmUpgrade linux-image-5.4.0-1137-azureUpgrade linux-image-5.15.0-1062-raspiUpgrade linux-image-6.8.0-1017-nvidia-lowlatencyUpgrade linux-image-6.8.0-1015-oracleUpgrade linux-image-5.15.0-1064-nvidiaUpgrade linux-image-raspi2-hwe-18.04Upgrade linux-image-5.15.0-1052-gkeopUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-5.4.0-1132-awsUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-5.15.0-1067-oracleUpgrade linux-image-6.8.0-1013-gkeUpgrade linux-image-gkeUpgrade linux-image-5.15.0-1066-gkeUpgrade linux-image-oem-24.04aUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-oem-20.04dUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-raspi-hwe-18.04Upgrade linux-image-6.8.0-48-genericUpgrade linux-image-gcpUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-generic-hwe-20.04Upgrade linux-image-5.15.0-1035-xilinx-zynqmpUpgrade linux-image-oem-20.04Upgrade linux-image-6.8.0-1016-oemUpgrade linux-image-gcp-lts-20.04Upgrade linux-image-raspi2Upgrade linux-image-nvidia-64k-6.8Upgrade linux-image-oemUpgrade linux-image-raspi-nolpaeUpgrade linux-image-virtualUpgrade linux-image-5.4.0-195-genericUpgrade linux-image-6.8.0-1016-gcpUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-intel-iotgUpgrade linux-image-6.8.0-1017-nvidia-lowlatency-64kUpgrade linux-image-oracle-lts-20.04Upgrade linux-image-lowlatency-64k-hwe-24.04Upgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-6.8.0-1015-oracle-64kUpgrade linux-image-gkeop-5.15Upgrade linux-image-azure-lts-20.04Upgrade linux-image-lowlatency-hwe-18.04Upgrade linux-image-oem-22.04dUpgrade linux-image-5.15.0-121-lowlatencyUpgrade linux-image-5.15.0-1069-awsUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-aws-lts-22.04Upgrade linux-image-generic-hwe-24.04Upgrade linux-image-5.4.0-1116-raspiUpgrade linux-image-5.4.0-1099-gkeopUpgrade linux-image-5.15.0-1064-nvidia-lowlatencyUpgrade linux-image-5.15.0-1066-kvmUpgrade linux-image-5.15.0-1064-intel-iotgUpgrade linux-image-ibm-lts-20.04Upgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-oem-22.04aUpgrade linux-image-raspiUpgrade linux-image-nvidia-6.8Upgrade linux-image-azure-fde-lts-22.04Upgrade linux-image-generic-hwe-18.04Upgrade linux-image-6.8.0-1014-raspiUpgrade linux-image-snapdragon-hwe-18.04Upgrade linux-image-azureUpgrade linux-image-generic-lpaeUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-6.8.0-1017-nvidia-64kUpgrade linux-image-6.8.0-1016-azure-fdeUpgrade linux-image-5.4.0-1092-bluefieldUpgrade linux-image-6.8.0-1002-gkeopUpgrade linux-image-gkeopUpgrade linux-image-6.8.0-1017-nvidiaUpgrade linux-image-6.8.0-1017-gcpUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-ibmUpgrade linux-image-nvidia-64kUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-5.4.0-1079-ibmUpgrade linux-image-oem-22.04cUpgrade linux-image-5.15.0-121-lowlatency-64kUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-6.8.0-1016-azureUpgrade linux-image-5.4.0-1051-xilinx-zynqmpUpgrade linux-image-5.15.0-1072-azureUpgrade linux-image-5.15.0-1062-ibmUpgrade linux-image-5.4.0-1043-iotUpgrade linux-image-nvidiaUpgrade linux-image-ibm-classicUpgrade linux-image-generic-64kUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-5.15.0-121-generic-64kUpgrade linux-image-oracle-64kUpgrade linux-image-6.8.0-1017-azureUpgrade linux-image-azure-lts-22.04Upgrade linux-image-oem-22.04bUpgrade linux-image-6.8.0-48-generic-64kUpgrade linux-image-gkeop-6.8Upgrade linux-image-oem-20.04cUpgrade linux-image-lowlatencyUpgrade linux-image-genericUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-oem-20.04bUpgrade linux-image-lowlatency-64kUpgrade linux-image-lowlatency-hwe-24.04Upgrade linux-image-virtual-hwe-22.04Upgrade linux-image-aws-lts-20.04Upgrade linux-image-intelUpgrade linux-image-azure-fdeUpgrade linux-image-gkeop-5.4Upgrade linux-image-6.8.0-48-lowlatency-64kUpgrade linux-image-gke-5.15Upgrade linux-image-6.8.0-48-lowlatencyUpgrade linux-image-5.15.0-1072-azure-fdeUpgrade linux-image-oem-22.04Upgrade linux-image-5.4.0-1131-oracle | Sep 13, 2024 | Jul 29, 2024 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Oct 13, 2025 | Jul 29, 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