JVNDB-2026-021974 | |
Zephyr ProjectのZephyrにおける複数の脆弱性 | |
| 概要 | |
USB CDC-NCMデバイスクラス(subsys/usb/device_next/class/usbd_cdc_ncm.c)は、イーサネット送信コールバックcdc_ncm_send()内でusbd_ep_enqueue()の戻り値を無視しています。エンキューに失敗した場合でも、関数はk_sem_take(&data_sync_sem, K_FOREVER)を呼び出し、完了セマフォでブロックします。このセマフォはbulk-IN転送完了コールバックからのみシグナルされます。エンキューされなかったため、そのコールバックは発生せず、呼び出しスレッド(共有ネットワーク交通クラスのTXスレッド)はインターフェイスのTXロックを保持したまま永久にデッドロックし、再起動まで送信が停止し(送信バッファのリークも発生します)。エンキュー失敗は、添付されたUSBホストによって制御される条件下で発生します。具体的には、バスがサスペンド状態の場合、usbd_ep_enqueue()は-EPERMを返し(標準的かつ持続的なホスト操作です)、基盤のudc_ep_enqueue()は切断、バスリセット、またはエンドポイント無効時に-EPERMまたは-ENODEVを返します。cdc_ncm_send()のガードはDATA_IFACE_ENABLEDおよびIFACE_UPフラグのみをチェックしており、サスペンド状態は考慮していません。そのため、ホストがバスをサスペンドしている間に送信されたパケットはエンキュー失敗を引き起こし、TXパスがデッドロックします。現実的なトリガーは、エクスポートされたネットワークインターフェイスがアクティブでトラフィックを送信している間に発生するバスサスペンド(ホストスリープ、USB選択的/自動サスペンド、またはハブの電源管理)であり、その後デバイス発信のパケットがパスをデッドロックさせ、再起動でのみ回復可能です。影響はホストのNCMインターフェイスとZephyrデバイス間の仮想ネットワーク接続の永続的な喪失であり、デッドロックしたスレッドが共有トラフィッククラスのTXスレッドであるため、他のネットワークインターフェイスの送信も停止します。メモリ破損や情報漏洩は発生しません。この欠陥はCDC-NCMドライバ導入時に発生し、v4.4.0までのリリースで出荷されました。usbd_ep_enqueue()の戻り値をチェックし、ブロック待機前にバッファを解放することで修正されています。 | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 5.3 (警告) [その他]
| |
| 影響を受けるシステム | |
|
| |
Zephyr Project | |
本脆弱性の影響を受ける製品の詳細については、ベンダ情報および参考情報をご確認ください。 | |
| 想定される影響 | |
・当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 | |
| 対策 | |
ベンダ情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
GitHub | |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/06/29 |
| 登録日 | 2026/07/02 |
| 最終更新日 | 2026/07/02 |



