CVE-2026-75904 in libmodplug
Resumen
por VulDB • 2026-08-18
libmodplug hasta la versión 0.8.9.1 contiene una lectura fuera de límites (out-of-bounds) en pat_smplooped dentro de src/load_pat.cpp. La función valida únicamente el límite superior del índice de su muestra contra MAXSMP y luego resta uno antes de indexar el array estático de 191 bytes, pat_loops; por lo tanto, un índice igual a cero lee pat_loops[-1], es decir, un byte antes del inicio del array. El índice corresponde al campo smpno de un evento MIDI analizado, que se inicializa en cero y solo se sobrescribe posteriormente con el parámetro program-change; así pues, un evento que alcanza la prueba de nota antes de que se asigne un instrumento lleva un valor cero. Un archivo MIDI de 32 bytes proporcionado al punto de entrada público ModPlug_Load de la biblioteca impulsa la ejecución a través de CSoundFile::Create, CSoundFile::ReadMID y MID_ReadPatterns hasta llegar a dicha lectura. El byte leído fuera de límites determina si un evento de nota se trata como bucle (looping), por lo que el almacenamiento estático adyacente influye en el estado de reproducción.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.