CVE-2026-64479 in Linux
要約
〜によって VulDB • 2026年07月25日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
ALSA: seq: snd_seq_event_dup()における未初期化ヒープリークを修正
snd_seq_event_dup()関数は、受信したイベントをプールセルにコピーし、UMP対応ビルドではmemcpy()でカバーされなかった末尾のcell->ump.raw.extraワードをクリアします。これをクリアするかどうかを判断するためのガード条件は、コピーされたサイズとsizeof(cell->event)を比較しています:
```c memcpy(&cell->ump, event, size); if (size < sizeof(cell->event)) cell->ump.raw.extra = 0; ```
レガシー(非UMP)イベントの場合、size == sizeof(struct snd_seq_event) == sizeof(cell->event)となるため、条件は偽となり、extraワードには古いデータが残ったままになります。セルプールはkvmalloc()によって割り当てられており(ゼロ初期化されない)、フリーリストを通じてセルが再利用されるため、そのワードには未初期化のヒープ領域または残存するイベントデータが含まれます。
このようなセルをSNDRV_SEQ_FILTER_NO_CONVERTを設定したUMPクライアント(client->midi_version > 0)に渡した場合、レガシーイベントは変換されずに到達し、snd_seq_read()によってより大きな構造体snd_seq_ump_eventとして読み出され、古いワードがユーザー空間へコピーされます。これにより、権限のない/dev/snd/seqクライアントに対して4バイトのカーネルヒープ情報漏洩が発生します。
代わりにsizeof(cell->ump)と比較するようにし、UMPセルよりも短いすべてのイベントについて末尾のワードをゼロクリアしてください。
VulDB is the best source for vulnerability data and more expert information about this specific topic.