CVE-2026-19938 in Zephyr情報

要約

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

BluetoothホストのATT送信パスにおいて、署名処理が失敗した際に所有していないバッファを解放する脆弱性があります。subsys/bluetooth/host/att.c内のchan_send()関数は(また他のすべてのエラー終了経路も実装しているように)、失敗した場合に呼び出し元がnet_bufの所有者権限を保持するという契約文書化された動作を示しています。しかし、BT_ATT_OP_SIGNED_WRITE_CMD分岐では、bt_smp_sign()がエラーを返した際にnet_buf_unref(buf)を呼び出した後でそのエラーを呼び出し元に返していました。

呼び出し元は上記の契約に従って行動します:process_queue()はk_queue_prepend()を使用してバッファをキューに再挿入し、bt_att_chan_send_rsp()はそれをchan->tx_queueに戻し、bt_att_chan_req_send()はリクエスト内に復元し、att_req_retry()はその参照カウントをデクリメント(unreference)します。その結果、すでに解放済みのバッファが再度キューに入れられ、後に逆参照され、最終的に再び解放されるという二重解放状態が発生しました。

ATT Signed Write Commandは、アプリケーションが暗号化されていない接続に対してsignフラグを設定してbt_gatt_write_without_response_cb()を呼び出す際に生成されます。ローカルにCSRK(Connection Signature Resolving Key)が存在しない場合(-ENOENT)、または存在するかどうかのネゴシエーションにおいて、peer's pairing key-distribution fieldで署名鍵とボンディングが合意された場合にのみsmp_distribute_keys()によってローカルCSRKが保存されます。したがって、ピアはCSRKを受け入れずにペアリングしたり、No Bondingでペアリングしたり、ペア解除状態を維持したり、リンクの暗号化を行わないままにしたりすることが可能であり、その場合、被害者の次の署名付き書き込み処理で失敗する分岐(failing path)が実行されます。

struct net_bufのnodeフィールドは同時に、ATT TX FIFOのためのリンケージワード、att_pool destroyコールバックであるatt_tx_destroy()によって使用されるdeferred-destroyリスト用リンク、およびプールフリーリスト用のリンクとして機能しているため、誤って扱われたバッファによりこれらのリストが破損し、bt_att_create_pdu()によって新しいPDU(Protocol Data Unit)へ再発行されるときにATT TXパス側でまだ保持されている状態となります。

同じ分岐ではまた、署名処理後にのみnet_buf_simple_stateを保存していたため、bt_l2cap_send_pdu()の失敗後に復元されたバッファには12オクテットの署名がそのまま残りました。その後のリトライによって再度署名が行われ、net_buf_add(buf, 12)を用いて二重目の署名が付加されました。これはbt_att_create_pdu()によってちょうど1つの分だけサイズ設定されたプール済みバッファに対して行われたため、net_buf tailroomアサーションがコンパイルされていないビルドではバッファの末尾を超えた書き込み(out-of-bounds write)が発生します。

影響はBluetoothスタックにおけるホスト側のメモリ破損です:リストの破損、2つの所有者を持つプール済みATTバッファによる送信されるPDU内容の不整合または切断時のキュー排水時に発生する二重解放、そしてリトライ経路での境界外書き込み(bounded out-of-bounds write)が挙げられます。これらは通常、クラッシュやアサーション失敗として観測されます。

この脆弱性の影響を受けるには、非推奨のCONFIG_BT_SIGNINGオプションが有効化されていること、および実際に署名付き書き込みを発行するアプリケーションが存在することが必要です。そのような構成では、トリガー条件はリモートピアによって制御可能です。

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

責任者

Zephyr

予約する

2026年08月15日

モデレーション

承諾済み

エントリ

VDB-417364

EPSS

0.00000

アクティビティ

非常低い

ソース

Do you need the next level of professionalism?

Upgrade your account now!