CVE-2026-12364 in Zephyr情報

要約

〜によって VulDB • 2026年08月14日

サブシステム `subsys/logging/log_msg.c` 内のユーザー空間システムコール検証関数 `z_vrfy_z_log_msg_static_create()` は、純粋なパススルー(通過のみ)でした。これは、呼び出し元が指定した `source`、`desc`、`package`、および `data` の各引数を、必須の `K_SYSCALL_*` チェックを一切行わずに、カーネルモードの実装である `z_impl_z_log_msg_static_create()` に直接転送していました。

`z_log_msg_static_create()` は `__syscall` として宣言されているため、`CONFIG_USERSPACE` が有効な環境では、権限のないユーザー空間スレッドが攻撃者が完全に制御可能な引数を使用してこれを直接呼び出すことができます。

カーネルモードのハンドラはこれらの信頼できない値をすべて間接参照します:`frontend_runtime_filtering()` は `source` ポインタを通じて `struct log_source_dynamic_data` として読み取り、`cbprintf_package_copy()` は `package` ポインタから `desc.package_len` バイトを読み取り、`z_log_msg_finalize()` は `data` ポインタから `desc.data_len` バイトの `memcpy()` を実行します。検証がないため、ユーザースレッドは任意のカーネルアドレスと任意の長さを指定でき、カーネルはその場所から読み込みを行います。

影響としては、カーネルモードでのサービス妨害(攻撃者が選択したポインタの間接参照時にカーネルがフォールトを起こす)があります。また、ログバックエンドへの出力が攻撃者から観測可能な場合、送信されるログメッセージにコピーされた任意のカーネルメモリが開示され、ユーザー空間サンドボックスが強制すべきであるユーザー/カーネル境界を越えた機密性の侵害が発生します。読み取り操作のみが行われカーネルメモリの改ざんは行われないため、範囲外書き込み(out-of-bounds write)プリミティブはありません。

修正では、検証関数に必要なバリデーションが追加されました:`desc.package_len` が `Z_LOG_MSG_MAX_PACKAGE` に対して境界チェックされ、NULLでないことと長さの不一致が拒否されます。さらに、`package`、`data`、および(フロントエンドによるランタイムフィルタリングが有効な場合)`source` に対し `K_SYSCALL_MEMORY_READ()` が適用されるため、範囲外アクセスやカーネルポインタの使用は許可されず、代わりに `K_OOPS` が発生します。

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

責任者

Zephyr

予約する

2026年06月16日

モデレーション

承諾済み

エントリ

VDB-390070

EPSS

0.00000

アクティビティ

非常低い

ソース

Want to stay up to date on a daily basis?

Enable the mail alert feature now!