Description
libmodplug through 0.8.9.1 contains a heap-based out-of-bounds write in CSoundFile::ReadDSM() in src/load_dsm.cpp because nPat is never checked against MAX_PATTERNS. Attackers can supply a crafted DSM file with over 240 PATT chunks or a wrapping patt_len value to corrupt heap memory and crash the consuming process.
Published: 2026-10-15
Score: 6.9 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service
Action: Immediate Patch
AI Analysis

Impact

libmodplug implements a heap‑based out‑of‑bounds write in CSoundFile::ReadDSM because the variable nPat is never checked against the defined maximum number of patterns. An attacker can feed a crafted DSM file containing more than 240 PATT chunks or a wrapped patt_len value, causing the pattern table to be written past its allocated bounds. The resulting memory corruption can crash the program that reads the file. The weakness is a classic buffer overrun scenario identified as CWE‑787, and no evidence in the description indicates that it leads to code execution or privilege escalation.

Affected Systems

The vulnerability exists in Konstanty Bialkowski’s libmodplug library up through version 0.8.9.1; any software that links to an earlier release of libmodplug is affected.

Risk and Exploitability

The CVSS score of 6.9 indicates a moderate to high severity. The EPSS score is less than 1 percent, indicating a very low likelihood of exploitation, and the vulnerability is not listed in CISA’s KEV catalog, suggesting no widespread exploitation reports yet. The likely attack vector is the supply of a malicious DSM file to an application that parses such files—this can be done locally by a user or potentially remotely if the target software accepts DSM files from a network source. Exploitation would cause the target application to terminate, representing a denial‑of‑service for any user or service relying on that process. No privileged escalation or data disclosure is expected from the described behavior.

Generated by OpenCVE AI on October 16, 2026 at 16:09 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade libmodplug to the latest released version that includes the fixed bounds check on nPat.
  • If an immediate upgrade is not possible, disable or remove support for DSM files in the application, or restrict processing to files from trusted sources only.
  • Apply the community patch or manually edit src/load_dsm.cpp to enforce a bound on nPat before accessing the pattern array as a temporary workaround.

Generated by OpenCVE AI on October 16, 2026 at 16:09 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 15 Oct 2026 22:00:00 +0000

Type Values Removed Values Added
Description libmodplug through 0.8.9.1 contains a heap-based out-of-bounds write in CSoundFile::ReadDSM() in src/load_dsm.cpp because nPat is never checked against MAX_PATTERNS. Attackers can supply a crafted DSM file with over 240 PATT chunks or a wrapping patt_len value to corrupt heap memory and crash the consuming process.
Title libmodplug through 0.8.9.1 Heap Out-of-Bounds Write via CSoundFile::ReadDSM
First Time appeared Konstanty Bialkowski
Konstanty Bialkowski libmodplug
Weaknesses CWE-787
CPEs cpe:2.3:a:konstanty_bialkowski:libmodplug:*:*:*:*:*:*:*:*
Vendors & Products Konstanty Bialkowski
Konstanty Bialkowski libmodplug
References
Metrics cvssV3_1

{'score': 6.1, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:H'}

cvssV4_0

{'score': 6.9, 'vector': 'CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:L/VA:H/SC:N/SI:N/SA:N'}


Subscriptions

Konstanty Bialkowski Libmodplug
cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-10-15T21:43:17.665Z

Reserved: 2026-10-15T19:33:19.371Z

Link: CVE-2026-111270

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Deferred

Published: 2026-10-15T22:19:27.820

Modified: 2026-10-16T18:25:45.343

Link: CVE-2026-111270

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-17T13:45:08Z

Weaknesses