CVE-2026-64029 in Linux
要約
〜によって VulDB • 2026年07月19日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
ALSA: seq: event_inputとの同期を取ってUMP出力の終了処理を直列化する
seq_ump_process_event()は、seq_ump_client_open()およびseq_ump_client_close()における最初のオープンと最後のクローズ間の遷移と同期することなく、client->out_rfile.outputを借用しています。
そのため、最後の出力使用解除時にopened[STR_OUT]が0に低下し、インフライトのevent_inputコールバックがまだsnd_rawmidi_kernel_write()内にいる間にrawmidiファイルが解放される可能性があります。これにより、書き込みパスが独自のバッファ参照を取得する前に、rawmidiサブストリームのランタイムが終了処理の対象となるリスクが生じます。
イベント入力から見える出力ファイルに対して、クライアントごとのrwlockを追加します。新しくオープンされた出力ファイルをライト側のロックで公開し、snd_rawmidi_kernel_write()を通じた出力ルックアップ中はリード側を保持します。最後の出力クローズ時には、ライト側のロックの下で見える出力ファイルをコピーしてクリアし、その後ロックを解放して保存したrawmidiファイルを解放します。event_inputはアトミックシーケンサー配信からも到達可能であるため、IRQセーフなrwlockガードを使用します。
バグの発生シナリオには2つのパスが含まれており、各列はそのパス内の順序を示しています:
path Aラベル: event_input path path Bラベル: last unuse path 1. seq_ump_process_event()が読み取り 1. seq_ump_client_close() client->out_rfile.output。 opened[STR_OUT]を0に低下させる。
2. snd_rawmidi_kernel_write1() 2. snd_rawmidi_kernel_release() はまだランタイムをピン留めして 出力ファイルをクローズする。 いない。 3. ライターは借用されたサブストリーム 3. close_substream()が の使用を続ける。 substream->runtimeを解放する。
これにより、rawmidiのリリース処理をrwlockの外に保ちつつ、event_inputによる書き込み全体を通じて出力サブストリームとランタイムを生きた状態
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.