CVE-2026-61720
FluidSynth: SF2 DMOD Chunk Unsigned Underflow
CVE-2026-61720 is a medium vulnerability (CVSS 6.2) in Fluidsynth, published July 24, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.18%, the 8th percentile. Fixed in fluidsynth 2.5.6+dfsg-1.
FluidSynth is a software synthesizer based on the SoundFont 2 specifications. From 2.5.0 until 2.5.6, the SF2 parser computes the DMOD modulator count as chunk.size / SF_MOD_SIZE - 1 without rejecting chunks smaller than one record. A crafted SF2 file containing a zero-sized DMOD chunk makes the unsigned subtraction wrap to UINT_MAX, and the parser then attempts billions of SFMod allocations. This exhausts process memory and causes denial of service. No workaround is available. This issue is fixed in version 2.5.6.
Attack profile
How easy it is to exploit
- Attack vector
- Local
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
6.2
FluidSynth: SF2 DMOD Chunk Unsigned Underflow
FluidSynth is a software synthesizer based on the SoundFont 2 specifications. From 2.5.0 until 2.5.6, the SF2 parser computes the DMOD modulator count as chunk.size / SF_MOD_SIZE - 1 without rejecting chunks smaller than one record. A crafted SF2 file containing a zero-sized DMOD chunk makes the unsigned subtraction wrap to UINT_MAX, and the parser then attempts billions of SFMod allocations. This exhausts process memory and causes denial of service. No workaround is available. This issue is fixed in version 2.5.6.
- Record
CVE-2026-61720- CVSS 3.1
- 6.2 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-191
- Updated
- 2026-11-02
EUVDEUVD-2026-83379
6.2
FluidSynth is a software synthesizer based on the SoundFont 2 specifications. From 2.5.0 until 2.5.6, the SF2 parser computes the DMOD modulator count as chunk.size / SF_MOD_SIZE - 1 without rejecting chunks smaller than one record. A crafted SF2 file containing a zero-sized DMOD chunk makes the unsigned subtraction wrap to UINT_MAX, and the parser then attempts billions of SFMod allocations. This exhausts process memory and causes denial of service. No workaround is available. This issue is fixed in version 2.5.6.
- Record
EUVD-2026-83379- CVSS 3.1
- 6.2 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
NVD
6.2
FluidSynth is a software synthesizer based on the SoundFont 2 specifications. From 2.5.0 until 2.5.6, the SF2 parser computes the DMOD modulator count as chunk.size / SF_MOD_SIZE - 1 without rejecting chunks smaller than one record. A crafted SF2 file containing a zero-sized DMOD chunk makes the unsigned subtraction wrap to UINT_MAX, and the parser then attempts billions of SFMod allocations. This exhausts process memory and causes denial of service. No workaround is available. This issue is fixed in version 2.5.6.
- Record
CVE-2026-61720- CVSS 3.1
- 6.2 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-191
- Updated
- 2026-11-02
OSV
6.2
FluidSynth: SF2 DMOD Chunk Unsigned Underflow
FluidSynth is a software synthesizer based on the SoundFont 2 specifications. From 2.5.0 until 2.5.6, the SF2 parser computes the DMOD modulator count as chunk.size / SF_MOD_SIZE - 1 without rejecting chunks smaller than one record. A crafted SF2 file containing a zero-sized DMOD chunk makes the unsigned subtraction wrap to UINT_MAX, and the parser then attempts billions of SFMod allocations. This exhausts process memory and causes denial of service. No workaround is available. This issue is fixed in version 2.5.6.
- Record
CVE-2026-61720- CVSS 3.1
- 6.2 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-191
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-61720
6.2
FluidSynth is a software synthesizer based on the SoundFont 2 specifications. From 2.5.0 until 2.5.6, the SF2 parser computes the DMOD modulator count as chunk.size / SF_MOD_SIZE - 1 without rejecting chunks smaller than one record. A crafted SF2 file containing a zero-sized DMOD chunk makes the unsigned subtraction wrap to UINT_MAX, and the parser then attempts billions of SFMod allocations. This exhausts process memory and causes denial of service. No workaround is available. This issue is fixed in version 2.5.6.
- Record
DEBIAN-CVE-2026-61720- CVSS 3.1
- 6.2 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVOESA-2026-3167
8.0
fluidsynth security update
FluidSynth is a free software synthesizer. Its currently based on the SoundFont 2 specifications and supports real time MIDI effect controls. It can be used as a shared library for embedding in other applications, can play MIDI files and has a command line shell. Many other applications use FluidSynth for audio synthesis.
Security Fix(es):
A heap-based buffer overflow was discovered in fluidsynth's MIDI player. When the synth is configured with synth.midi-channels > 16 an out-of-bounds memory access is performed on the array _fluid_player_t::channel_isplaying in heap memory invoking undefined behavior. No crafted MIDI file is required to expose this vulnerability.(CVE-2026-61714)
An unsigned integer overflow in fluidsynth's SF2 parser was discovered. The DMOD chunk handler calculates modulator count as chunk.size / SF_MOD_SIZE - 1. When chunk.size = 0, the division yields 0 and the unsigned subtraction wraps to UINT_MAX (4,294,967,295). The guard check passes because 0 % 10 == 0. The loop iterates billions of times, allocating an SFMod struct per iteration until causing a denial of service via out-of-memory.(CVE-2026-61720)
Fluidsynth's native DLS loader sets sample loop points from file-sourced wsmp.loop_start and wsmp.loop_length values without calling fluid_sample_validate() or fluid_sample_sanitize_loop(). Crafted DLS files with loop values exceeding the sample buffer cause out-of-bounds reads during audio rendering, invoking undefined behavior and denial of service.(CVE-2026-61721)
An integer overflow was discovered in fluidsynth's native DLS parser. The expression cbsize + connblocks * 12 overflows for connblocks = 0x40000001. The loop reads 12 bytes per iteration for ~1 billion iterations (~12.8 GB total) past the chunk boundary.(CVE-2026-61722)
An integer overflow was discovered in fluidsynth's native DLS parser. The ptbl chunk validation uses uint32_t arithmetic: cues * 4 + cbsize != subchunk.size. For cues = 0x40000002 and cbsize = 8, the multiplication overflows: 0x40000002 * 4 = 0x100000008, truncated to 0x8. The check 8 + 8 = 16 == subchunk.size passes. The subsequent poolcues.resize(cues) attempts a ~4GB allocation, and the loop reads billions of entries past the file's chunk boundary.(CVE-2026-61723)
- Record
OESA-2026-3167- CVSS 3.1
- 8.0 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:H - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-61720
6.2
FluidSynth is a software synthesizer based on the SoundFont 2 specifications. From 2.5.0 until 2.5.6, the SF2 parser computes the DMOD modulator count as chunk.size / SF_MOD_SIZE - 1 without rejecting chunks smaller than one record. A crafted SF2 file containing a zero-sized DMOD chunk makes the unsigned subtraction wrap to UINT_MAX, and the parser then attempts billions of SFMod allocations. This exhausts process memory and causes denial of service. No workaround is available. This issue is fixed in version 2.5.6.
- Record
UBUNTU-CVE-2026-61720- CVSS 3.1
- 6.2 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
fluidsynthDebian:14 |
before 2.5.6+dfsg-1, plus listed versions 2.4.4+dfsg-12.4.6+dfsg-12.4.7+dfsg-12.4.7+dfsg-22.4.8+dfsg-1 Show 8 moreShow less2.5.0+dfsg-12.5.1+dfsg-12.5.1+dfsg-22.5.2+dfsg-12.5.3+dfsg-12.5.4+dfsg-12.5.5+dfsg-12.5.5+dfsg-2 |
2.5.6+dfsg-1 |
fluidsynthopenEuler:24.03-LTS-SP4 |
before 2.5.6-1.oe2403sp4 | 2.5.6-1.oe2403sp4 |
fluidsynthUbuntu:Pro:14.04:LTS |
All versions, plus listed versions 1.1.6-21.1.6-2ubuntu0.1~esm1 |
None known |
fluidsynthUbuntu:Pro:16.04:LTS |
All versions, plus listed versions 1.1.6-2build11.1.6-31.1.6-3ubuntu0.1~esm1 |
None known |
fluidsynthUbuntu:Pro:18.04:LTS |
All versions, plus listed versions 1.1.6-41.1.8-11.1.8-21.1.8-31.1.9-11.1.9-1ubuntu0.1~esm1 |
None known |
fluidsynthUbuntu:Pro:20.04:LTS |
All versions, plus listed versions 1.1.11-41.1.11-4ubuntu12.1.0-12.1.1-22.1.1-2ubuntu0.1~esm1 |
None known |
fluidsynthUbuntu:Pro:22.04:LTS |
All versions, plus listed versions 2.1.7-1.12.2.4-22.2.5-12.2.5-1ubuntu0.1~esm1 |
None known |
fluidsynthUbuntu:Pro:24.04:LTS |
All versions, plus listed versions 2.3.3-2.12.3.4-12.3.4-1build12.3.4-1build22.3.4-1build32.3.4-1ubuntu0.1~esm1 |
None known |
fluidsynthUbuntu:Pro:26.04:LTS |
All versions, plus listed versions 2.4.7+dfsg-22.4.8+dfsg-12.4.8+dfsg-1ubuntu0.1~esm1 |
None known |
History
| When | Changed | Sources |
|---|---|---|
| 2026-11-02 | created | CVE List, EUVD, NVD, OSV |
References
github.com/FluidSynth/fluidsynth/security/advisories/GHSA-rmc4-c8hw-455w
github.com/FluidSynth/fluidsynth/commit/096e1ff0d09ddcac83d94923440706f76f94bc44
github.com/FluidSynth/fluidsynth/releases/tag/v2.5.6
github.com/CVEProject/cvelistV5/tree/main/cves/2026/61xxx/CVE-2026-61720.json
nvd.nist.gov/vuln/detail/CVE-2026-61720
security-tracker.debian.org/tracker/CVE-2026-61720
Show 7 moreShow less
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-3167
nvd.nist.gov/vuln/detail/CVE-2026-61714
nvd.nist.gov/vuln/detail/CVE-2026-61721
nvd.nist.gov/vuln/detail/CVE-2026-61722
nvd.nist.gov/vuln/detail/CVE-2026-61723
ubuntu.com/security/CVE-2026-61720
cve.org/CVERecord?id=CVE-2026-61720