LiveActive security incident?Get immediate response
CVE Record

CVE-2025-21632: x86/fpu: Ensure shadow stack is active before "getting" registers

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 ]

UnknownCVSS not scoredNot KEV-listedUpdated
Glexia's TakeAutomated analysislow

Security readout for executives and security teams

Plain-English summary

This Linux kernel issue lets a local ptrace register query hit an unexpected kernel warning when shadow stacks are disabled. The public record shows it has been fixed upstream, but does not provide CVSS, CWE, or confirmed exploitation. Treat it as a kernel stability and hardening issue, not a proven remote compromise.

Executive priority

Handle through normal kernel patch management unless local multi-user exposure, strict uptime requirements, or panic-on-warning configurations raise operational risk. There is no cited evidence of active exploitation or remote attack impact.

Technical view

The ptrace regset get path for x86 shadow stack state did not enforce the regset active check. Calling ssp_get when XFEATURE_CET_USER was in its init state could make get_xsave_addr() return NULL and trigger WARN_ON(). The fix checks shadow stack activity before reading the XSAVE-managed state.

Likely exposure

Exposure appears limited to Linux systems running affected x86 kernels with the shadow-stack ptrace interface present. The source bundle identifies Linux kernel versions including 6.6, 6.6.72, 6.12.10, and 6.13 as affected, but version boundaries are not fully clear from the provided data.

Exploitation context

No active exploitation is cited, and KEV status is false. The described trigger is local ptrace interaction with shadow stack register state, resulting in a kernel warning. The sources do not show remote exploitability, privilege escalation, or public weaponization.

Researcher notes

The key flaw is a missing active-state guard in the ptrace get path, unlike the set path which already checked ssp_active(). Evidence supports a WARN_ON stability issue when shadow stack state is absent from XSAVE. Impact beyond warning behavior is not established in the supplied sources.

Mitigation direction

  • Apply vendor-provided Linux kernel updates containing the referenced stable fixes.
  • Prioritize hosts where local users or containers can use ptrace-like debugging interfaces.
  • Check distribution advisories for exact fixed package versions.
  • Avoid inventing compensating controls beyond vendor guidance from the available sources.

Validation and detection

  • Inventory x86 Linux hosts and kernel package versions.
  • Map running kernels against distribution advisories for CVE-2025-21632.
  • Confirm the referenced stable commits are included in deployed kernels.
  • Review kernel logs for related ssp_get or WARN_ON traces.
Prepared
Confidence
medium
Sources
5

Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.

Potential ATT&CK relevance

Conservative CVE-to-ATT&CK context

These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.

ATT&CK lookup starting points

Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.

cve · low confidence lookup

CVE-2025-21632 mapping review

Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
Unknown
CVSS
Not scored
Known Exploited
No
Published
Official CVE source material

CNA and ADP enrichment extracted from CVE v5

These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.

0CVSS vectors
3Timeline events
0ADP providers
4Source links

Vulnerability timeline

Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.

  1. CVE reservedCVE Program

    The CVE ID was reserved by the assigning CNA.

  2. CVE publishedCVE Program

    The CVE record was published.

  3. CVE updatedCVE Program

    The CVE record metadata indicates this as the latest update time.

Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
LinuxLinux2fab02b25ae7cf5f714ab456b03d9a3fe5ae98c9, 2fab02b25ae7cf5f714ab456b03d9a3fe5ae98c9, 2fab02b25ae7cf5f714ab456b03d9a3fe5ae98c9unaffected
LinuxLinux6.6, 0, 6.6.72, 6.12.10, 6.13affected
Weakness

CWE details

No CWE listed

CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.