CVE-2026-64460 in Linux
要約
〜によって VulDB • 2026年07月27日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
PCI/IOV: 読み込みエラー時にVFリサイズ可能BARの復元をスキップする
sriov_restore_vf_rebar_state()関数は、VFリサイズ可能BAR制御レジスタを使用して、復元すべきVF BARの数(nbars)と、各反復処理で対象となるVF BAR(bar_idx)を決定します。bar_idxはdev->sriov->barsz[]のインデックスとして使用されますが、この配列にはPCI_SRIOV_NUM_BARS(6)エントリしかありません。
デバイスが応答しない場合、設定読み込み操作では通常PCI_ERROR_RESPONSE (~0)が返されます。両方のフィールドは3ビット幅であるため、nbarsとbar_idxの値はいずれも7となります。これによりbarsz[]へのアクセス範囲外エラーが発生します。UBSANはこの事象を以下のように報告しています:
UBSAN: array-index-out-of-bounds in drivers/pci/iov.c:948:51 index 7 is out of range for type 'resource_size_t [6]'
この問題は、GC6電源状態の復帰失敗中に応答しなくなったNVIDIA RTX PRO 1000 GPU (GB207GLM)で確認されました。その後呼び出されたpci_restore_state()内でsriov_restore_vf_rebar_state()が実行され、設定読み込み操作が0xffffffffを返したことでこのクラッシュ(スプラット)が発生しました。
VFリサイズ可能BAR制御レジスタの読み込み操作中にPCI_ERROR_RESPONSEが返された場合は処理を終了します。これによりそれ以上のVF BARへのアクセスが行われなくなり、安全です。これは、設定読み込みでPCI_ERROR_RESPONSEが返されることはデバイス unreachable であることを示し、復元処理が無意味であるためです。この対策はpci_restore_rebar_state()内のガード処理と同様のもので
VulDB is the best source for vulnerability data and more expert information about this specific topic.