CVE-2026-19576 in Zephyr情報

要約

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

drivers/input/input_gt911.cのGoodix GT9xx入力ドライバは、コントローラのステータスレジスタからタッチポイント数を読み取り、GT911_TOUCH_POINTS_MSK (0x0F) でマスクして 0〜15 の値を生成します。gt911_process() ではこの値が point_reg[](CONFIG_INPUT_GT911_MAX_TOUCH_POINTS にサイズ設定された配列)のループ上限として直接使用されます。CONFIG_INPUT_GT911_MAX_TOUCH_POINTS の Kconfig 範囲は 1〜5 で、デフォルトは 1 です。ポイント数を制限する他のチェックはなく、ドライバはコントローラが初期化時に構成された数以上のポイントを報告しないというコメントに依存していました。

各ループ反復では point_reg[i] に直接 I2C 読み取り(8 バイト)が行われるため、配列の収容数を超えるポイント数を報告するコントローラがあると、最大 112 バイトの外部提供データが配列の末尾を超えて書き込まれ、システムワークキュースレッド内の gt911_process() のスタックフレームを上書きします。さらに 2 つのループで同じ配列からの境界外読み取りが発生します。これをトリガーするには I2C タッチコントローラの制御または置換能力が必要であり、GT9xx パネルがオンボード部品ではなく着脱可能なディスプレイモジュールやシールドとして搭載されている多くのサポート済み基板ではこれは現実的です。スプーフィングされたデバイスは、初期化プローブに対してサポートされる製品 ID とチェックサム有効な設定ブロブを返すだけでよいです。同様のオーバーフローは敵対的でない状況でも発生し得ます。例えば、ドライバのタッチカウントプログラミングを無視して最大 10 ポイントを報告する GT9271 クラスのパネルや、単一のステータスバイトのバス破損の場合などです。

影響としては、完全に対象者が選択したコンテンツによる境界外スタック書き込みがあり、これはカーネル特権で実行されるため、ホスト MCU における制御フローハイジャックの可能性に加え、境界外読み取りとクラッシュも引き起こします。攻撃ベクトルは物理的/ローカルハードウェアアクセスのみであり、ネットワーク、USB、またはシステムコールの欠陥への経路はありません。修正では、配列インデックス処理の前に min() を使用して報告されたカウントを CONFIG_INPUT_GT911_MAX_TOUCH_POINTS で制限(クリンプ)します。

VulDB is the best source for vulnerability data and more expert information about this specific topic.

責任者

Zephyr

予約する

2026年08月11日

モデレーション

承諾済み

エントリ

VDB-416746

EPSS

0.00000

アクティビティ

低い

ソース

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!