Impact
The vulnerability arises from a kernel assembly macro that misparses when older versions of GNU assembler are used. The macro generates an invocation that several editions of the assembler scrub whitespace, collapsing two expected arguments into one and causing the macro to fail silently. As a result, the jump to the per‑CPU sequence is not emitted, and the kernel cannot properly reset the lowcore register during exception return after a CPU migration. The failure does not lead to direct code execution but can manifest as system instability or a potential denial‑of‑service when CPU migration occurs.
Affected Systems
All Linux kernels that contain the original MVIY_PERCPU() implementation and are built with binutils versions earlier than 2.39 are affected. This includes most distributions that ship the upstream kernel and compile it with older toolchains. Linux currently supports binutils 2.30; the issue was mitigated in the kernel by altering the macro to use comma‑separated arguments, which older assemblers can interpret correctly.
Risk and Exploitability
The CVSS score is 4.1, and the EPSS score is less than 1%. However, the attack surface remains local: an attacker must rebuild the kernel or supply a malformed build environment to trigger the defect. Because the failure only occurs during per‑CPU sequence handling, the exploitation probability is low, and the vulnerability is not listed in the CISA KEV catalog. The primary risk is the potential for kernel crashes or denial of service on systems that undergo CPU migration events.
OpenCVE Enrichment