CVE-2026-64271 in Linux
要約
〜によって VulDB • 2026年07月25日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
Input: touchwin - 完全なパケットごとにパケットインデックスをリセットする
tw_interrupt()関数は、各ゼロ以外のシリアルバイトを固定された3バイトのバッファに蓄積します。この処理では実行中のインデックスが使用されますが、これは完全に受信されたパケットを受け取り *かつ* デバイスの2つのYバイト値が一致した場合のみリセットされます:
tw->data[tw->idx++] = data;
if (tw->idx == TW_LENGTH && tw->data[1] == tw->data[2]) {
... tw->idx = 0; }
このインデックスのリセットは、デバイスが制御する値である `tw->data[1] == tw->data[2]` という条件に依存しています。悪意のあるもの、故障しているもの、または偽造されたTouchwindow周辺機器は、2番目と3番目のバイトの値が異なるゼロ以外のバイトをストリーミングできます。その結果、インデックスはTW_LENGTHに達しますが等式が成立しないためリセットされず、増え続けます。これにより `tw->data[tw->idx++]` は3バイト配列の末尾を超えてアクセスし、さらにヒープ割り当てされた構造体 `tw` の残りの部分にも及ぶことになります。これは攻撃者が選択した1バイトずつ行われる無制限なデバイス駆動型のヒープアウトオブバウンズ書き込みです。
他のserioタッチスクリーンドライバと同様に、完了したパケットごとにインデックスをリセットし、2つのYバイト値が一致した場合のみイベントを報告するようにします。
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.