| タイトル | LinuxのLinux Kernelにおける不特定の脆弱性 |
|---|---|
| 概要 | 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ビットが可視化されるようにしています。 |
| 想定される影響 | ・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 ・当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。 ・当該ソフトウェアが完全に停止する可能性があります。 |
| 対策 | リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 |
| 公表日 | 2026年5月27日0:00 |
| 登録日 | 2026年6月17日15:45 |
| 最終更新日 | 2026年6月17日15:45 |
| CVSS3.0 : 重要 | |
| スコア | 7.5 |
|---|---|
| ベクター | CVSS:3.0/AV:L/AC:H/PR:H/UI:N/S:C/C:H/I:H/A:H |
| Linux |
| Linux Kernel 2.6.24 以上 6.18.14 未満 |
| Linux Kernel 6.19 以上 6.19.4 未満 |
| No | 変更内容 | 変更日 |
|---|---|---|
| 1 | [2026年06月17日] 掲載 |
2026年6月17日15:45 |
| 概要 | 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 While x86 provides strong write ordering, the compiler may reorder writes Align with the "Guidance to Software for Invalidations" in the VT-d spec 1. Clear only the 'Present' (P) bit of the context entry first to Also, add a dma_wmb() to context_set_present() to ensure the entry |
|---|---|
| 公表日 | 2026年5月27日23:17 |
| 登録日 | 2026年5月28日4:11 |
| 最終更新日 | 2026年5月30日20:17 |