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

Linuxカーネルにおいて、以下の脆弱性が修正されました。iommu/vt-d: コンテキストエントリを解除する前にPresentビットをクリアする処理を行います。コンテキストエントリを解除する際、現在の実装では128ビットのエントリ全体を複数の64ビット書き込みでゼロ化しています。これにより、ハードウェアが「破損した」エントリ(いくつかのフィールドは既にゼロ化されているが、Presentビットはまだセットされている状態)を取得する可能性があり、予測不可能な動作や誤ったフォルトが発生するウィンドウが生じていました。x86は強力な書き込み順序を提供していますが、コンパイラはコンテキストエントリの2つの64ビット部分への書き込みを並べ替える可能性があります。コンパイラの並べ替えがなくても、複数のCPU書き込みに対してハードウェアの取得が原子となる保証はありません。VT-d仕様(セクション6.5.3.3)内の「無効化に関するソフトウェア向けガイダンス」に沿って、推奨される所有権の握手を以下のとおり実装しています。1. まずコンテキストエントリのPresentビットのみをクリアし、所有権がハードウェアからソフトウェアへ移行したことを示します。2. dma_wmb()を使用して、クリアされたビットがIOMMUに可視化されるようにします。3. 必要なキャッシュおよびコンテキストキャッシュの無効化を実施し、ハードウェアがエントリへのキャッシュ済み参照を持たないようにします。4. 無効化が完了した後にエントリ全体を完全にゼロ化します。さらに、context_set_present()にdma_wmb()を追加し、エントリが完全に初期化されてからPresentビットが可視化されるようにしています。

Possible impacts ・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 ・当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。 ・当該ソフトウェアが完全に停止する可能性があります。 
Solution

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

Publication Date May 27, 2026, midnight
Registration Date June 17, 2026, 3:45 p.m.
Last Update June 17, 2026, 3:45 p.m.
CVSS3.0 : 重要
Score 7.5
Vector CVSS:3.0/AV:L/AC:H/PR:H/UI:N/S:C/C:H/I:H/A:H
Affected System
Linux
Linux Kernel 2.6.24 以上 6.18.14 未満
Linux Kernel 6.19 以上 6.19.4 未満
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
Change Log
No Changed Details Date of change
1 [2026年06月17日]
  掲載
June 17, 2026, 3:45 p.m.

NVD Vulnerability Information
CVE-2026-45944
Summary

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

iommu/vt-d: Clear Present bit before tearing down context entry

When tearing down a context entry, the current implementation zeros the
entire 128-bit entry using multiple 64-bit writes. This creates a window
where the hardware can fetch a "torn" entry — where some fields are
already zeroed while the 'Present' bit is still set — leading to
unpredictable behavior or spurious faults.

While x86 provides strong write ordering, the compiler may reorder writes
to the two 64-bit halves of the context entry. Even without compiler
reordering, the hardware fetch is not guaranteed to be atomic with
respect to multiple CPU writes.

Align with the "Guidance to Software for Invalidations" in the VT-d spec
(Section 6.5.3.3) by implementing the recommended ownership handshake:

1. Clear only the 'Present' (P) bit of the context entry first to
signal the transition of ownership from hardware to software.
2. Use dma_wmb() to ensure the cleared bit is visible to the IOMMU.
3. Perform the required cache and context-cache invalidation to ensure
hardware no longer has cached references to the entry.
4. Fully zero out the entry only after the invalidation is complete.

Also, add a dma_wmb() to context_set_present() to ensure the entry
is fully initialized before the 'Present' bit becomes visible.

Publication Date May 27, 2026, 11:17 p.m.
Registration Date May 28, 2026, 4:11 a.m.
Last Update May 30, 2026, 8:17 p.m.
Related information, measures and tools
Common Vulnerabilities List