CVE-2026-13735 in Zephyr情報

要約

〜によって VulDB • 2026年08月29日

ZephyrのWireGuard実装(subsys/net/lib/wireguard/wg_crypto.c)におけるkeepaliveパケットの処理に不具合があり、wg_process_data_message()関数内で、ペイロードが正確に16バイトである任意の種類4 transport-dataメッセージ(空のプレーンテキストと裸のPoly1305タグ、すなわちkeepalive)が、wg_decrypt_packet()が呼び出される前に受け入れられ、即時返却されていました。その結果、Poly1305認証タグは検証されませんでした;事前に行われたチェックは、クリアテキストの受信者インデックス検索(攻撃者が提供したdata_hdr->receiverに対するget_peer_keypair_for_index())と、暗号学的ではないキーペアの有効性/期限切れチェックのみでした。

この経路はネットワーク全体から到達可能です:WireGuardポートへの着信UDPはwg_input()によってhandle_transport_data()へ、そしてwg_process_data_message()へとディスパッチされます。32ビットの受信者インデックスはWireGuardハンドシェイクおよびデータメッセージでクリアテキストとして送信されるため、パス上の観測者はそれを直接学習し、オフパス攻撃者はUDPポートに対してブルートフォース攻撃を行うことができます。そのインデックスに対するアクティブな受信有効セッションが存在する場合、攻撃者は16バイトのゴミペイロードを送信し、セッションキーを保持していなくてもそれを受け入れることが可能でした。

受け入れられた際、認証されていないメッセージは管理レイヤーに偽装されたNET_EVENT_VPN_CONNECTEDシグナル(peer->first_validを設定し、任意のnet_mgmtリスナーへ通知)を観察させ、keepalive-RX統計値を増加させました。影響はこのステータスシグナルの整合性に限定されます:プレーンテキストは復号または注入されず、キーは開示されず、早期返却パスではピアエンドポイントやlivenessタイマーが更新されないため、トラフィック注入、セッション乗っ取り、可用性への影響はありません。

修正により、復号前の早期返却が削除され、16バイトのペイロードがwg_decrypt_packet()を通過し、空のプレーンテキストに対するPoly1305タグを検証した後、既存のリプレイ防止チェックが行われます;認証済みでリプレイされていないメッセージのみがkeepaliveとして認識されます。偽造されたkeepalivesはタグチェックに失敗し、復号失敗としてカウントされるようになりました。

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

責任者

Zephyr

予約する

2026年06月29日

モデレーション

承諾済み

エントリ

VDB-396932

EPSS

0.00000

アクティビティ

低い

ソース

Do you want to use VulDB in your project?

Use the official API to access entries easily!