【活用ガイド】

JVNDB-2026-022663

Zephyr ProjectのZephyrにおける解放済みメモリの使用に関する脆弱性

概要

Zephyrの非同期SNTPクライアント(subsys/net/lib/sntp/sntp.c、sntp_close_async)は、ネットワークソケットサービスから切り離した直後に、呼び出しスレッドからUDPソケットファイルディスクリプタを直接閉じており、ソケットサービスのポールスレッドと同期を取っていませんでした。ソケットサービススレッドはzvfs_pollを介して各ソケットをポーリングしており、(zsock_poll_prepare_ctx内で)k_poll_eventをソケットのnet_context(&ctx->recv_q)に向けて登録し、参照やロックを保持せずにk_pollでブロックします。net_contextオブジェクトは固定プール(contexts[CONFIG_NET_MAX_CONTEXTS])から割り当てられ、クローズ後に再利用されます。sntp_close_asyncがポールスレッドとは異なるスレッドから呼び出された場合(ツリー内の利用者subs ys/net/lib/config/init_clock_sntp.cにて、システムワークキュー上でSNTPタイムアウトハンドラが実行される一方で、ソケットサービススレッドが同じfd上のpollでブロックしている状況)、クローズによりnet_contextが解放され再利用される可能性がありますが、ポールスレッドは依然として解放済みオブジェクトにポーラーノードをリンクしたままになります。その結果、カーネルのポール構造に対するuse-after-freeやオブジェクト混同が発生します。SNTPのタイムアウト経路は通常の応答なし失敗モードであるため、ネットワークピアやオフパス攻撃者がSNTP/NTPの応答を遅延または破棄することで、競合状態のあるクローズを繰り返し(さらにNET_CONFIG_SNTP_INIT_RESYNCの周期的な動作で)誘発可能です。最も考えられる結果はネットワーキングスレッドのクラッシュ(サービス拒否)であり、解放されたコンテキストスロットが再割り当てされる際にメモリ破損が発生する可能性もあります。修正は、クローズ処理をnet_socket_service_close(NET_SOCKET_SERVICE_CLOSE_SOCKETS)を通じてソケットサービススレッド自身に延期し、ポール処理を行う同一スレッドがクローズも担当するようにして競合を排除しています。影響を受けるリリースはv4.2.0からv4.4.0です。
CVSS による深刻度 (CVSS とは?)

CVSS v3 による深刻度
基本値: 5.9 (警告) [NVD値]
  • 攻撃元区分: ネットワーク
  • 攻撃条件の複雑さ: 高
  • 攻撃に必要な特権レベル: 不要
  • 利用者の関与: 不要
  • 影響の想定範囲: 変更なし
  • 機密性への影響(C): なし
  • 完全性への影響(I): なし
  • 可用性への影響(A): 高
影響を受けるシステム


Zephyr Project
  • Zephyr 4.2.0 から 4.4.1

本脆弱性の影響を受ける製品の詳細については、ベンダ情報および参考情報をご確認ください。
想定される影響

・当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。
・当該ソフトウェアが扱う情報について、書き換えは発生しません。
・当該ソフトウェアが完全に停止する可能性があります。
対策

ベンダ情報を参照して適切な対策を実施してください。
ベンダ情報

GitHub
CWEによる脆弱性タイプ一覧  CWEとは?

  1. 解放済みメモリの使用(CWE-416) [その他]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2026-10655
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-10655
  2. 関連文書 : net: sntp: fix close-while-polling in `sntp_close_async`  zephyrproject-rtos/zephyr@ef47bdf  GitHub
更新履歴

  • [2026年07月08日]
      掲載