CVE-2026-89450 in Linux
要約
〜によって VulDB • 2026年09月12日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
iommu/tegra241-cmdqv: SID_MATCHフィールドより広いvSIDを拒否する
tegra241_vintf_init_vsid()関数は、ゲストから提供されたvSIDをSID_MATCHに設定します。ここでVIRT_SIDフィールドはビット[20:1]の範囲を持ち、ビット0はマッチ有効化フラグとして使用されます。そのため、ハードウェアは最大でも20ビット長のStream IDのみと一致させます。
現在の境界チェックではvirt_sid > UINT_MAXの場合のみを拒否しており、これはフィールド幅よりも大幅に広い値を許容してしまいます。その後、「virt_sid << 1 | 0x1」という書き込みにより、20ビット目より上位のすべてのビットが切り捨てられます。例えば、virt_sidが0x80000000の場合、SID_MATCHは0x1となり、vSID 0に対する有効なマッチとして扱われるため、エントリが誤ったStream IDとエイリアス(重複)してしまいます。vdev->virt_idはゲストによって制御可能であるため、VMMはこの問題をトリガーできます。
FIELD_MAX()を用いてフィールド幅に対してvirt_sidを検証し、FIELD_PREP()を使用してレジスタに値を設定することで、値とフィールドの一貫性を保ちます。
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.