vs gauge
区分
JVN番号
タイトル
JVN
深刻度
最終更新日
CVE番号
New
JVNDB-2026-027509

Zephyr ProjectのZephyrにおける複数の脆弱性

7.1
2026/08/10 12:10
CVE-2026-10671
JVNDB-2026-027509
Zephyr ProjectのZephyrにおける複数の脆弱性
概要
Zephyrのカーネルパイプ実装において、kernel/pipe.c内のユーザースペースシステムコール検証関数z_vrfy_k_pipe_init()は、すでに初期化されたカーネルオブジェクトを要求するK_SYSCALL_OBJ()を使用していましたが、本来はすでに初期化済みのオブジェクトを拒否するK_SYSCALL_OBJ_NEVER_INIT()を使うべきでした。その結果、CONFIG_USERSPACEビルド環境において、k_pipeオブジェクトへのアクセス権を持つ権限の低いユーザースレッドが、すでに使用中のパイプをk_pipe_initシステムコールで再初期化できてしまいます。z_impl_k_pipe_init()は無条件にリングバッファをリセットし、pipe->waitingを0に設定し、さらに2つの待機キュー(pipe->dataとpipe->spaceに対するz_waitq_init)を再初期化しますが、パイプで現在ブロックされているスレッドの起床や管理は行いません。そのため、k_pipe_read()/k_pipe_write()で既に保留状態にあるスレッドは「孤児」状態となり、依然として保留中(pending)のままで、pended_onはクリアされた待機キューを指し、qnode_dlistリンクは(再初期化された)組み込みリストヘッドに対して古い状態のまま残ります。この孤立した待機スレッドが後にタイムアウトまたは起床されると、スケジューラはその古いノードに対してsys_dlist_remove()を呼び出し、先祖の参照が切れたprev/nextポインタを介してカーネルの待機キューやスケジューラ構造に書き込みを行います。その結果、リストの破損(攻撃者が誘発可能な不正なカーネル書き込み)、起床処理の喪失、無期限のスレッドブロック、そして無言のデータ損失を招いてしまいます。この脆弱性により、権限の低いユーザースレッドが他のスレッドやパーティションと共有されるカーネルオブジェクトの状態を破損させることが可能となっていました。修正は検証関数を既存のk_msgq_initと同様にK_SYSCALL_OBJ_NEVER_INIT()に変更し、ユーザースレッドが使用中のパイプを再初期化できないように行われました。この脆弱性を含むコードはv4.1.0から出荷され、v4.4.0まで残存していました。
想定される影響と対策
・当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 ・当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。 ・当該ソフトウェアが完全に停止する可能性があります。
ベンダ情報を参照して適切な対策を実施してください。
JVN情報 ※( )内はCVSS v2の値
深刻度 7.1
CVECVE-2026-10671
公表日2026/07/14 00:00
登録日2026/08/10 12:10
更新日2026/08/10 12:10
CVSS v3情報
全ての情報を閲覧するにはユーザー登録(無料)またはログインが必要です。