Skip to main content

VMime CVE-2026-116739

| EUVDEUVD-2026-110487 MEDIUM
Use of Uninitialized Resource (CWE-908)
2026-10-26 VulnCheck GHSA-qvwh-gpqc-cpp8
5.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Craft uuencode part with oversized line-length byte
  2. Delivery
    Deliver MIME message to target application
  3. Exploit
    VMime decoder processes over-long line
  4. Execution
    Uninitialized stack bytes copied into decoded output
  5. Impact
    Attacker recovers leaked stack memory

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Variable initialization
Exploitation Conditions

The target application must use VMime (through 0.9.2) to decode a uuencode or x-uuencode encoded MIME part supplied by the attacker; the attacker crafts that part with a line-length byte larger than the line's actual data so the decoder writes uninitialized stack memory into output. The leak is limited to up to 15 bytes of stack contents per over-long line. The key limiting factor is that the attacker-controlled message must be parsed/decoded by the victim application (UI:P / UI:R) and the leaked bytes must be observable in the resulting decoded attachment; no authentication is required (PR:N).

Impact

This is a genuine but low-to-moderate priority information-disclosure flaw (CWE-908), not a high-severity emergency. The signals are consistent and point the same direction: the input CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:N/VA:N) scores 5.3 (Medium), EPSS is low at 0.25% (17th percentile), and there is no CISA KEV listing, so there is no public evidence of active exploitation. The vuln.today decision label is 'this_month' rather than act_now/emergency, which aligns with a modest-impact confidentiality leak. The one meaningful caveat is the UI:P metric: although the attack vector is network-reachable, exploitation requires the victim application to actually parse/decode an attacker-supplied uuencode MIME part, so this is not a pure zero-interaction remote bug. Impact is bounded - the source diff confirms the flaw leaks only small amounts (up to 15 bytes per over-long line) of uninitialized stack memory into decoded output, which is a disclosure primitive (potentially useful for leaking adjacent secrets or defeating ASLR) rather than code execution. PoC references exist (a hackmd writeup and a VulnCheck advisory) but are not verified as working exploit code, so POC availability should not be read as confirmed exploitation.

Exploit ScenarioDerived

An attacker sends an email or other MIME message containing a crafted uuencode or x-uuencode part whose line-length byte is larger than the data the line actually holds. When the target application uses VMime (≤0.9.2) to decode that attachment, the decoder emits uninitialized stack bytes into the decoded output, leaking up to 15 bytes of stack memory per over-long line back to the attacker in the resulting attachment. A public PoC reference exists (hackmd writeup and VulnCheck advisory); it is not verified as working exploit code.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 28, 2026

Information disclosure in the VMime C++ MIME library through 0.9.2: the uuEncoder::decode routine trusts the line-length byte of a uuencode/x-uuencode part, so a crafted part with an over-long length byte causes uninitialized stack memory to be written into the decoded output - up to 15 bytes of stack contents per over-long line. Affected are applications that use VMime (kisli:vmime, all versions up to and including 0.9.2) to parse attacker-supplied MIME messages; no authentication is required, but the victim must have the crafted message decoded by the application (UI:P in the CVSS 4.0 vector, UI:R in the assessed 3.1 vector), and the leaked bytes are only useful if they are observable in the resulting decoded attachment. There is no CISA KEV entry and EPSS is low (0.25%, 17th percentile), no public exploit code has been confirmed at time of analysis, and the vendor has published a fix upstream (PR #363, commit e85925ed); this is a genuine but low-to-moderate priority flaw rather than an emergency.

RemediationAI

Vendor-released fix: the upstream project merged the correction in PR https://github.com/kisli/vmime/pull/363, commit https://github.com/kisli/vmime/commit/e85925eddc638939f0eeb7ee55ec047d04a760d8, which clamps the uuencode line length to 48 bytes, bounds the decode copy by the remaining output length, and hardens the begin/end marker parsing and the string/region input-stream adapters; no tagged release version containing the commit is stated in the available data, so downstream integrators must confirm whether their vendor has shipped a build that includes it ("Patch available per vendor advisory"). Until a rebuilt VMime is deployed, the practical compensating control is to stop attacker-controlled uuencode from reaching the decoder: reject or quarantine MIME parts whose Content-Transfer-Encoding is uuencode or x-uuencode at the mail gateway or in the application's own MIME policy, or strip/convert those parts before parsing - the trade-off is that legacy messages relying on uuencode will be dropped or their attachments lost. Because exploitation requires the crafted part to be decoded and the 15-byte-per-line stack residue to be visible in the resulting attachment, treating decoded uuencode output as untrusted (not auto-forwarding, not exposing raw decoded attachments to remote users) reduces the chance of disclosure, but the vendor's fix is the only complete remediation. Track vendor status via https://github.com/kisli/vmime and the advisories at https://www.vulncheck.com/advisories/vmime-through-0.9.2-uninitialized-stack-memory-disclosure-via-uuencode-decoder and https://nvd.nist.gov/vuln/detail/CVE-2026-116739.

Affected VersionsENISA

vmime 0 ≤0.9.2

Affected Packages

euvd vmime 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

VMime is a GPL C++ library used by mail clients, gateways and server-side tools to build, parse and decode MIME messages, including legacy uuencode/x-uuencode content-transfer-encodings. The root cause is CWE-908 (use of uninitialized resource) in src/vmime/utility/encoder/uuEncoder.cpp: the decoder derives the claimed output length from the line's length character via UUDECODE(lengthChar) and then caps the encoded input length at min((outLength*4)/3, 64), but the inner conversion loop is bounded by inLength - i rather than by the remaining decoded length, so a length byte claiming more data than the line actually carries lets the decoder consume padding beyond the real encoded characters and emit bytes from an uninitialized stack buffer into the decoded stream. Because uuencode lines are fixed-size groups, the practical leak is small and per-line - up to 15 bytes of stack residue for each over-long line - and its value depends on what the host application does with the decoded attachment. The upstream fix clamps the decoded line length to 48 bytes (45 data bytes plus incomplete final group) and recomputes the encoded length as ((outLength + 2) / 3) * 4, bounds the copy by outLength - j, and additionally repairs related parsing defects: the 'begin' prelude probe could read past the end of the line, modeStart/filenameStart were mis-anchored to the buffer instead of the current pointer, an inPos > inLength underflow guard was added, and the inputStreamStringAdapter and seekableInputStreamRegionAdapter bounds checks were rewritten to avoid overflow in m_pos + count comparisons. Note that the CVSS 4.0 vector carries AV:N/AC:L/AT:N/PR:N, i.e. network-reachable and unauthenticated, and that the CPE (cpe:2.3:a:kisli:vmime:*:*:*:*:*:*:*:*) together with the EUVD range "vmime 0 <= 0.9.2" indicates every released version through 0.9.2 is affected; the trigger details above are taken from the supplied source diff and description.

Know when Vmime 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 5.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
vuln.today AI 4.3 MEDIUM

Network-delivered MIME part requires the victim application to decode it (UI:R); only small amounts of uninitialized stack are disclosed, so C:L with no integrity or availability impact.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

DescriptionCVE.org

VMime through 0.9.2 contains an information disclosure vulnerability in the uuEncoder::decode function that writes uninitialized stack memory into decoded output for over-long lines. Attackers can send a crafted uuencode or x-uuencode MIME part with a large line length byte to leak up to 15 bytes of stack contents per line in decoded attachments.

Threat Intelligence Overview

EPSS Score
0.3%
Top 83% exploitable
Prevalence
Low
niche open-source C++ MIME library, limited specialized deployment footprint
Data Quality
5 sources
Confidence: Medium

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 No
EPSS 0.3%
Patch available Yes
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· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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