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 kernel-rt-debug-develUpgrade kernel-64k-debug-modulesUpgrade kernel-rt-modulesUpgrade kernel-docUpgrade kernel-modules-extraUpgrade kernel-uki-virtUpgrade kernel-zfcpdump-modulesUpgrade kernel-zfcpdump-coreUpgrade kernel-develUpgrade kernel-zfcpdump-modules-coreUpgrade rvUpgrade kernel-64k-debugUpgrade kernel-rt-debug-modulesUpgrade kernel-rt-develUpgrade kernel-zfcpdump-devel-matchedUpgrade kernel-64k-debug-modules-coreUpgrade kernel-rt-debugUpgrade kernel-devel-matchedUpgrade kernel-64k-develUpgrade kernel-rt-kvmUpgrade kernel-64k-debug-develUpgrade perfUpgrade kernel-toolsUpgrade kernel-64k-modules-extraUpgrade kernel-64k-devel-matchedUpgrade kernel-rtUpgrade libperfUpgrade kernel-64k-debug-devel-matchedUpgrade kernel-rt-debug-modules-coreUpgrade kernel-coreUpgrade kernel-debug-coreUpgrade kernel-rt-debug-modules-extraUpgrade kernel-zfcpdumpUpgrade kernel-rt-modules-coreUpgrade kernel-debug-modules-extraUpgrade kernel-modulesUpgrade kernel-rt-debug-kvmUpgrade kernel-64k-debug-modules-extraUpgrade bpftoolUpgrade kernel-debug-modulesUpgrade kernel-zfcpdump-develUpgrade python3-perfUpgrade kernel-cross-headersUpgrade kernel-64k-modules-coreUpgrade kernel-64k-coreUpgrade kernel-debug-develUpgrade kernel-modules-coreUpgrade kernel-rt-debug-coreUpgrade kernel-rt-coreUpgrade kernel-abi-stablelistsUpgrade rtlaUpgrade kernel-debug-modules-coreUpgrade kernel-rt-modules-extraUpgrade kernelUpgrade kernel-debug-devel-matchedUpgrade kernel-64k-debug-coreUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-debugUpgrade kernel-headersUpgrade kernel-64kUpgrade kernel-tools-libs-develUpgrade kernel-tools-libsUpgrade kernel-debug-uki-virtUpgrade kernel-64k-modules | Sep 26, 2024 | Jul 29, 2024 |
| Amazon Linux Ami 2 | — | Upgrade kernel-livepatch-5.10.223-211.872Upgrade kernelUpgrade kernel-debuginfoUpgrade perfUpgrade bpftoolUpgrade perf-debuginfoUpgrade kernel-develUpgrade kernel-tools-debuginfoUpgrade kernel-tools-develUpgrade kernel-debuginfo-common-aarch64Upgrade python-perf-debuginfoUpgrade python-perfUpgrade kernel-headersUpgrade kernel-toolsUpgrade bpftool-debuginfoUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-livepatch-5.15.162-107.160 | Aug 22, 2024 | Jul 29, 2024 |
| Amazon_linux_2023 | — | Upgrade kernel-libbpf-develUpgrade python3-perfUpgrade kernelUpgrade kernel-debuginfo-common-x86_64Upgrade bpftoolUpgrade python3-perf-debuginfoUpgrade kernel-tools-develUpgrade kernel-modules-extra-commonUpgrade kernel-libbpf-staticUpgrade perf-debuginfoUpgrade perfUpgrade kernel-libbpfUpgrade kernel-headersUpgrade bpftool-debuginfoUpgrade kernel-develUpgrade kernel-toolsUpgrade kernel-modules-extraUpgrade kernel-tools-debuginfoUpgrade kernel-debuginfoUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-livepatch-6.1.97-104.177 | 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-abi-stablelistsUpgrade python3-perfUpgrade kernel-tools-libsUpgrade kernelUpgrade kernel-tools | Nov 11, 2024 | Jul 29, 2024 |
| Huawei Euleros 2_0_sp11 | — | Upgrade bpftoolUpgrade python3-perfUpgrade kernelUpgrade kernel-toolsUpgrade kernel-abi-stablelistsUpgrade kernel-tools-libs | Oct 9, 2024 | Jul 29, 2024 |
| Huawei Euleros 2_0_sp12 | — | Upgrade bpftoolUpgrade kernel-abi-stablelistsUpgrade kernel-tools-libsUpgrade kernelUpgrade python3-perfUpgrade kernel-tools | Nov 5, 2024 | Jul 29, 2024 |
| Huawei Euleros 2_0_sp9 | — | Upgrade kernel-toolsUpgrade python3-perfUpgrade kernelUpgrade kernel-tools-libs | Nov 11, 2024 | Jul 29, 2024 |
| Oracle_linux | — | Upgrade kernelUpgrade kernel-uek | Oct 16, 2024 | Jul 29, 2024 |
| Redhat_linux | — | Upgrade kernelNo solution existsUpgrade kernel-rt | Sep 25, 2024 | Jul 29, 2024 |
| Rocky_linux | — | Upgrade kernel-debug-coreUpgrade kernel-debuginfoUpgrade kernel-debugUpgrade kernel-debug-modules-extraUpgrade kernel-debug-uki-virtUpgrade kernel-rtUpgrade kernel-tools-debuginfoUpgrade bpftoolUpgrade bpftool-debuginfoUpgrade kernel-rt-develUpgrade kernel-rt-kvmUpgrade kernel-rt-debug-modules-coreUpgrade python3-perf-debuginfoUpgrade kernel-uki-virtUpgrade kernel-rt-debug-coreUpgrade kernel-tools-libsUpgrade kernel-zfcpdump-develUpgrade kernel-zfcpdump-modulesUpgrade kernel-rt-debuginfo-common-x86_64Upgrade kernel-rt-modulesUpgrade kernel-debug-modules-coreUpgrade kernel-debug-develUpgrade kernel-debug-modulesUpgrade kernel-rt-debug-modulesUpgrade kernel-zfcpdump-devel-matchedUpgrade kernel-rt-debug-debuginfoUpgrade kernel-rt-debug-develUpgrade kernel-rt-debuginfoUpgrade kernel-modules-extraUpgrade kernel-rt-debug-kvmUpgrade kernel-rt-modules-coreUpgrade kernel-coreUpgrade kernel-rt-debugUpgrade rvUpgrade kernel-zfcpdumpUpgrade rtlaUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-debug-debuginfoUpgrade kernel-modulesUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-toolsUpgrade libperf-debuginfoUpgrade perf-debuginfoUpgrade kernel-zfcpdump-coreUpgrade kernel-zfcpdump-debuginfoUpgrade libperfUpgrade kernel-rt-coreUpgrade perfUpgrade kernel-rt-modules-extraUpgrade kernel-headersUpgrade kernel-devel-matchedUpgrade kernel-cross-headersUpgrade kernelUpgrade kernel-debug-devel-matchedUpgrade kernel-tools-libs-develUpgrade kernel-modules-coreUpgrade kernel-zfcpdump-modules-coreUpgrade python3-perfUpgrade kernel-rt-debug-modules-extraUpgrade kernel-devel | Sep 17, 2024 | Jul 29, 2024 |
| Suse | — | Upgrade kernel-azure-baseUpgrade kernel-default-base-rebuildUpgrade kernel-default-livepatchUpgrade kernel-source-rtUpgrade ocfs2-kmp-defaultUpgrade kernel-rt-extraUpgrade kernel-default-vdsoUpgrade kernel-rt-vdsoUpgrade kernel-source-vanillaUpgrade dlm-kmp-64kbUpgrade kernel-rt_debugUpgrade dtb-sprdUpgrade kernel-default-livepatch-develUpgrade kernel-rt_debug-develUpgrade kernel-azure-optionalUpgrade ocfs2-kmp-64kbUpgrade dtb-marvellUpgrade reiserfs-kmp-64kbUpgrade dtb-allwinnerUpgrade kernel-rt_debug-livepatch-develUpgrade kernel-docs-htmlUpgrade kernel-obs-buildUpgrade kernel-kvmsmall-vdsoUpgrade dlm-kmp-rtUpgrade dtb-socionextUpgrade dtb-rockchipUpgrade cluster-md-kmp-64kbUpgrade dlm-kmp-defaultUpgrade kernel-default-baseUpgrade dtb-broadcomUpgrade kernel-64kb-extraUpgrade kselftests-kmp-rtUpgrade dtb-nvidiaUpgrade gfs2-kmp-defaultUpgrade dtb-caviumUpgrade kernel-debug-vdsoUpgrade gfs2-kmp-azureUpgrade kernel-azure-vdsoUpgrade kernel-defaultUpgrade kernel-default-manUpgrade kselftests-kmp-azureUpgrade reiserfs-kmp-rtUpgrade kernel-azureUpgrade kernel-rt-optionalUpgrade dtb-qcomUpgrade kernel-azure-develUpgrade kernel-rtUpgrade dtb-alteraUpgrade dtb-appleUpgrade kernel-docsUpgrade kernel-devel-azureUpgrade kernel-default-optionalUpgrade kernel-default-develUpgrade dtb-hisiliconUpgrade dtb-amazonUpgrade kernel-devel-rtUpgrade reiserfs-kmp-azureUpgrade kernel-syms-azureUpgrade kernel-debugUpgrade cluster-md-kmp-defaultUpgrade ocfs2-kmp-azureUpgrade kernel-zfcpdumpUpgrade kernel-64kb-livepatch-develUpgrade kernel-kvmsmallUpgrade kernel-debug-develUpgrade dtb-amdUpgrade dlm-kmp-azureUpgrade cluster-md-kmp-rtUpgrade kernel-syms-rtUpgrade kernel-kvmsmall-develUpgrade kernel-source-azureUpgrade kernel-debug-livepatch-develUpgrade kernel-rt-develUpgrade ocfs2-kmp-rtUpgrade dtb-lgUpgrade reiserfs-kmp-defaultUpgrade kernel-sourceUpgrade kernel-default-extraUpgrade kernel-kvmsmall-livepatch-develUpgrade gfs2-kmp-64kbUpgrade dtb-renesasUpgrade dtb-armUpgrade dtb-apmUpgrade kernel-macrosUpgrade kernel-azure-extraUpgrade kselftests-kmp-defaultUpgrade dtb-mediatekUpgrade cluster-md-kmp-azureUpgrade kernel-64kb-develUpgrade kernel-64kbUpgrade kernel-rt_debug-vdsoUpgrade kernel-develUpgrade dtb-xilinxUpgrade dtb-freescaleUpgrade kernel-rt-livepatch-develUpgrade kernel-obs-qaUpgrade kernel-64kb-optionalUpgrade gfs2-kmp-rtUpgrade dtb-amlogicUpgrade dtb-exynosUpgrade kselftests-kmp-64kbUpgrade kernel-rt-livepatchUpgrade kernel-azure-livepatch-develUpgrade kernel-syms | Aug 14, 2024 | Jul 29, 2024 |
| Ubuntu | — | Upgrade linux-image-gkeUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-lowlatency-hwe-18.04Upgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-oem-20.04dUpgrade linux-image-raspi2Upgrade linux-image-6.8.0-1017-nvidia-lowlatencyUpgrade linux-image-5.15.0-1062-raspiUpgrade linux-image-oem-24.04Upgrade linux-image-gcp-lts-22.04Upgrade linux-image-5.4.0-195-lowlatencyUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-6.8.0-1015-oracleUpgrade linux-image-5.4.0-1137-azureUpgrade linux-image-5.4.0-1120-kvmUpgrade linux-image-6.8.0-1014-ibmUpgrade linux-image-6.8.0-48-genericUpgrade linux-image-kvmUpgrade linux-image-intel-iotgUpgrade linux-image-virtual-hwe-18.04Upgrade linux-image-oracle-lts-22.04Upgrade linux-image-raspi2-hwe-18.04Upgrade linux-image-5.15.0-1068-gcpUpgrade linux-image-gcpUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-lowlatency-64k-hwe-24.04Upgrade linux-image-bluefieldUpgrade linux-image-oem-24.04aUpgrade linux-image-6.8.0-1017-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1017-azure-fdeUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-gkeop-5.15Upgrade linux-image-raspi-nolpaeUpgrade linux-image-5.4.0-195-genericUpgrade linux-image-6.8.0-1016-oemUpgrade linux-image-oracle-lts-20.04Upgrade linux-image-virtualUpgrade linux-image-5.15.0-121-genericUpgrade linux-image-oemUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-6.8.0-1013-gkeUpgrade linux-image-oem-osp1Upgrade linux-image-raspi-hwe-18.04Upgrade linux-image-5.15.0-1067-oracleUpgrade linux-image-5.4.0-1132-awsUpgrade linux-image-6.8.0-1015-oracle-64kUpgrade linux-image-5.15.0-1066-gkeUpgrade linux-image-6.8.0-1016-gcpUpgrade linux-image-5.15.0-1052-gkeopUpgrade linux-image-gcp-lts-20.04Upgrade linux-image-5.4.0-195-generic-lpaeUpgrade linux-image-azure-lts-20.04Upgrade linux-image-virtual-hwe-24.04Upgrade linux-image-oracleUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-oem-20.04Upgrade linux-image-oem-22.04dUpgrade linux-image-awsUpgrade linux-image-6.8.0-1018-awsUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-5.4.0-1136-gcpUpgrade linux-image-5.15.0-121-generic-lpaeUpgrade linux-image-azure-cvmUpgrade linux-image-5.15.0-1035-xilinx-zynqmpUpgrade linux-image-5.15.0-1064-nvidiaUpgrade linux-image-6.8.0-48-lowlatency-64kUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-lowlatency-64kUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-nvidia-6.8Upgrade linux-image-oem-22.04aUpgrade linux-image-5.15.0-1069-awsUpgrade linux-image-6.8.0-1016-azureUpgrade linux-image-aws-lts-20.04Upgrade linux-image-virtual-hwe-22.04Upgrade linux-image-intelUpgrade linux-image-lowlatency-hwe-24.04Upgrade linux-image-oem-20.04bUpgrade linux-image-5.4.0-1131-oracleUpgrade linux-image-raspiUpgrade linux-image-generic-lpaeUpgrade linux-image-6.8.0-1016-azure-fdeUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-generic-hwe-18.04Upgrade linux-image-snapdragon-hwe-18.04Upgrade linux-image-5.15.0-1072-azure-fdeUpgrade linux-image-5.15.0-121-lowlatencyUpgrade linux-image-6.8.0-48-lowlatencyUpgrade linux-image-aws-lts-22.04Upgrade linux-image-oracle-64kUpgrade linux-image-nvidia-64kUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-5.15.0-1072-azureUpgrade linux-image-generic-64kUpgrade linux-image-gke-5.15Upgrade linux-image-gkeop-5.4Upgrade linux-image-ibmUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-5.15.0-121-lowlatency-64kUpgrade linux-image-5.15.0-121-generic-64kUpgrade linux-image-5.4.0-1079-ibmUpgrade linux-image-gkeopUpgrade linux-image-azure-lts-22.04Upgrade linux-image-6.8.0-1017-azureUpgrade linux-image-5.15.0-1064-intel-iotgUpgrade linux-image-5.15.0-1064-nvidia-lowlatencyUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-ibm-lts-20.04Upgrade linux-image-oem-22.04bUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-5.15.0-1066-kvmUpgrade linux-image-5.4.0-1092-bluefieldUpgrade linux-image-6.8.0-1002-gkeopUpgrade linux-image-oem-22.04Upgrade linux-image-azureUpgrade linux-image-oem-22.04cUpgrade linux-image-6.8.0-1017-nvidia-64kUpgrade linux-image-azure-fde-lts-22.04Upgrade linux-image-6.8.0-1014-raspiUpgrade linux-image-5.4.0-1051-xilinx-zynqmpUpgrade linux-image-nvidiaUpgrade linux-image-ibm-classicUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-5.4.0-1043-iotUpgrade linux-image-5.15.0-1062-ibmUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-5.4.0-1116-raspiUpgrade linux-image-gkeop-6.8Upgrade linux-image-lowlatencyUpgrade linux-image-oem-20.04cUpgrade linux-image-6.8.0-1017-nvidiaUpgrade linux-image-6.8.0-1017-gcpUpgrade linux-image-6.8.0-48-generic-64kUpgrade linux-image-genericUpgrade linux-image-5.4.0-1099-gkeopUpgrade linux-image-azure-fde | 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