【活用ガイド】

JVNDB-2026-028139

Zephyr ProjectのZephyrにおける競合状態に関する脆弱性

概要

Zephyrのユーザースペース動的オブジェクトサブシステムにおいて、kernel/userspace/userspace.cのthread_idx_alloc()は、lists_lockを保持せずにグローバルな_thread_idx_map[]ビットマップから新しいスレッド権限インデックスを割り当てていました。SMPシステムでは、2つのユーザーモードスレッドがk_object_alloc(K_OBJ_THREAD)システムコールを同時に呼び出すと、両者が同じ低位の空きビットを観測し、同じ非原子的な読み取り-修正-書き込み操作でそれをクリアし、同一のtidxを返すことがあります。こうして作成された2つのK_OBJ_THREADオブジェクトは同一のthread_idを割り当てられ、2つのユーザースレッドは、すべてのカーネルオブジェクトのperms[]ビットフィールドの単一ビット位置を共有してしまいます。つまり、あるスレッドに対してカーネルオブジェクトへのアクセス権が与えられると、そのスレッドと同じビットを共有するもう一方のスレッドにも暗黙的に権限が付与され、ユーザースペースのACL分離が破られます。さらに、alloc内のアンロックされた&=~BIT()操作と、thread_idx_free()内のロックされた|= BIT()操作の間に、スレッドインデックスプールからのエントリが漏洩する二次的な更新競合が発生する可能性もあります。本脆弱性は、無制限の__syscall k_object_allocを介して任意のユーザーモードスレッドから到達可能であり、CONFIG_USERSPACE、CONFIG_DYNAMIC_OBJECTS、CONFIG_SMPの設定に依存します。この欠陥は、2018年にスレッドごとの権限インデックスが追加された際に導入され、v4.4.0を含むすべてのリリースに存在していました。ビットマップの読み取り-修正-書き込み処理と権限クリア処理の間でlists_lockを保持し、かつ以前はロックを行っていたobj_listのトラバーサルをインライン化することで修正されました。
CVSS による深刻度 (CVSS とは?)

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


Zephyr Project
  • Zephyr 2.0.0 以上 4.5.0 未満

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

・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。
・当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。
・当該ソフトウェアが完全に停止する可能性があります。
対策

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

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

  1. 競合状態(CWE-362) [その他]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2026-10681
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-10681
  2. 関連文書 : kernel: userspace: fix thread_idx_alloc() for SMP  zephyrproject-rtos/zephyr@862ea2f  GitHub
更新履歴

  • [2026年08月13日]
      掲載