CVE-2026-19676 in Zephyr情報

要約

〜によって VulDB • 2026年10月21日

peci_transfer() システムコールのユーザーモード検証子、drivers/peci/peci_handlers.c 内の z_vrfy_peci_transfer() は、デバイスオブジェクトの権限のみをチェックし、呼び出し元が指定した struct peci_msg を k_usermode_from_copy() でコピーしていました。このコピー処理は外部構造体のみを検証するため、埋め込まれた struct peci_buf メンバーである tx_buffer と rx_buffer 内の buf ポインターと len 値は完全に呼び出し元の制御下にあり、ドライバにチェックなしで渡されていました。

ツリー内のすべての PECI ドライバは、スーパーバイザーモードでこれらのポインタを間接参照します:drivers/peci/peci_npcx.c の peci_npcx_transfer() および drivers/peci/peci_ite_it8xxx2.c の peci_it8xxx2_transfer() はハードウェアのバイトを rx_buffer.buf[i] にコピーし、tx_buffer.buf[i] からコマンドバイトを読み取ります。また、drivers/pci/peci_mchp_xec.c の peci_xec_read()/peci_xec_write() も同様の処理を行いますが、rx_buffer.len に対する上限は全く設定されていません。CONFIG_USERSPACE が有効な環境でデバイスが公開される通常の手法である PECI デバイスオブジェクトへのアクセス権限を持つユーザーモードのスレッドであれば、rx_buffer.buf をカーネルデータ構造体に向け、ドライバにハードウェア由来のバイトを書き込ませるか、tx_buffer.buf をカーネルメモリに向け、その内容を PECI/eSPI 帯域外バスへ送信させることが可能です。

影響は、完全なユーザーモードからカーネルへのエスケープです:任意のカーネル書き込みプリミティブ(整合性侵害、およびそれを通じたスーパーバイザー特権でのコード実行)、PECI バス観測者に対して開示される任意のカーネル読み取り、そして未マップアドレスが指定された場合に簡単に到達可能なスーパーバイザーモードフォールトです。攻撃には CONFIG_USERSPACE=y、PECI ドライバの一つ(CONFIG_PECI_NPCX、CONFIG_PECI_XEC、または CONFIG_PECI_ITE_IT8XXX2)の有効化、および PECI デバイスを保持するユーザーモードスレッド内でのローカルコード実行が必要です。

修正では、二つの埋め込みバッファに対して K_SYSCALL_MEMORY_READ() および K_SYSCALL_MEMORY_WRITE() のチェックが追加され、RX 長に組み込まれたフレームチェックシーケンス(FCS)バイトを考慮した size_add_overflow() ガードも導入されました。

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

責任者

Zephyr

予約する

2026年08月13日

モデレーション

承諾済み

エントリ

VDB-424966

EPSS

0.00000

アクティビティ

非常低い

ソース

Might our Artificial Intelligence support you?

Check our Alexa App!