CVE-2026-19937 in Zephyr情報

要約

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

Bluetooth MeshのAccessレイヤーにおけるdelayable-message機構(subsys/bluetooth/mesh/delayable_msg.c)は、CONFIG_BT_MESH_ACCESS_DELAYABLE_MSG_COUNTメッセージコンテキスト(デフォルト4つ)の静的プールを管理しており、これらはfree_ctxまたはbusy_ctxリストにスレッドされています。release_delayable_msg_ctx()関数は、sys_slist_find_and_remove()がそのコンテキストをbusy_ctx上で発見した場合のみ、それをfree_ctxに戻していました。bt_mesh_delayable_msg_manage()内のチャンク枯渇エラーパスでは、すでにfree_ctxからポップオフ済みだがまだbusy_ctxに挿入されていないコンテキストが解放されるため、このコンテキストはどちらのリストにも追加されず、プールから永久的に消失しました。bt_mesh_init()からのみ一度だけ実行されるbt_mesh_delayable_msg_init()と、ノードのリセット/サスペンドでbusy_ctxのみが排水されるという事情により、この損失はプロビジョニング解除、再プロビジョニング、およびサスペンド/レジュームを通過しても存続し、再起動時のみクリアされます。

チャンクプール(CONFIG_BT_MESH_ACCESS_DELAYABLE_MSG_CHUNK_COUNT、デフォルト40チャンク)が新しい遅延メッセージに必要なチャンクに不足しており、かつbt_mesh_access_send()が-EBUSYまたは-ENOBUFSを返すため最も古い保留中のメッセージをフラッシュできない場合、このエラーパスに到達します(すべてのセグメント化送信コンテキストがビジー状態、またはアドバタイジング/セグメントバッファの枯渇)。メッシュネットワークにプロビジョニングされたピア(有効なNetKeyと、サーバーモデルに関連付けられたAppKeyまたはDevKeyを保持)は、分割応答を引き出すリクエストで被害者を洪水攻撃し、Segment Acknowledgmentを withheld(保留/拒否)することで両方の条件を誘発できます。これにより送信コンテキストが占有されたままになり、キューイングされた応答がチャンクプールの使用を維持します。そのウィンドウ中に到着する各追加リクエストは1つのコンテキストリークを引き起こします。

プールが枯渇すると、bt_mesh_delayable_msg_manage()は後続のすべての送信に対して-ENOMEMを返し、bt_mesh_model_send()はそのエラーをフォールバックなしで即時送信に伝播させます。CONFIG_BT_MESH_ACCESS_DELAYABLE_MSGおよびCONFIG_BT_MESH_ACCESS_DELAYABLE_MSG_CTX_ENABLEDはデフォルトで有効化されているため、受信されたアクセスメッセージごとにctx->rnd_delayが設定され、Configuration Server、Health Server、アプリケーションサーバーモデルからのすべての返信が静かにドロップされます。ノードはトラフィックの受信と処理を継続しますが応答を行わず、デバイス再起動までの永続的なサービス妨害(DoS)となります。メモリ破壊、情報漏洩、または整合性への影響はありません。修正前のリリースではチャンク数がペイロード長ではなく送信バッファ容量から計算されるため、チャンクプールの枯渇—したがってリークの誘発が considerably (著しく)容易になります。

If you want to get best quality of vulnerability data, you may have to visit VulDB.

責任者

Zephyr

予約する

2026年08月15日

モデレーション

承諾済み

エントリ

VDB-417353

EPSS

0.00000

アクティビティ

非常低い

ソース

Do you need the next level of professionalism?

Upgrade your account now!