【活用ガイド】

JVNDB-2026-021976

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

概要

subsys/net/ip/icmpv6.c は、パケットが net_try_send_data() に渡された後に net_pkt からネットワークインターフェースを読み取ります。icmpv6_handle_echo_request() と net_icmpv6_send_error() においては、送信後の統計更新のために、直前に送信されたパケットに対して net_pkt_iface(reply) や net_pkt_iface(pkt) を呼び出します。送信経路(net_try_send_data - net_if_tx)では、パケットをメモリスラブに戻し参照を解除して返却前に解放する可能性があります。これは、TXキューが設定されていない場合(CONFIG_NET_TC_TX_COUNT == 0)には RXスレッドで同期的に行われ、設定されている場合はドライバーやL2が非同期的に既に解放している可能性があります。したがって net_pkt_iface() は、解放済み(おそらく再利用済み)の net_pkt を逆参照し、CONFIG_NET_STATISTICS_PER_INTERFACE が有効な場合には古い iface ポインタがさらに逆参照されて更新(iface-stats.icmp.sent++)されます。これにより、Use-After-Free の読み取りが攻撃者が制御可能なポインタへの書き込みになります。コアスタックではこの危険性を net_core.c にて「その呼び出し後に pkt を使用してはならない」と既にドキュメント化しており、送信前に iface をキャッシュしていますが、ICMPv6 呼び出し元はこれを行っていませんでした。認証されていないリモート攻撃者は、ICMPv6 エコーリクエスト(ping)や ICMPv6 エラーを引き起こす IPv6 パケット(例:不明な次ヘッダ、フラグメント再構成タイムアウト、宛先到達不能)を送信するだけで、この脆弱性を引き起こすことができます。これによりクラッシュによるサービス拒否やメモリ破損が発生する可能性があります。影響を受けるのは CONFIG_NET_NATIVE_IPV6 を有効にした Zephyr ネットワーキングで、おおむね v4.2.0 から v4.4.0 までのバージョンです。修正は送信前にインターフェースポインタをキャッシュし、統計の更新にこれを使用するようにしたもので、兄弟コミット 86e21665d46 は ICMPv4 の同様のバグを修正しています。
CVSS による深刻度 (CVSS とは?)

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


Zephyr Project
  • Zephyr 4.2.0 以上 4.5.0 未満

想定される影響

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

リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。
ベンダ情報

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

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

  1. CVE-2026-10638
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-10638
  2. 関連文書 : net: ip: icmpv6: fix use-after-free  zephyrproject-rtos/zephyr@09c8578  GitHub
更新履歴

  • [2026年07月02日]
      掲載