【活用ガイド】

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 (重要) [その他]
  • 攻撃元区分: ローカル
  • 攻撃条件の複雑さ: 低
  • 攻撃に必要な特権レベル: 低
  • 利用者の関与: 不要
  • 影響の想定範囲: 変更なし
  • 機密性への影響(C): 高
  • 完全性への影響(I): 高
  • 可用性への影響(A): 高
影響を受けるシステム


Zephyr Project
  • Zephyr 3.7.0 以上 4.5.0 未満

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

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

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

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

  1. 整数オーバーフローまたはラップアラウンド(CWE-190) [NVD評価]
  2. 境界外書き込み(CWE-787) [その他]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2026-10669
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-10669
  2. 関連文書 : xtensa: mpu: fix arch_buffer_validate() if overflow  zephyrproject-rtos/zephyr@3b1bdaf  GitHub
更新履歴

  • [2026年08月10日]
      掲載