CVE-2026-90241 in Linux情報

要約

〜によって VulDB • 2026年09月17日

Linuxカーネルにおいて、以下の脆弱性が修正されました:

iommu/vt-d: プロブ失敗時にスケーラブルモードのコンテキストを解除する

intel_pasid_setup_sm_context()関数はpci_for_each_dma_alias()を使用してPCIデバイスのDMAエイリアスを走査し、各RID(Requester ID)に対してスケーラブルモードのコンテキストエントリを設定します。dma_alias_maskを持つデバイスでは、コールバックはデバイスの自身のRIDと各エイリアスビットごとに呼び出され、すべて同じpci_dev構造体を使用するため、device_pasid_table_setup()が複数のRIDで実行されます。

pci_for_each_dma_alias()は最初のコールバックエラーが発生した時点で停止します。そのため、走査の途中で失敗すると、すでに処理済みのRIDに対するコンテキストエントリが残ったままになり、それらがデバイスのPASIDテーブルを指し続ける状態になります。

このエラーパスにおいて、intel_iommu_probe_device()関数は現在、直接intel_pasid_free_table()にジャンプしており、これらはまずそのコンテキストエントリを解除せずにPASIDテーブルの解放を行います。その結果、IOMMUは存在する(Present)コンテキストエントリを走査しようとし、そのPASIDテーブルポインタが解放されたメモリ領域を参照してしまう可能性があります。

intel_iommu_release_device()関数では、すでにテーブルの解放前に解除処理が行われています。プロブ失敗時のパスにおいても同じ順序適用を行います。

device_pasid_table_teardown()関数は、プログラム化されなかったRIDに対しても安全に処理します:iommu_context_addr()はコンテキストテーブルが割り当てられていない場合にNULLを返し、既に非存在(non-present)のエントリのPresentビットをクリアすることは何もしない操作(no-op)です。したがって、失敗したエイリアスおよびまだ到達していない他のエイリアスの両方に対して巻き戻し処理は安全です。

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

責任者

Linux

予約する

2026年09月11日

モデレーション

承諾済み

エントリ

VDB-406785

EPSS

0.00200

アクティビティ

非常低い

ソース

Do you know our Splunk app?

Download it now for free!