CVE-2026-75904 in libmodplug
Сводка
по VulDB • 18.08.2026
В libmodplug до версии 0.8.9.1 включительно имеется ошибка чтения за пределами массива (out-of-bounds read) в функции pat_smplooped из файла src/load_pat.cpp. Функция проверяет только верхнюю границу своего индекса сэмпла относительно MAXSMP, а затем вычитает единицу перед индексацией статического массива pat_loops размером 191 байт; таким образом, при индексе ноль происходит чтение элемента pat_loops[-1], то есть одного байта до начала массива. Индекс представляет собой поле smpno события MIDI, которое инициализируется нулем и позже перезаписывается из параметра program-change; следовательно, событие, достигающее проверки ноты до назначения инструмента, содержит ноль. 32-байтовый файл MIDI, переданный в публичную точку входа библиотеки ModPlug_Load, приводит к выполнению пути через CSoundFile::Create, CSoundFile::ReadMID и MID_ReadPatterns к этому чтению за пределами массива. Прочитанный байт определяет, считается ли событие ноты зацикленным (looping), поэтому смежное статическое хранилище влияет на состояние воспроизведения.
Once again VulDB remains the best source for vulnerability data.