Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft malicious IT module with >200 pattern rows
-
DeliveryDeliver file to victim (download/mod/attachment)
-
ExploitVictim loads module in libmikmod app
-
ExecutionIT_ConvertTrack reads past itpat heap buffer
-
ImpactApplication crash (denial of service)
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK
1 technique across 1 tactic: Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires a victim application that links libmikmod before 3.3.14 to load/parse an attacker-supplied Impulse Tracker (.it) module whose pattern data exceeds the hardcoded 200-row limit (itpat is allocated as 200*64 ITNOTE entries in load_it.c); the oversized pattern is the exact trigger. Limiting factors: the vector is local (AV:L) and demands passive user interaction (UI:P) - the victim must open or play the crafted file - there is no network-remote path, and impact is confined to a crash (availability only), with no confidentiality/integrity effect and no authentication needed. Risk is therefore bounded to environments where untrusted module files are opened in vulnerable libmikmod-based software. |
| Impact | This is a moderate, defensively-scoped issue rather than a top-tier priority. The vendor-provided CVSS 4.0 vector (CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H) describes a local, low-complexity, unauthenticated flaw that requires passive user interaction and whose only impact is availability (VA:H) - i.e. an application crash - with no confidentiality or integrity impact (VC:N/VI:N). This is consistent with a CWE-125 out-of-bounds READ whose practical outcome, per the description and the source-code evidence, is a crash when IT_ConvertTrack() walks past the fixed 200-row itpat buffer. Note a tension worth flagging: the CVE is tagged 'Information Disclosure' and the primitive is an adjacent-heap read, yet the CVSS sets VC:N and the description states the result is a crash - so the realistic impact is denial of service, not attacker-usable data leakage; verify with the vendor advisory if leakage matters to you. No EPSS score was supplied, KEV status is NO (not CISA-listed), and no public exploit was provided in the intelligence set, so exploitation is 'no public exploit identified at time of analysis.' Combined with the local vector and required user interaction, real-world risk is low-to-moderate: it is a file-parsing DoS against software embedding a somewhat niche audio library, not a remotely-wormable or data-exfiltration bug. |
| Exploit ScenarioDerived | An attacker crafts a malicious Impulse Tracker (.it) module containing more than 200 pattern rows and distributes it (e.g. as a downloadable song file or game mod). When a victim opens or plays the file in an application built on libmikmod before 3.3.14, IT_ConvertTrack() reads past the 200-row itpat heap buffer, reading adjacent heap memory and crashing the host application. No public exploit code was identified in the provided intelligence. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 06, 2026
A heap out-of-bounds read in the Impulse Tracker loader of libmikmod before 3.3.14 lets a crafted .it module drive the parser past its pattern buffer, crashing the host application. Any program statically or dynamically linking the vulnerable library - classic MikMod-based players, games, and media tools - is exposed when it opens an untrusted module. The trigger is an oversized pattern of more than 200 rows, which overruns the hardcoded itpat allocation (200*64 ITNOTE entries) and causes IT_ConvertTrack() to read adjacent heap memory. The assessed impact is availability only (AV:L, UI:P, A:H) with no confidentiality or integrity loss, so there is no public exploit identified at time of analysis; the practical risk is a local denial of service against applications that parse attacker-supplied tracker files.
RemediationAI
Upgrade to libmikmod 3.3.14 or later, which raises the itpat allocation and its memset bound from 200*64 to 256*64 ITNOTE entries (upstream commit https://github.com/sezero/mikmod/commit/e7c6c9e88fbe3e8af4668a2e116bb8de341383f8); the fix has no functional downside and is the only reliable correction, so downstream projects that vendor or statically link the library must rebuild against the patched source rather than relying on a system package update. If immediate upgrading is not possible, the practical compensating control is to avoid opening or auto-playing untrusted .it modules in libmikmod-based software and to treat such files as untrusted input - scanning or rejecting untrusted tracker files before they reach the player, or running the parsing application in a restricted sandbox/container so a crash cannot affect other workloads. Note that these are stopgaps only: they reduce exposure but leave the out-of-bounds read intact, and because the trigger is simply a pattern exceeding 200 rows it cannot be reliably filtered by content inspection. Reference the vendor guidance at https://github.com/sezero/mikmod and the VulnCheck advisory https://www.vulncheck.com/advisories/libmikmod-before-3.3.14-heap-out-of-bounds-read-via-it-module-loader when tracking remediation.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
libmikmod (the sezero-maintained fork tracked as cpe:2.3:a:sezero:libmikmod) is a portable module playback library that parses many tracker formats, including Impulse Tracker (.it) modules. In libmikmod/loaders/load_it.c, the IT_Init() routine allocates the global pattern buffer itpat as a fixed 200*64 array of ITNOTE structures, and IT_ReadPattern()/IT_ConvertTrack() assume that ceiling when converting track data. The Impulse Tracker format permits patterns with more rows than that hardcoded assumption, so a module declaring more than 200 pattern rows makes the converter index past the end of itpat and read unrelated heap memory (CWE-125, out-of-bounds read) before dereferencing or copying out-of-range values, which terminates the process. The upstream commit e7c6c9e88fbe3e8af4668a2e116bb8de341383f8 corrects the root cause by enlarging the allocation and the corresponding memset bound from 200*64 to 256*64 ITNOTE entries, aligning the buffer with the maximum row count the format can express. Because the library is commonly vendored or statically linked into third-party players, the vulnerable parsing code may persist even after a system-level library upgrade.
Know when Libmikmod gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Local file-parsing flaw needing the victim to open a crafted module (AV:L/UI:R), no privileges (PR:N); impact is an application crash only, so C:N/I:N/A:H.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
libmikmod before 3.3.14 contains a heap out-of-bounds read vulnerability in the Impulse Tracker loader load_it.c that allows attackers to read adjacent heap memory via oversized patterns. Attackers can supply a crafted IT module with more than 200 pattern rows, causing IT_ConvertTrack() to read past the itpat buffer and crash applications.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Heap buffer overflow in libmikmod's Oktalyzer (.okt) loader lets a crafted module corrupt heap memory and potentially ac
Heap buffer overflow in libmikmod before 3.3.14 is triggered when an application linked against the library parses a cra
A heap out-of-bounds read in libmikmod's IMF_Load() loader (CWE-125) lets a crafted Imago Orpheus (IMF) module map notes
Loading a crafted MultiTracker (.mtm) module file with a declared channel count above 32 in applications linked against
EUVD-2026-93390
GHSA-xrff-r355-6xmr
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB