Skip to main content

smpeg CVE-2026-112010

| EUVDEUVD-2026-103463 MEDIUM
Integer Underflow (CWE-191)
2026-10-18 VulnCheck GHSA-xc26-7mh2-w5rr
6.8
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Craft malformed MPEG with undersized packet length
  2. Delivery
    Deliver file to victim using smpeg app
  3. Exploit
    Victim opens file via SMPEG_new* API
  4. Execution
    Integer underflow wraps packet_size in stream_header()
  5. Persist
    Trigger reachable assertion or out-of-bounds copy
  6. Impact
    Application crashes (denial of service)

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Integer underflow checks
Exploitation Conditions

Exploitation requires a victim application built on smpeg (through version 2.0.0) to open an attacker-supplied, crafted MPEG file through SMPEG_new, SMPEG_new_rwops, or SMPEG_new_data; the malicious file must declare an undersized packet length in the MPEG system header so that stream_header() in MPEGsystem.cpp underflows and wraps packet_size. Limiting factors: the attack is local (AV:L) and requires user/application interaction to open or process the hostile file (UI:P) - there is no remote, unauthenticated network trigger. No special non-default configuration is needed beyond the application actually parsing untrusted MPEG input, and the realistic outcome is limited to a crash/denial of service, not code execution or data compromise per the provided data.

Impact

This is a moderate-risk, availability-only defect rather than a high-priority emergency. The provided CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H) scores 6.8 and is internally consistent with the description: exploitation is local, requires passive user interaction (a victim opening a crafted file), and yields only an availability impact (crash/DoS) with no confidentiality or integrity impact. Publicly available exploit code exists (reported by VulnCheck, with a HackMD writeup referenced), which raises practical likelihood, but there is NO CISA KEV listing and no EPSS score was provided in the input, so there is no evidence of active, widespread exploitation - the signal is 'POC exists,' not 'exploited in the wild.' One cross-source nuance to verify: the HackMD reference and CWE context describe an out-of-bounds READ, which can imply a potential confidentiality/info-leak angle, yet the official description and the CVSS vector characterize the outcome strictly as a crash (VA:H, VC:N) via reachable assertion or OOB copy; treat info-disclosure as unconfirmed and DoS as the confirmed impact. Overall this is a genuine but low-urgency bug: a DoS in a largely legacy media library, meaningful for software that embeds smpeg and parses untrusted MPEG input, but not a mass-exploitation threat.

Exploit ScenarioDerived

An attacker crafts a malformed MPEG file whose system-header packet declares an undersized length, then delivers it to a victim application that embeds smpeg (e.g., an SDL-based game or media tool). When the victim opens the file via SMPEG_new/SMPEG_new_rwops/SMPEG_new_data, the integer underflow in stream_header() wraps packet_size and triggers a reachable assertion or out-of-bounds copy, crashing the process. Public exploit/PoC material is available (VulnCheck advisory and a HackMD technical writeup), lowering the effort to reproduce.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 18, 2026

An MPEG system header that declares an undersized packet length causes an integer underflow in stream_header() in MPEGsystem.cpp, wrapping packet_size and letting a crafted file crash any application built on smpeg through version 2.0.0. The attack is local (AV:L) and requires a victim to open the hostile MPEG file through SMPEG_new, SMPEG_new_rwops, or SMPEG_new_data, so exploitation is limited to denial of service via reachable assertion or out-of-bounds copy; there is no path to code execution or data exposure in the assessed impact. Publicly available exploit code exists, but the issue is not in CISA KEV and no active exploitation is confirmed - it is a moderate, availability-only defect rather than a high-priority emergency.

RemediationAI

No vendor-released patch identified at time of analysis - no fixed smpeg release version is referenced in the available data (smpeg 2.0.0, the latest listed version, remains affected), so monitor https://github.com/icculus/smpeg and the VulnCheck advisory for an upstream commit or tagged release and backport the stream_header() fix once published. Because public exploit code exists, prioritize compensating controls: do not open untrusted or untrusted-origin MPEG files with smpeg-based applications, and where that is unavoidable, transcode or re-mux media with a hardened parser (for example ffmpeg) before handing it to smpeg consumers, accepting the added processing step and format-fidelity loss. Run smpeg-decoding processes under a low-privilege account with a supervisor or watchdog that restarts on crash so the reachable assertion becomes a contained restart rather than an outage, and cap memory/CPU with rlimits and cgroups to limit the impact of the oversized copy - the trade-off is reduced decode throughput and the need to tune limits per workload. If you maintain the library in-tree, add a validation that rejects system-header packets whose declared length is below the minimum required before any size subtraction, patch stream_header() locally to clamp packet_size, and build with assertions enabled in test environments so malformed inputs fail fast; note that locally patched builds must be re-validated against the reference write-up to confirm the underflow is actually closed.

Affected VersionsENISA

smpeg 0 ≤2.0.0

Affected Packages

euvd smpeg no fix

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

smpeg is an open-source MPEG-1 audio/video decoding library (the icculus.org fork of Loki's SMPEG), commonly linked into SDL-based games, media players and tooling that call the SMPEG_new family of entry points. MPEGsystem.cpp implements the system-stream demuxer that walks MPEG pack headers and the system header table, reading declared packet lengths before sizing buffers and copying payload data. CWE-191 (integer underflow) is the root cause: the parser subtracts a declared packet length from an internal remaining/total length without validating that the declared value is at least the required minimum, so an undersized length wraps an unsigned size computation and produces a hugely oversized packet_size. The wrapped value is then used downstream, tripping an assertion in debug builds and driving an out-of-bounds read/copy in release builds. Because the flaw lives in the file-format parser rather than in a network service, the trust boundary is the open() of an untrusted media file, which is why the assessed vector is local with user interaction (CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H) rather than a remotely reachable condition.

Know when Smpeg 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

Vendor (VulnCheck) PRIMARY 6.8 MEDIUM
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
vuln.today AI 5.5 MEDIUM

Local file parsing with no privileges but mandatory user action to open the crafted file (AV:L, PR:N, UI:R); impact is a crash only, so C:N/I:N/A:H.

3.1 AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
4.0 AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

smpeg through 2.0.0 contains an integer underflow vulnerability in stream_header() in MPEGsystem.cpp that allows attackers to wrap packet_size by declaring an undersized packet length. Attackers can supply a crafted MPEG file opened via SMPEG_new, SMPEG_new_rwops or SMPEG_new_data to trigger a reachable assertion or out-of-bounds copy, crashing the application.

Threat Intelligence Overview

Prevalence
Low
legacy SDL MPEG decoding library, niche and largely unmaintained footprint
Exploit
POC
Public exploit code exists
Data Quality
5 sources
Confidence: Medium
EUVD NVD CVE.org Vulnrichment GitHub

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC Yes
EPSS N/A
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

54
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Integer overflow occurs when an arithmetic operation produces a result that exceeds the maximum value a given integer type can store.

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy