libmikmod through 3.3.15 contains a heap out-of-bounds read vulnerability in the IMFLoad() loader that allows attackers to read beyond allocated memory by supplying a crafted IMF module. Attackers can enable the linear-period header flag and map notes to out-of-range samples, causing noteindex indexing far past the heap allocation and crashing applications that load the file.
libmikmod through 3.3.15 contains a global out-of-bounds read vulnerability in the MultiTracker loader MTMLoad() because the module channel count is never clamped. Attackers can supply a crafted .mtm file with a channel count above 32 to read past the static pat array, corrupting track indices and crashing the loading application.
libmikmod before 3.3.14 contains an integer overflow in the Oktalyzer loader OKTdoPBOD() that allows attackers to cause heap buffer overflow via crafted track counts. Attackers can supply an OKT module whose SLEN chunk wraps the 16-bit numtrk value, causing PBOD writes past allocated track pointers for crashes or code execution.
libmikmod before 3.3.14 contains a heap out-of-bounds read vulnerability in the Impulse Tracker loader loadit.c that allows attackers to read adjacent heap memory via oversized patterns. Attackers can supply a crafted IT module with more than 200 pattern rows, causing ITConvertTrack() to read past the itpat buffer and crash applications.
libmikmod before 3.3.14 contains an integer overflow vulnerability in DSMLoad() in loaddsm.c that allows attackers to trigger heap buffer overflow via crafted track counts. Attackers can supply a DSM module whose numchn and numpat product wraps a 16-bit value, overwriting heap memory to cause crashes or potential code execution.