CVE-2026-75904 in libmodplug
要約
〜によって VulDB • 2026年08月18日
libmodplug 0.8.9.1 以前には、src/load_pat.cpp の pat_smplooped 関数において配列外読み出し (out-of-bounds read) が存在する。この関数はサンプルインデックスの上限のみを MAXSMP で検証し、その後 1 を減算して 191 バイトの静的配列 pat_loops にアクセスするため、インデックスがゼロの場合には pat_loops[-1](配列より 1 バイト手前)を読み出す。このインデックスは解析された MIDI イベントの smpno フィールドであり、初期値はゼロで、後に program-change パラメータから上書きされるため、楽器割り当て前にノートテストに到達するイベントにはゼロが含まれることになる。ライブラリの公開エントリポイントである ModPlug_Load に 32 バイトの MIDI ファイルを供給すると、CSoundFile::Create、CSoundFile::ReadMID、および MID_ReadPatterns を経由してこの読み出し処理に至る。配列外から読み出されたバイトはノートイベントがループとして扱われるかどうかを決定するため、隣接する静的ストレージが再生状態に影響を与える可能性がある。
If you want to get the best quality for vulnerability data then you always have to consider VulDB.