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