In the Linux kernel, the following vulnerability has been resolved: s390/percpu: Fix MVIY_PERCPU() with older binutils Commit a737737cdb9c… (CVE-2026-89459)
A vulnerability in the Linux kernel's s390 architecture code involving the MVIY_PERCPU() macro was resolved. The issue caused assembler macro invocations to be misparsed by GNU assembler versions prior to binutils 2.39, leading to missing instructions and improper handling of per-CPU address registers after migration. The fix involved changing the macro invocation to use explicit commas, ensuring compatibility with older binutils versions still supported by Linux.
AI Analysis
Technical Summary
The Linux kernel's s390/percpu code used the MVIY_PERCPU() macro which stringified arguments already as C string literals, generating assembler macro invocations with whitespace-separated quoted arguments. GNU assembler versions before binutils 2.39 removed whitespace between quoted macro arguments during input scrubbing, causing the macro to be parsed as a single argument and emit warnings, resulting in the assembler skipping the mviy instruction. This omission caused the interrupted per-CPU sequence not to be marked in lowcore, preventing the exception return path from repairing the per-CPU address register after migration. The fix was to pass C string literals directly and separate assembler macro arguments with explicit commas, producing unambiguous invocations compatible with GNU as and LLVM assemblers. This resolves the issue for systems using binutils versions older than 2.39, which Linux still supports.
Potential Impact
The vulnerability caused the assembler to omit critical instructions in the s390 per-CPU code path, leading to the per-CPU address register not being properly repaired after migration. This could affect kernel stability or correctness on affected systems using older binutils versions. There is no indication of active exploitation or direct security compromise from the provided data.
Mitigation Recommendations
A fix is available in the Linux kernel source that changes the macro invocation syntax to be compatible with older binutils versions. Users should update their Linux kernel to a version including this fix. Since this is a source-level fix, recompilation with the patched kernel source is required. There is no indication of vendor advisories stating no action is required.
In the Linux kernel, the following vulnerability has been resolved: s390/percpu: Fix MVIY_PERCPU() with older binutils Commit a737737cdb9c… (CVE-2026-89459)
Description
A vulnerability in the Linux kernel's s390 architecture code involving the MVIY_PERCPU() macro was resolved. The issue caused assembler macro invocations to be misparsed by GNU assembler versions prior to binutils 2.39, leading to missing instructions and improper handling of per-CPU address registers after migration. The fix involved changing the macro invocation to use explicit commas, ensuring compatibility with older binutils versions still supported by Linux.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The Linux kernel's s390/percpu code used the MVIY_PERCPU() macro which stringified arguments already as C string literals, generating assembler macro invocations with whitespace-separated quoted arguments. GNU assembler versions before binutils 2.39 removed whitespace between quoted macro arguments during input scrubbing, causing the macro to be parsed as a single argument and emit warnings, resulting in the assembler skipping the mviy instruction. This omission caused the interrupted per-CPU sequence not to be marked in lowcore, preventing the exception return path from repairing the per-CPU address register after migration. The fix was to pass C string literals directly and separate assembler macro arguments with explicit commas, producing unambiguous invocations compatible with GNU as and LLVM assemblers. This resolves the issue for systems using binutils versions older than 2.39, which Linux still supports.
Potential Impact
The vulnerability caused the assembler to omit critical instructions in the s390 per-CPU code path, leading to the per-CPU address register not being properly repaired after migration. This could affect kernel stability or correctness on affected systems using older binutils versions. There is no indication of active exploitation or direct security compromise from the provided data.
Mitigation Recommendations
A fix is available in the Linux kernel source that changes the macro invocation syntax to be compatible with older binutils versions. Users should update their Linux kernel to a version including this fix. Since this is a source-level fix, recompilation with the patched kernel source is required. There is no indication of vendor advisories stating no action is required.
Technical Details
- Gcve Source
- db.gcve.eu
- Osv Id
- GHSA-mqmh-f84h-6j7h
- Osv Schema Version
- 1.4.0
- Aliases
- ["CVE-2026-89459"]
Threat ID: 6aa4a02155bf5e2cf5a86999
Added to database: 09/12/2026, 00:43:13 UTC
Last enriched: 09/12/2026, 01:15:41 UTC
Last updated: 09/12/2026, 01:15:41 UTC
Views: 2
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.