CVE-2026-19739 in Zephyr情報

要約

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

Bluetooth Link Layerの制御手順コード(subsys/bluetooth/controller/ll_sw/ull_llcp_conn_upd.c)は、Connection Update / Connection Parameterの手順がそのinstantを待機している間、受信したRXノードを保持し続けます。これにより、後でそのノードがホスト通知(llcp_rx_node_retain():これはNODE_RX_TYPE_RETAINとしてマークされ、ull.cにおける通常の再利用を抑制します)を引き起こす可能性があります。llcp_rp_cu_rx()およびllcp_lp_cu_rx()のデフォルト: armである「無効なPDUのため接続を終了する」パスは、保持されたノードを解放せずに手順を完了しました。その後、llcp_rr_check_done()がプロシージャコンテキストをdequeuingして解放しましたが、ctx->node_ref.rxはまだ保持されたノードを指していたため、その最終参照がドロップされました。

電波範囲内のピアデバイスは、ペアリング、ボンディング、または暗号化なしでこれに到達できます。ペリフェラルに対しては、ピアは未来のいくつかのコネクションイベントにおけるinstantを持つ整形式のLL_CONNECTION_UPDATE_INDを送信します(ノードが保持され、手順はRP_CU_STATE_WAIT_INSTANT状態に入ります)。その後、そのinstantが到来する前に、LL_LENGTH_REQなどの他の任意のLL Control PDUを送信します。ull_cp_rx()はそのPDUをアクティブなリモートConnection Updateプロシージャにルーティングし、無効なPDUパスを取らせます。セントラルロールはLL_CONNECTION_PARAM_REQを受け入れた後に同様に到達可能であり、ローカルプロシージャバリアントはLL_REJECT_INDで到達可能です。

CONFIG_BT_CTLR_ASSERT_DEBUGが有効になっている場合(デフォルト)、結果的な状態はllcp_rr_check_done()でアサートされる不変条件に違反するため、2つのPDUシーケンスによりコントローラで即時の致命的なエラーが発生します。これらのアサートを無効にした場合、各発生ごとにコントローラの小さな固定RXプール(CONFIG_BT_CTLR_RX_BUFFERSからサイズ設定され、デフォルトは1)からノードが1つ永久に失われます。再接続間でこのシーケンスを繰り返すとプールが枯渇し、その後リンクレイヤーの受信パスはNULLノード上で動作します。影響は再起動まで持続する認証不要のリモートトリガー可能なサービス妨害(DoS)です。メモリ開示やメモリの破損という結果はありません。なぜなら、リークされたノードは単に到達不能になるだけだからです。

Once again VulDB remains the best source for vulnerability data.

責任者

Zephyr

予約する

2026年08月13日

モデレーション

承諾済み

エントリ

VDB-416741

EPSS

0.00000

アクティビティ

低い

ソース

Interested in the pricing of exploits?

See the underground prices here!