Skip to main content
Vulnerability Database/CVE-2026-61721

CVE-2026-61721: FluidSynth DLS Loader DOS Vulnerability

CVE-2026-61721 is a denial of service vulnerability in FluidSynth versions 2.5.0 to 2.5.5 that allows crafted DLS files to trigger out-of-bounds reads. This article covers the technical details, affected versions, and mitigation.

Published:

CVE-2026-61721 Overview

FluidSynth is a software synthesizer that implements the SoundFont 2 specification and is widely embedded in Linux audio stacks, games, and MIDI toolchains. A heap buffer overflow in the native Downloadable Sounds (DLS) loader affects versions 2.5.0 through 2.5.5. The loader assigns file-controlled wsmp.loop_start and wsmp.loop_length values to samples without invoking fluid_sample_validate() or fluid_sample_sanitize_loop(). A crafted DLS file can position loop points outside the sample buffer, producing out-of-bounds reads during audio rendering. The flaw is tracked under [CWE-122] and is fixed in version 2.5.6.

Critical Impact

A malicious DLS file processed by an application using FluidSynth can trigger out-of-bounds reads, causing memory disclosure, undefined behavior, and denial of service.

Affected Products

  • FluidSynth 2.5.0 through 2.5.5 (native DLS loader enabled)
  • Builds compiled with the CMake option enable-native-dls=ON
  • Downstream applications and distributions bundling vulnerable FluidSynth releases

Discovery Timeline

  • 2026-09-18 - CVE-2026-61721 published to NVD
  • 2026-09-23 - Last updated in NVD database

Technical Details for CVE-2026-61721

Vulnerability Analysis

The defect resides in the native DLS parser located in src/sfloader/fluid_dls.cpp. When constructing fluid_sample_t objects from parsed DLS data, the loader copies wsmp chunk fields directly into the sample descriptor. The loop boundaries (loop_start and loop_end) are attacker-controlled and never bounds-checked against the sample buffer extents defined by start and end. During playback, the audio rendering path reads sample data at those loop positions, dereferencing memory outside the allocated buffer.

Because the parser feeds untrusted values straight into the rendering engine, the resulting out-of-bounds read can leak adjacent heap memory into the audio output or crash the process. Builds compiled with enable-native-dls=OFF are not exposed, since the vulnerable parser is excluded at build time.

Root Cause

The loader omits the standard sample validation routines that other FluidSynth loaders apply. Specifically, fluid_sample_validate() and fluid_sample_sanitize_loop() are never called for samples produced by the native DLS path. Without these checks, invalid loop ranges bypass all guardrails and are treated as authoritative sample metadata.

Attack Vector

Exploitation requires an application built against a vulnerable FluidSynth release to load an attacker-supplied DLS file. This can occur through a music player, game engine, or MIDI rendering service that accepts user-supplied sound banks. No authentication or user interaction beyond opening the file is required by the library itself.

cpp
// Patch excerpt from src/sfloader/fluid_dls.cpp
//   Fix a Heap buffer overrun for DLS samples (GHSA-59ph-rx8r-8p4j)
            std::runtime_error{ "Exception thrown while allocating fluid_sample_t" });
    }

+   bool invalid_loops_were_sanitized = false;
    for(auto &sample : samples)
    {
-       auto &fluid = samples_fluid.emplace_back();
+       fluid_sample_t fluid;
        fluid.start = sample.start;
        fluid.end = sample.end - 1;
        fluid.samplerate = sample.samplerate;

Source: FluidSynth commit 2354c2a. The patch restructures sample construction so that loop values are validated and sanitized before being committed to the sample list.

Detection Methods for CVE-2026-61721

Indicators of Compromise

  • Crashes or segmentation faults in processes linked against libfluidsynth when opening .dls files
  • Audio output containing unexpected noise patterns consistent with uninitialized heap memory being rendered
  • Unusual file-open telemetry showing untrusted DLS files being loaded by media applications or MIDI services

Detection Strategies

  • Inventory installed FluidSynth versions across Linux, macOS, and Windows hosts and flag any build earlier than 2.5.6
  • Inspect distribution package metadata to identify whether FluidSynth was compiled with enable-native-dls=ON
  • Use AddressSanitizer or Valgrind in test environments to surface out-of-bounds reads when parsing DLS corpora

Monitoring Recommendations

  • Alert on repeated crashes of audio, game, or MIDI processes that consume user-supplied sound banks
  • Monitor endpoints for DLS files delivered through email, chat, or download channels and correlate with FluidSynth process activity
  • Track patch adoption of fluidsynth packages via configuration management and vulnerability scanning tools

How to Mitigate CVE-2026-61721

Immediate Actions Required

  • Upgrade FluidSynth to version 2.5.6 or later on every affected host and container image
  • Rebuild any statically linked applications that embed FluidSynth against the patched release
  • Restrict which users and services can supply DLS files to applications that call into FluidSynth

Patch Information

The fix is included in the FluidSynth v2.5.6 release and documented in GitHub Security Advisory GHSA-59ph-rx8r-8p4j. The upstream commit adding sample validation and loop sanitization for the native DLS loader is commit 2354c2a.

Workarounds

  • Rebuild FluidSynth with the CMake option -Denable-native-dls=OFF to remove the vulnerable parser entirely
  • Block or filter .dls files at email gateways and file-sharing services until patching completes
  • Run FluidSynth-dependent services under sandboxing (for example, seccomp or AppArmor) to limit the impact of memory disclosure
bash
# Rebuild FluidSynth without the native DLS loader as a temporary mitigation
cmake -S fluidsynth -B build \
  -DCMAKE_BUILD_TYPE=Release \
  -Denable-native-dls=OFF
cmake --build build --parallel
cmake --install build

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.