CVE-2026-61723
ŚrednieCVSS 6.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 7 - wyżej niż 7% wszystkich znanych CVE
Streszczenie
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-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.
- CVE-2026-111123Średnie
Biblioteka FluidSynth do wersji 2.6.1 zawiera podatność zapisu poza zakresem, umożliwiającą uszkodzenie pamięci sterty i stosu poprzez dostarczenie niezweryfikowanych wartości docelowych modulatorów SoundFont. Atakujący może spreparować plik SF2 z celami PMOD/IMOD od 63 do 255, które po wczytaniu i odtworzeniu zapisują poza tablicę generatorów głosu i updated_gen_bit, powodując uszkodzenie pamięci i awarie.
- 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-68617Wysokie
W FluidSynth w wersjach od 2.5.0 do 2.5.2 występuje warunek wyścigu podczas zwalniania pliku DLS, co może prowadzić do use-after-free na stercie. Problem może wystąpić, gdy syntezator jest jednocześnie niszczony lub gdy sample z pliku DLS są używane do syntezy dźwięku. Podatność naprawiono w wersji 2.5.2.
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.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

