In the Linux kernel, the following vulnerability has been resolved:
x86/fpu: Ensure shadow stack is active before "getting" registers
The x86 shadow stack support has its own set of registers. Those registers are XSAVE-managed, but they are "supervisor state components" which means that userspace can not touch them with XSAVE/XRSTOR. It also means that they are not accessible from the existing ptrace ABI for XSAVE state. Thus, there is a new ptrace get/set interface for it.
The regset code that ptrace uses provides an ->active() handler in addition to the get/set ones. For shadow stack this ->active() handler verifies that shadow stack is enabled via the ARCH_SHSTK_SHSTK bit in the thread struct. The ->active() handler is checked from some call sites of the regset get/set handlers, but not the ptrace ones. This was not understood when shadow stack support was put in place.
As a result, both the set/get handlers can be called with XFEATURE_CET_USER in its init state, which would cause get_xsave_addr() to return NULL and trigger a WARN_ON(). The ssp_set() handler luckily has an ssp_active() check to avoid surprising the kernel with shadow stack behavior when the kernel is not ready for it (ARCH_SHSTK_SHSTK==0). That check just happened to avoid the warning.
But the ->get() side wasn't so lucky. It can be called with shadow stacks disabled, triggering the warning in practice, as reported by Christina Schimpe:
WARNING: CPU: 5 PID: 1773 at arch/x86/kernel/fpu/regset.c:198 ssp_get+0x89/0xa0 [...] Call Trace: <TASK> ? show_regs+0x6e/0x80 ? ssp_get+0x89/0xa0 ? __warn+0x91/0x150 ? ssp_get+0x89/0xa0 ? report_bug+0x19d/0x1b0 ? handle_bug+0x46/0x80 ? exc_invalid_op+0x1d/0x80 ? asm_exc_invalid_op+0x1f/0x30 ? __pfx_ssp_get+0x10/0x10 ? ssp_get+0x89/0xa0 ? ssp_get+0x52/0xa0 __regset_get+0xad/0xf0 copy_regset_to_user+0x52/0xc0 ptrace_regset+0x119/0x140 ptrace_request+0x13c/0x850 ? wait_task_inactive+0x142/0x1d0 ? do_syscall_64+0x6d/0x90 arch_ptrace+0x102/0x300 [...]
Ensure that shadow stacks are active in a thread before looking them up in the XSAVE buffer. Since ARCH_SHSTK_SHSTK and user_ssp[SHSTK_EN] are set at the same time, the active check ensures that there will be something to find in the XSAVE buffer.
[ dhansen: changelog/subject tweaks ]
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 |
|---|---|---|---|---|
| Debian | — | Upgrade linux | Jul 23, 2026 | Jul 23, 2026 |
| Redhat_linux | — | No solution exists | Jul 9, 2025 | Jan 19, 2025 |
| Suse | — | Upgrade kernel-default-optionalUpgrade dlm-kmp-64kbUpgrade dtb-amazonUpgrade dtb-allwinnerUpgrade dtb-armUpgrade gfs2-kmp-rtUpgrade kernel-azure-extraUpgrade dtb-apmUpgrade kernel-default-baseUpgrade kernel-sourceUpgrade kernel-source-azureUpgrade kernel-default-livepatch-develUpgrade kernel-rt-develUpgrade dtb-freescaleUpgrade kernel-default-extraUpgrade kernel-develUpgrade kernel-64kb-develUpgrade kernel-devel-azureUpgrade kernel-zfcpdumpUpgrade dtb-amlogicUpgrade dtb-lgUpgrade kernel-kvmsmall-develUpgrade dtb-appleUpgrade ocfs2-kmp-rtUpgrade dlm-kmp-azureUpgrade kselftests-kmp-64kbUpgrade kernel-kvmsmallUpgrade cluster-md-kmp-rtUpgrade kselftests-kmp-defaultUpgrade dtb-amdUpgrade kernel-debugUpgrade kernel-64kb-optionalUpgrade kernel-symsUpgrade gfs2-kmp-64kbUpgrade dtb-exynosUpgrade dtb-hisiliconUpgrade dtb-renesasUpgrade kernel-default-vdsoUpgrade ocfs2-kmp-defaultUpgrade reiserfs-kmp-defaultUpgrade cluster-md-kmp-azureUpgrade kernel-devel-rtUpgrade kernel-64kbUpgrade dtb-mediatekUpgrade ocfs2-kmp-azureUpgrade kernel-debug-develUpgrade kernel-default-develUpgrade reiserfs-kmp-rtUpgrade kernel-macrosUpgrade kernel-obs-qaUpgrade cluster-md-kmp-defaultUpgrade dlm-kmp-defaultUpgrade dtb-socionextUpgrade dtb-xilinxUpgrade dtb-nvidiaUpgrade dtb-marvellUpgrade kernel-azureUpgrade ocfs2-kmp-64kbUpgrade kernel-rt-extraUpgrade kernel-azure-develUpgrade dtb-alteraUpgrade gfs2-kmp-defaultUpgrade kselftests-kmp-azureUpgrade kernel-defaultUpgrade kernel-docsUpgrade kernel-rt-optionalUpgrade gfs2-kmp-azureUpgrade kernel-docs-htmlUpgrade kernel-debug-vdsoUpgrade kernel-rt_debug-develUpgrade kernel-obs-buildUpgrade kernel-rt-livepatch-develUpgrade kernel-source-rtUpgrade dtb-rockchipUpgrade kernel-syms-azureUpgrade dtb-qcomUpgrade dtb-broadcomUpgrade dtb-sprdUpgrade kernel-source-vanillaUpgrade kselftests-kmp-rtUpgrade kernel-syms-rtUpgrade kernel-default-base-rebuildUpgrade kernel-azure-vdsoUpgrade dtb-caviumUpgrade cluster-md-kmp-64kbUpgrade kernel-rt_debugUpgrade kernel-64kb-extraUpgrade reiserfs-kmp-64kbUpgrade dlm-kmp-rtUpgrade kernel-rt-vdsoUpgrade kernel-rtUpgrade reiserfs-kmp-azureUpgrade kernel-rt_debug-vdsoUpgrade kernel-kvmsmall-vdsoUpgrade kernel-default-livepatchUpgrade kernel-azure-optional | Feb 12, 2025 | Jan 19, 2025 |
| Ubuntu | — | Upgrade linux-image-6.11.0-1012-azureUpgrade linux-image-kvmUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-generic-hwe-24.04Upgrade linux-image-azure-lts-24.04Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-6.8.0-1026-oracleUpgrade linux-image-6.8.0-1016-azure-nvidiaUpgrade linux-image-raspi-realtimeUpgrade linux-image-6.11.0-1007-realtimeUpgrade linux-image-gcpUpgrade linux-image-azure-nvidiaUpgrade linux-image-virtualUpgrade linux-image-6.11.0-21-generic-64kUpgrade linux-image-6.8.0-1012-gkeopUpgrade linux-image-ibm-classicUpgrade linux-image-realtime-hwe-24.04Upgrade linux-image-6.8.1-1022-realtimeUpgrade linux-image-azureUpgrade linux-image-6.11.0-1013-oracle-64kUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-gkeUpgrade linux-image-6.8.0-1029-azureUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-oem-22.04bUpgrade linux-image-6.8.0-60-genericUpgrade linux-image-6.8.0-60-lowlatency-64kUpgrade linux-image-6.8.0-1030-gcpUpgrade linux-image-6.8.0-1028-nvidia-64kUpgrade linux-image-oem-24.04Upgrade linux-image-generic-64kUpgrade linux-image-6.11.0-1013-oracleUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-virtual-hwe-22.04Upgrade linux-image-aws-lts-24.04Upgrade linux-image-6.8.0-60-lowlatencyUpgrade linux-image-6.8.0-60-generic-64kUpgrade linux-image-6.8.0-1028-nvidia-lowlatencyUpgrade linux-image-ibmUpgrade linux-image-oem-24.04aUpgrade linux-image-lowlatency-64k-hwe-24.04Upgrade linux-image-nvidia-64kUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-oem-22.04cUpgrade linux-image-oracle-64kUpgrade linux-image-realtimeUpgrade linux-image-6.11.0-1010-raspiUpgrade linux-image-lowlatency-hwe-24.04Upgrade linux-image-genericUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-nvidiaUpgrade linux-image-6.8.0-1029-azure-fdeUpgrade linux-image-gkeopUpgrade linux-image-6.11.0-1011-lowlatencyUpgrade linux-image-oem-22.04dUpgrade linux-image-6.11.0-1011-awsUpgrade linux-image-oracleUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-oem-24.04bUpgrade linux-image-awsUpgrade linux-image-6.8.0-1028-nvidiaUpgrade linux-image-lowlatencyUpgrade linux-image-6.11.0-1017-oemUpgrade linux-image-generic-lpaeUpgrade linux-image-6.11.0-1011-gcpUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-gkeop-6.8Upgrade linux-image-raspiUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-6.8.0-2023-raspi-realtimeUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-6.11.0-1011-gcp-64kUpgrade linux-image-6.8.0-1028-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1025-gkeUpgrade linux-image-6.8.0-1029-awsUpgrade linux-image-6.11.0-21-genericUpgrade linux-image-6.11.0-1011-lowlatency-64kUpgrade linux-image-nvidia-6.8Upgrade linux-image-6.8.0-1028-raspiUpgrade linux-image-6.11.0-1012-azure-fdeUpgrade linux-image-azure-fdeUpgrade linux-image-gcp-64kUpgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-6.8.0-1030-gcp-64kUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-oem-22.04Upgrade linux-image-oracle-lts-24.04Upgrade linux-image-oem-22.04aUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-6.8.0-1026-oracle-64kUpgrade linux-image-6.8.0-1028-oemUpgrade linux-image-6.8.0-1026-ibmUpgrade linux-image-lowlatency-64k | Mar 28, 2025 | Jan 19, 2025 |
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