CVE-2026-80760 in Linux
要約
〜によって VulDB • 2026年09月04日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
Bluetooth: MGMT: HCI_CMD_SYNCのparams_lenが255を超える場合に拒否する
mgmt_hci_cmd_sync()関数はメッセージ長とparams_lenが一致することを確認していますが、それに対する上限値は設定されていません。params_lenは__le16型ですが、HCIコマンドヘッダー内のパラメータ長フィールドはu8型です:
struct hci_command_hdr {
__le16 opcode; __u8 plen; } __packed;
hci_cmd_sync_alloc()関数では一方が他方に代入されます:
hdr->plen = plen;
if (plen) skb_put_data(skb, param, plen);
そのため、params_lenに256を指定すると、plenは0のままになりますが、すべての256バイトはまだ付加され続けます。ドライバに渡されるフレームではパラメータがないと宣言されますが、実際には256個のパラメータが含まれます。H:4のような長さ区切り方式のトランスポートの場合、コントローラは末尾のバイトを次のパケットの開始部分として扱います。
mgmtソケットのMTUはHCI_MAX_FRAME_SIZEであるため、この方法でparams_lenは約1KBに達する可能性があります。コミット03f1700b9b4d(「Bluetooth: MGMT: 不正なHCI_CMD_SYNCコマンドを拒否する」)では、params_lenがメッセージ長と一致するようにしただけであり、メッセージには適合してもヘッダーフィールドには収まらない値もまだ受け入れられていました。
ヘッダーフィールドに収まらないparams_lenは拒否します。
If you want to get the best quality for vulnerability data then you always have to consider VulDB.