CVE-2026-61723
ŚrednieCVSS 6.8Streszczenie
FluidSynth w wersjach od 2.5.0 do 2.5.6 ma podatność w natywnym parserze DLS, gdzie walidacja chunków ptbl używa wyrażenia cues * 4 + cbsize bez sprawdzenia, czy mnożenie i dodawanie mieszczą się w 32 bitach. Specjalnie spreparowany plik DLS może spowodować zawinięcie wyrażenia i przejście kontroli rozmiaru, co prowadzi do alokacji około czterech gigabajtów i odczytów miliardów wpisów poza granicami chunku.
Ocena ryzyka
Może to prowadzić do nadmiernego zużycia pamięci i nieprawidłowych odczytów, co może spowodować odmowę usługi.
Rekomendacja
Zaktualizuj FluidSynth do wersji 2.5.6 lub nowszej, która zawiera poprawkę. Jeśli to możliwe, wyłącz opcję enable-native-dls.
Inne podatności w FluidSynth
Zobacz wszystkie- CVE-2026-61722Średnie
FluidSynth w wersjach od 2.5.0 do 2.5.6 ma podatność w natywnym parserze DLS, gdzie walidacja chunków artykulacji używa wyrażenia cbsize + connblocks * 12 bez sprawdzenia, czy mnożenie i dodawanie mieszczą się w 32 bitach. Specjalnie spreparowany plik DLS może spowodować zawinięcie wyrażenia i ominięcie kontroli rozmiaru, co prowadzi do około miliarda iteracji 12-bajtowych poza granicami chunku.
- CVE-2026-61721Wysokie
FluidSynth to syntezator programowy oparty na specyfikacjach SoundFont 2. Od wersji 2.5.0 do 2.5.6 natywny loader DLS przypisuje kontrolowane przez plik wartości wsmp.loop_start i wsmp.loop_length do próbek bez wywołania fluid_sample_validate() lub fluid_sample_sanitize_loop(). Spreparowany plik DLS może umieścić punkty pętli próbki poza buforem próbki, powodując odczyty poza zakresem podczas renderowania dźwięku.
- CVE-2026-61720Średnie
FluidSynth w wersjach od 2.5.0 do 2.5.6 ma podatność w parserze SF2, gdzie liczba modulatorów DMOD jest obliczana jako chunk.size / SF_MOD_SIZE - 1 bez odrzucania chunków mniejszych niż jeden rekord. Specjalnie spreparowany plik SF2 z zerowym rozmiarem chunku DMOD powoduje zawinięcie odejmowania do UINT_MAX, a parser próbuje wykonać miliardy alokacji SFMod.
- CVE-2026-61714Wysokie
FluidSynth od wersji 2.2.4 do 2.5.6 zawiera podatność związaną z konfiguracją synth.midi-channels powyżej 16, która pozwala na odczyty i zapisy poza zakresem pamięci w strukturze _fluid_player_t::channel_isplaying. Może to prowadzić do niezdefiniowanego zachowania i naruszenia poufności, integralności lub dostępności. Problem został naprawiony w wersji 2.5.6.
- CVE-2025-56225Wysokie
Fluidsynth w wersji 2.4.6 i wcześniejszych zawiera podatność na odwołanie do wskaźnika null w pliku fluid_synth_monopoly.c, którą można wywołać podczas ładowania nieprawidłowego pliku MIDI.
- CVE-2026-58264Krytyczne
FluidSynth od wersji 1.1.2 do 2.5.6 zawiera podatność na zapis poza zakresem sterty w obsłudze polecenia pitch_bend_range, gdzie argument kanału nie jest sprawdzany przed zapisem. Może to prowadzić do odmowy usługi lub potencjalnego wykonania kodu. Problem jest osiągalny zdalnie przez serwer TCP lub lokalnie przez powłokę FluidSynth.
Oryginalny opis (angielski, źródło NVD)
FluidSynth is a software synthesizer based on the SoundFont 2 specifications. From 2.5.0 until 2.5.6, the native DLS parser validates ptbl chunks with the unsigned expression cues * 4 + cbsize without checking whether the multiplication and addition fit in 32 bits. A crafted DLS file can supply a large cues value that wraps the expression and passes the chunk-size check, causing poolcues.resize(cues) to request approximately four gigabytes and the parser to read billions of entries beyond the chunk boundary. The excessive allocation and invalid reads can cause denial of service. Builds with enable-native-dls set to OFF are not exposed. This issue is fixed in version 2.5.6.

