Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft uuencode part with oversized line-length byte
-
DeliveryDeliver MIME message to target application
-
ExploitVMime decoder processes over-long line
-
ExecutionUninitialized stack bytes copied into decoded output
-
ImpactAttacker 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
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
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
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
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.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
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
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
EUVD-2026-110487
GHSA-qvwh-gpqc-cpp8
NVD
CVE.org
EPSS
Exploit-DB