CVE-2026-75904 in libmodplug
Sumário
de VulDB • 19/08/2026
O libmodplug até a versão 0.8.9.1 contém uma leitura fora dos limites (out-of-bounds read) em pat_smplooped no arquivo src/load_pat.cpp. A função valida apenas o limite superior do seu índice de amostra contra MAXSMP e, em seguida, subtrai um antes de indexar a matriz estática de 191 bytes pat_loops; portanto, um índice zero lê pat_loops[-1], um byte antes da matriz. O índice é o campo smpno de um evento MIDI analisado, que é inicializado como zero e só mais tarde sobrescrito por um parâmetro program-change; assim, um evento que atinge o teste de nota antes que um instrumento seja atribuído carrega zero. Um arquivo MIDI de 32 bytes fornecido ao ponto de entrada público ModPlug_Load da biblioteca direciona a execução através de CSoundFile::Create, CSoundFile::ReadMID e MID_ReadPatterns até a leitura fora dos limites. O byte lido fora dos limites determina se um evento de nota é tratado como em loop (looping), portanto, o armazenamento estático adjacente influencia o estado da reprodução.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.