JVNDB-2026-027511 | |
Zephyr ProjectのZephyrにおける複数の脆弱性 | |
| 概要 | |
CONFIG_XTENSA_MPUおよびCONFIG_USERSPACEで構築されたXtensa SoCにおいて、arch/xtensa/core/mpu.cのarch_buffer_validate()関数は、呼び出し元のユーザースレッドが要求した権限でアクセス可能なユーザーモード提供のバッファを検証するアーキテクチャフックです。しかし、その返り値をデフォルトで0(アクセス許可)に設定し、MPUの各リージョンを調査するループ内でのみ拒否結果を設定していました。バッファの丸められた範囲が32ビットアドレス空間をラップすると(サイズ+整列オフセットがSIZE_MAXに近い場合、またはROUND_UP(size + offset)が0にオーバーフローする場合)、ループが一度も実行されず、関数は0=許可を返し、いかなるMPUリージョンも調査しません。システムコール層の事前検証(K_SYSCALL_MEMORY_SIZE_CHECK / Z_DETECT_POINTER_OVERFLOW)は、rawなaddr+sizeラップのみを検出し、ROUND_UPによるラップはカバーしていません。また、文字列経路(arch_user_string_nlen -> arch_buffer_validate)にはシステムコール層のガードが全くありません。したがって、権限のないユーザーモードスレッドは、k_usermode_from_copy/to_copyまたはk_usermode_string_copyを介してユーザーバッファを検証する任意のシステムコールに対して、細工された(addr, size)を渡してアクセス権のないメモリに対する検証をパスさせることが可能です。これにより、カーネルは攻撃者が選択したカーネルメモリまたは他のパーティションメモリの読み出し(情報漏洩)または書き込み(破損)をスレッドに代わって実行し、情報漏洩、メモリ破損、特権昇格、サービス拒否を引き起こします。本脆弱性は、Xtensa MPUのユーザースペースサポートが追加されたv3.7.0からv4.4.0まで影響します。修正では、デフォルトの戻り値を-EINVAL(デフォルトで拒否)に変更し、明示的なsize_add_overflowチェックを追加し、範囲全体の検証が完了した後に成功値を設定するようにしています。 | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 7.8 (重要) [その他]
| |
| 影響を受けるシステム | |
|
| |
Zephyr Project | |
本脆弱性の影響を受ける製品の詳細については、ベンダ情報および参考情報をご確認ください。 | |
| 想定される影響 | |
・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 | |
| 対策 | |
ベンダ情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
GitHub | |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/07/14 |
| 登録日 | 2026/08/10 |
| 最終更新日 | 2026/08/10 |



