CVE-2026-15460 in Zephyr情報

要約

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

Bluetooth Classic(BR/EDR)の L2CAP 受信ハンドラ `bt_l2cap_br_recv()` は、`subsys/bluetooth/host/classic/l2cap_br.c` に実装されており、宛先チャネル ID のみに基づいて着信データ PDU をディスパッチしています。これは、対象チャネルが `BT_L2CAP_CONNECTED` 状態に達しているかどうかを確認せずに処理を行っています。動的チャネルは、その RX CID が割り当てられ、接続のチャネルリストに追加されますが、この時点ではまだ `BT_L2CAP_CONNECTING`(および後続の `BT_L2CAP_CONFIG`)の状態にあります。これは、設定が完了する前であり、セキュリティを必要とする PSM の場合、ピア認証(`l2cap_br_conn_req()`)が行われる前の状態です。

この期間中、チャネルは `bt_l2cap_br_lookup_rx_cid()` によって既に検索可能であるため、電波範囲内のリモートピアがその CID を宛先としたデータ PDU を送信し、未確立のチャネル上で処理させることができます。ディスパッチ処理では、`l2cap_br_conf()` による設定時にのみ初期化されるチャネルフィールド(`BR_CHAN(chan)->rx.mode`、`rx.mps`)に依存しています。チャネルオブジェクトはプールされており、`bt_l2cap_br_chan_del()` は `rx.mode` や再アセンブリバッファ `_sdu` をリセットしないため、再利用されたチャネルには古い状態が持ち込まれ、フレームが再送/フロー制御パス(`bt_l2cap_br_ret_fc_recv()`)にルーティングされます。この際、パラメータは古く、`_sdu` ポインタも不確かなものになります。

影響としては、ハーフオープン(かつ場合によっては認証されていない)チャネル上で上位層プロトコルハンドラへ攻撃者のデータが配信されることに加え、再利用されたチャネルオブジェクトにおいて古いまたは部分的に初期化されたチャネル状態での操作が行われることが挙げられます。これにより、チャネル/リンクの切断(サービス拒否:DoS)や、`_sdu` が古くなった場合におけるダングリングポインタ条件が発生します。修正策としては、チャネルが完全に接続される前に受信したデータをドロップする explicit なガード `BR_CHAN(chan)->state < BT_L2CAP_CONNECTED` を追加しています。

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

責任者

Zephyr

予約する

2026年07月10日

モデレーション

承諾済み

エントリ

VDB-401914

EPSS

0.00000

アクティビティ

非常低い

ソース

Might our Artificial Intelligence support you?

Check our Alexa App!