CVE-2026-15923 in Zephyr情報

要約

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

ZephyrのSDIOサブシステムにおける関数`sdio_io_rw_extended_helper()`(subsys/sd/sdio.c内)は、1バイトI/Oループを使用して転送を終了しますが、このループでは反復ごとのステップとして `size = MIN(remaining, func->cis.max_blk_size)` が使用されます。値 `func->cis.max_blk_size` は `sdio_decode_cis()` 内でSDIOカードのCIS FUNCEタプルから直接デコードされており、検証が行われません。カードが最大ブロックサイズを0として報告した場合、sizeは常に0となり、remainingは減少せず、ループは無限に回転し続けます。

このループには、sdio_read_fifo()、sdio_write_fifo()、およびインクリメンタルなレジスタ読み書きヘルパーなど、ドライバによって使用される公開されたSDIOクライアントAPIから到達します。各関数は `func->card->lock` というカードごとのミutexを保持した状態でループに入ります。したがって、max_blk_size == 0 を広告するカードは、最初のブロック境界に整列されていない転送時に呼び出しスレッドを永久にハングさせ、mutexを解放しません。これにより、SDIO周辺機器(およびそれ依存のWi-Fiなどのサブシステム)へのサービス提供が拒否され、デバイスがリセットされるまで復旧できません。

悪意のある値はSDIOカード自体から来る必要があるため、この欠陥は着脱可能なSDIO/コンボカードスロットがあり、攻撃者が細工されたまたは故障したカードを挿入できる場合(物理的な攻撃ベクター)、実行可能です。半田付けされたSDIO周辺機器を搭載したボードでは、攻撃者の影響を受けることはありません。メモリ安全性、機密性、完全性に影響はありません—永続的な可用性の喪失のみが発生します。修正パッチは、ループに入る前に `func->cis.max_blk_size` が0の場合に -EIO を返すようにしています。

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

責任者

Zephyr

予約する

2026年07月16日

モデレーション

承諾済み

エントリ

VDB-403614

EPSS

0.00000

アクティビティ

非常低い

ソース

Want to stay up to date on a daily basis?

Enable the mail alert feature now!