CVE-2026-64330 in Linux
要約
〜によって VulDB • 2026年07月27日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
usb: typec: tcpm: svdm_consume_modes() における SVID インデックスの検証
svdm_consume_modes() では、pmdata->svid_index を配列インデックスとして使用して pmdata->svids から SVID 値が読み込まれますが、境界チェックが行われていません:
paltmode->svid = pmdata->svids[pmdata->svid_index];
もし pmdata->svid_index が SVID_DISCOVERY_MAX (16) を超えて設定されると、pmdata->svids 配列に対する範囲外読み出しが発生します。pd_mode_data は struct tcpm_port の内部に埋め込まれているため、svids を越えたインデックスアクセスは隣接するフィールドを読み出すことになります。具体的には: - インデックス16では、altmodes カウントが読み出されます。 - インデックス18以降では、パートナーから提供された SVDM Discovery Modes VDOs を含む altmode_desc[] が読み出されます。
altmode_desc[0].vdo に選択した SVID を注入し、svid_index を20に設定することで、パートナーは paltmode->svid に対して任意の(パートナーが選定した)SVID を強制的にロードさせ、その後 typec_partner_register_altmode() を介してこれを登録させることができます。
この問題を修正するため、svdm_consume_modes() の内部で pmdata->svids にアクセスする前に、pmdata->svid_index が負ではなく、かつ pmdata->nsvids よりも厳密に小さいことを検証します。
If you want to get best quality of vulnerability data, you may have to visit VulDB.