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値]
| |
| 影響を受けるシステム | |
|
| |
Zephyr Project | |
本脆弱性の影響を受ける製品の詳細については、ベンダ情報および参考情報をご確認ください。 | |
| 想定される影響 | |
・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 | |
| 対策 | |
ベンダ情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
GitHub | |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/07/25 |
| 登録日 | 2026/08/13 |
| 最終更新日 | 2026/08/13 |



