製品・ソフトウェアに関する情報
LinuxのLinux Kernelにおける不特定の脆弱性
Title LinuxのLinux Kernelにおける不特定の脆弱性
Summary

Linuxカーネルにおいて、以下の脆弱性が修正されました。x86/cpu: CR4の固定ビットマスクからX86_CR4_FREDを削除する修正では、FixesのコミットでFRED CR4ビットをCR4の固定ビットマスクに追加し、CR4の他の部分が変更されてもそのビットが設定されたままになるようにしました。これは本来問題のないアイデアです。しかし、起動時にFREDはまずBSPで初期化され、その後APで初期化されるため、例外を処理できない時間的な隙間が存在します。この問題は、特にSEV-{ES,SNP}やTDXゲストとして動作している場合に悪質になります。その短い時間の間に例外が発生すると、FRED MSRがまだ設定されていないためトリプルフォルトが発生します。詳細は下記リンクを参照してください。これを解決するため、リンク先のコミットではAPがオンラインになる前に一時的にCR4の固定を無効化する方法を採用しました。しかし、この方法は、攻撃者がカーネルのオンラインビット(RWメモリの1ビット)を変更し、CR4の固定を無効化してSM*Pを無効にするだけで、システムにより深刻な影響を与える可能性がある問題を含んでいます。したがって、FREDビットをCR4の固定マスクから除外し、一時的にCR4固定を無効化する必要をなくしました。もし誰かがCR4を操作してFREDを無効にしても、idt_invalidate()が最初の例外発生時にシステムがクラッシュすることを保証するため、セキュリティ上より安全な結果となります。

Possible impacts 当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 また、当該ソフトウェアが扱う情報について、書き換えは発生しません。 さらに、当該ソフトウェアが完全に停止する可能性があります。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 
Solution

リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。

Publication Date April 24, 2026, midnight
Registration Date April 30, 2026, 12:09 p.m.
Last Update April 30, 2026, 12:09 p.m.
CVSS3.0 : 警告
Score 5.5
Vector CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Affected System
Linux
Linux Kernel 6.13 以上 6.18.21 未満
Linux Kernel 6.19 以上 6.19.11 未満
Linux Kernel 6.9
Linux Kernel 6.9.1 以上 6.12.80 未満
Linux Kernel 7.0
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
Change Log
No Changed Details Date of change
1 [2026年04月30日]
  掲載
April 30, 2026, 12:09 p.m.

NVD Vulnerability Information
CVE-2026-31561
Summary

In the Linux kernel, the following vulnerability has been resolved:

x86/cpu: Remove X86_CR4_FRED from the CR4 pinned bits mask

Commit in Fixes added the FRED CR4 bit to the CR4 pinned bits mask so
that whenever something else modifies CR4, that bit remains set. Which
in itself is a perfectly fine idea.

However, there's an issue when during boot FRED is initialized: first on
the BSP and later on the APs. Thus, there's a window in time when
exceptions cannot be handled.

This becomes particularly nasty when running as SEV-{ES,SNP} or TDX
guests which, when they manage to trigger exceptions during that short
window described above, triple fault due to FRED MSRs not being set up
yet.

See Link tag below for a much more detailed explanation of the
situation.

So, as a result, the commit in that Link URL tried to address this
shortcoming by temporarily disabling CR4 pinning when an AP is not
online yet.

However, that is a problem in itself because in this case, an attack on
the kernel needs to only modify the online bit - a single bit in RW
memory - and then disable CR4 pinning and then disable SM*P, leading to
more and worse things to happen to the system.

So, instead, remove the FRED bit from the CR4 pinning mask, thus
obviating the need to temporarily disable CR4 pinning.

If someone manages to disable FRED when poking at CR4, then
idt_invalidate() would make sure the system would crash'n'burn on the
first exception triggered, which is a much better outcome security-wise.

Publication Date April 25, 2026, 12:16 a.m.
Registration Date April 25, 2026, 4:07 a.m.
Last Update April 28, 2026, 5:30 a.m.
Affected software configurations
Configuration1 or higher or less more than less than
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.9.1 6.12.80
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.13 6.18.21
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.19 6.19.11
cpe:2.3:o:linux:linux_kernel:6.9:-:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc6:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc7:*:*:*:*:*:*
Related information, measures and tools
Common Vulnerabilities List