CVE-2026-61722
ŚrednieCVSS 6.8Streszczenie
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.
Ocena ryzyka
Może to prowadzić do nadmiernego przetwarzania 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-61723Średnie
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.
- 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 articulation chunks using the unsigned expression cbsize + connblocks * 12 without first ensuring that the multiplication and addition fit in 32 bits. A crafted DLS file can supply a large connblocks value that wraps the expression and bypasses the chunk-size check, after which the parser performs approximately one billion 12-byte iterations beyond the chunk boundary. The excessive processing and invalid reads can cause denial of service. Builds with the CMake option enable-native-dls set to OFF do not expose the parser. This issue is fixed in version 2.5.6.

