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