Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessDeliver crafted .okt module to victim
-
DeliveryVictim loads file in libmikmod app
-
ExploitSLEN chunk overflows 16-bit numtrk
-
ExecutionPBOD writes past track-pointer heap buffer
-
ImpactHeap corruption yields crash or code execution
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Integer overflow checks
MITRE ATT&CK
1 technique across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires the victim to load or process an attacker-supplied Oktalyzer (.okt) module file in an application linked against libmikmod before 3.3.14, specifically reaching the OKT loader's OKT_doPBOD() path. The malicious file must set SLEN/pattern/channel values such that numpat * numchn exceeds 65535 and wraps the 16-bit numtrk field. Limiting factors: exploitation is local (AV:L) and demands user interaction (UI:P) - there is no remote network trigger in a default configuration; impact is bounded to contexts that parse untrusted OKT modules (games, media players, converters using the libmikmod OKT loader). Fixed versions (3.3.14+) reject the overflowing track count outright. |
| Impact | This is a genuine but conditionally-gated memory-corruption flaw rather than a drop-everything remote threat. The CVSS 4.0 base of 8.5 (High) is driven by full VC:H/VI:H/VA:H triad impact combined with PR:N and AC:L, but two metrics meaningfully constrain real-world risk: AV:L (local - the malicious OKT module must be processed on the victim system, not delivered over a network) and UI:P (the victim must open or load the crafted file). The integer overflow (CWE-190) is confirmed by the vendor source: of.numtrk = of.numpat * of.numchn wraps the 16-bit value, and the 3.3.14 patch adds an explicit >65535 bounds check, so the root cause and fix are unambiguous. No EPSS score, KEV listing, or public POC was provided in the input; the only exploit-adjacent artifact is the patch commit diff, which is not weaponized proof-of-concept code. Signals are therefore consistent rather than conflicting: high technical impact, but a local-plus-user-interaction delivery path and no evidence of active exploitation point to opportunistic/targeted risk (e.g., malicious media files) rather than mass exploitation. Prioritize patching in software that auto-parses untrusted module files, but this is not an internet-facing wormable issue. EPSS is missing - exploitation probability cannot be quantified from the data given. |
| Exploit ScenarioDerived | An attacker crafts a malicious Oktalyzer (.okt) module whose SLEN chunk forces numpat * numchn to overflow the 16-bit numtrk field, then distributes it as a music/game asset or tricks a user into opening it in an application built on libmikmod. When the OKT loader runs OKT_doPBOD(), PBOD data is written past the undersized track-pointer allocation, corrupting the heap for a crash or potential arbitrary code execution. No public exploit was identified in the provided data, though the vendor patch pinpoints the vulnerable multiplication. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 06, 2026
Heap buffer overflow in libmikmod's Oktalyzer (.okt) loader lets a crafted module corrupt heap memory and potentially achieve code execution, because a 16-bit track-count field (numtrk = numpat * numchn) can be made to wrap while pattern data is still written for the full, unwrapped track count. Any application linked against libmikmod before 3.3.14 is affected, and exploitation requires the victim to open or otherwise process an attacker-supplied .okt file, matching the independently assessed CVSS 3.1 vector AV:L/AC:L/PR:N/UI:R (7.8) rather than a remotely reachable condition. No public exploit identified at time of analysis, and the 3.3.14 release rejects overflowing track counts outright.
RemediationAI
Upgrade to libmikmod 3.3.14 or later, which contains the vendor-released fix rejecting numpat * numchn values above 65535 with MMERR_LOADING_PATTERN; the change is the commit at https://github.com/sezero/mikmod/commit/097b69281fad6ba38a553569e6f55dbfdd71dc2a and is recorded in the 3.3.14 NEWS entry (https://github.com/sezero/mikmod/blob/libmikmod-3.3.14/libmikmod/NEWS). Where upgrading an embedded or statically linked copy is impractical, apply the same product check as a patch, or drop and rebuild the affected package so the fix is compiled in rather than masked by a distro-level version string. Compensating controls carry side effects: disabling or refusing Oktalyzer/.okt input at the application layer removes the attack surface entirely but breaks legitimate Oktalyzer playback; restricting module loading to trusted, signed, or user-vetted files reduces exposure but relies on end-user discipline; and running the parsing application with reduced privileges or in a sandbox (seccomp/AppArmor, no network, limited filesystem write access) limits the post-corruption impact without preventing the overflow. Loading untrusted modules in a separate low-privilege process is the strongest interim measure because exploitation requires user interaction (UI:R) and local file handling rather than remote delivery. Additional details are in the vendor advisory at https://www.vulncheck.com/advisories/libmikmod-before-3.3.14-heap-buffer-overflow-via-okt-loader-okt-dopbod.
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 is a portable module-playing library used by games, media players and format converters to decode tracker formats; the flaw lives in the Oktalyzer loader (libmikmod/loaders/load_okt.c), specifically OKT_doPBOD(). Oktalyzer modules store chunk-based headers including a SLEN chunk that drives pattern and channel counts, and the loader derives a track count as of.numtrk = of.numpat * of.numchn, where numtrk is a 16-bit UWORD. The root cause is CWE-190 integer overflow: when numpat * numchn exceeds 65535 the product wraps to a small value, but the PBOD pattern-parsing path still writes track entries for the full logical count, so writes land past the heap allocation sized from the wrapped pointer count. The upstream fix (commit 097b69281fad6ba38a553569e6f55dbfdd71dc2a) computes the product in an unsigned int, rejects values greater than 65535 with MMERR_LOADING_PATTERN, and only then narrows to UWORD, so malformed modules are refused at load time. CPE data identifies the affected package as cpe:2.3:a:sezero:libmikmod, and the code link points to the vulnerable expression in the 3.3.13 loader source.
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:H/VI:H/VA:H/SC:N/SI:N/SA:N
File must be processed locally (AV:L) and opened by a user (UI:R); no privileges needed (PR:N); heap overflow enables potential code execution, so C/I/A:H with unchanged scope.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
libmikmod before 3.3.14 contains an integer overflow in the Oktalyzer loader OKT_doPBOD() that allows attackers to cause heap buffer overflow via crafted track counts. Attackers can supply an OKT module whose SLEN chunk wraps the 16-bit numtrk value, causing PBOD writes past allocated track pointers for crashes or code execution.
Executive ViewAI
A heap buffer overflow in libmikmod, a library used by many media and game applications to load module files, allows a malicious .okt file to execute code on an endpoint when opened by a user. Organizations with applications linked against libmikmod before version 3.3.14 are affected, and while no public exploit identified at time of analysis, a successful attack could compromise the user's system. Leadership should prioritize patching and restricting untrusted .okt files to protect endpoint integrity and data confidentiality.
Apply vendor patch.
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.
Integer overflow occurs when an arithmetic operation produces a result that exceeds the maximum value a given integer type can store.
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
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
A heap out-of-bounds read in the Impulse Tracker loader of libmikmod before 3.3.14 lets a crafted .it module drive the p
EUVD-2026-93391
GHSA-w386-36c3-r8wv
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB