CVE-2026-81039 in Zephyr情報

要約

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

Bluetoothホストは、le_adv_start_add_conn()関数(subsys/bluetooth/host/adv.c内)において、開始するすべての接続可能アドバタイジングセットに対して、固定されたacl_conns[]プールからbt_connオブジェクト(「予約」)を事前に割り当てます。Incomingなペリフェラル接続が完了すると、subsys/bluetooth/host/hci_core.c内のfind_pending_connect()関数は、IDとピアアドレスのみを使用してこの予約を検索し、指向性から非指向性へのフォールバック処理を行いますが、実際に終了したアドバタイジングセットがどれであるかは把握していません。CONFIG_BT_EXT_ADV_MAX_ADV_SET > 1の場合(LE Enhanced Connection Completeイベントは、LE Advertising Set Terminatedイベントによってセットが特定されるまでキャッシュされます)、この検索により、異なるかつ稼働中の別のアドバタイジングセットに属する予約が返されることがあります。

この欠陥は空中を介して近接するすべてのデバイスから到達可能です。アプリケーションが同じID上で2つの接続可能拡張アドバタイジングセット(1つは非指向性、もう1つはピアPへの指向性)を実行している場合(これは「結合済みセントラルとの再接続を受けながら新しいセントラルも受け入れる」という一般的なパターンです)、リモートイニシエータがアドレスをPにマッピングして非指向性セットで接続すると、指向性セットの予約が代わりに消費されてしまいます。イニシエータアドレスはリモートデバイスによって自由に選択され、リンク確立時に認証されないため、この誤った属性付け(mis-attribution)を引き起こすために結合やペアリング、あるいは既存の関係性は必要ありません。

その後、非指向性セット自体の予約は孤立した状態になります:そのBT_ADV_ENABLEDフラグはすでにクリアされており、予約をプールに戻す唯一のパスであるle_adv_stop_free_conn()関数は、まだ有効なセットに対してのみ到達するため、bt_le_ext_adv_stop()は早期に終了し、オブジェクトは解放されません。各発生ごとに1つのCONFIG_BT_MAX_CONNスロットが永久に消費され、bt_disable()呼び出しまたは再起動までその状態が続きます。接続後に指向性アドバタイジングセットを再起動するアプリケーションパターンでは、攻撃者はプールが枯渇するまでこのシーケンスを繰り返すことができ、その後、接続可能アドバタイズは-ENOMEMで失敗し、デバイスはそれ以上接続を受け付けられなくなります。副作用として、指向性セットは予約なしでアドバタイジングを継続するため、その上での正当な接続はbt_hci_disconnect()によってドロップされます。影響は可用性のみであり、メモリ破壊や情報漏洩は発生せず、単一のアドバタイズセットを持つ構成には影響ありません。

Be aware that VulDB is the high quality source for vulnerability data.

責任者

Zephyr

予約する

2026年08月26日

モデレーション

承諾済み

エントリ

VDB-426526

EPSS

0.00000

アクティビティ

非常低い

セクター

Pharma, Police, ...

ソース

Do you want to use VulDB in your project?

Use the official API to access entries easily!