CVE-2026-75904
NiskieCVSS 3.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 8 - wyżej niż 8% wszystkich znanych CVE
Streszczenie
Biblioteka libmodplug do wersji 0.8.9.1 zawiera odczyt poza zakresem w funkcji pat_smplooped w src/load_pat.cpp. Funkcja waliduje tylko górną granicę indeksu próbki, a następnie odejmuje jeden przed indeksowaniem tablicy pat_loops, co pozwala na odczyt bajtu przed tablicą, gdy indeks wynosi zero.
Ocena ryzyka
Odczyt poza zakresem może prowadzić do nieoczekiwanego zachowania odtwarzania plików MIDI, a w skrajnych przypadkach do ujawnienia danych lub awarii aplikacji.
Rekomendacja
Zaleca się aktualizację libmodplug do wersji zawierającej poprawkę lub unikanie przetwarzania niezaufanych plików MIDI.
Inne podatności w libmodplug
Zobacz wszystkie- CVE-2026-111271Średnie
libmodplug do wersji 0.8.9.1 zawiera odczyt poza zakresem bufora sterty w funkcji CSoundFile::ReadAMS2() w pliku src/load_ams.cpp, który pozwala atakującym odczytać sąsiednią pamięć sterty poprzez spreparowane pliki AMS. Atakujący może dostarczyć moduł AMS, którego bajty efektów wzorca mają ustawiony bit 7, wyprowadzając dekoder poza bufor wejściowy i wywołując awarię.
- CVE-2026-111270Średnie
libmodplug do wersji 0.8.9.1 zawiera zapis poza zakresem bufora sterty w funkcji CSoundFile::ReadDSM() w pliku src/load_dsm.cpp, ponieważ zmienna nPat nie jest sprawdzana względem MAX_PATTERNS. Atakujący może dostarczyć spreparowany plik DSM z ponad 240 blokami PATT lub zawijającą wartością patt_len, aby uszkodzić pamięć sterty i wywołać awarię procesu.
- CVE-2026-108577Średnie
W Konstanty Bialkowski libmodplug do wersji 0.8.9.1 wykryto podatność. Problem dotyczy funkcji abc_add_gchord w pliku src/load_abc.cpp komponentu ABC Music Format Parser. Manipulacja powoduje zużycie zasobów. Atak może być inicjowany zdalnie. Producent został poinformowany, ale nie odpowiedział.
Oryginalny opis (angielski, źródło NVD)
libmodplug through 0.8.9.1 contains an out-of-bounds read in pat_smplooped in src/load_pat.cpp. The function validates only the upper bound of its sample index against MAXSMP and then subtracts one before indexing the 191-byte static array pat_loops, so an index of zero reads pat_loops[-1], one byte before the array. The index is the smpno field of a parsed MIDI event, which is initialised to zero and only later overwritten from a program-change parameter, so an event reaching the note test before an instrument is assigned carries zero. A 32-byte MIDI file supplied to the library's public ModPlug_Load entry point drives the path through CSoundFile::Create, CSoundFile::ReadMID, and MID_ReadPatterns to the read. The byte read out of bounds determines whether a note event is treated as looping, so adjacent static storage influences playback state.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

