Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSend crafted email with malformed RFC 2047 encoded-word
-
DeliveryMail gem invokes q_value_decode/b_value_decode on header
-
ExploitGreedy single-match regex decodes only first boundary, absorbing delimiters
-
ExecutionDecoded From/To value diverges from raw wire value
-
PersistApplication trusts decoded value for authz check or display
-
ImpactPhishing or authorization bypass succeeds
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V4 - API and Web Service Interpretation consistency
|
| Exploitation Conditions | Exploitation requires that an attacker can deliver a crafted email (containing a malformed RFC 2047 encoded-word in the From, To, or Reply-To display name or local-part) to a system running an unpatched mail gem (< 2.9.1) that parses the message using Mail::Utilities.q_value_decode or b_value_decode. The CVSS PR:N and UI:N indicate no authentication to the target application and no user interaction by the processing application are required - the flaw triggers purely on receipt and parsing of the crafted message. Exploitation is limited to scenarios where the application consumes the decoded header value for trust decisions (authorization checks, sender verification allowlists) or displays it to a human reviewer in a security-sensitive context; applications that treat all decoded display names as untrusted user input and do not make authorization decisions from them are not meaningfully exploited beyond cosmetic display differences. |
| Impact | The provided CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N, score 5.3) is consistent with the vulnerability: network-reachable, no authentication, no user interaction required by the processing application, low integrity impact. The I:L rating may understate impact in environments where decoded header values feed authorization logic - if an application gates actions on the decoded From address matching a trusted sender, header manipulation could constitute a meaningful security control bypass. No EPSS data was supplied; without active exploitation (no KEV entry) and no public POC, real-world risk is moderate and primarily affects email-processing pipelines that make trust decisions based on decoded header values rather than treating them as display-only. Applications that only render decoded headers to end-users are exposed to phishing risk. Applications that programmatically compare decoded sender/recipient values against allowlists are exposed to authorization bypass. The CVSS accurately captures the mechanics but defenders should weigh impact based on how decoded header values are consumed downstream. |
| Exploit ScenarioDerived | An attacker sends an email with a crafted From header such as 'From: =?UTF-8?Q?trusted-sender?Q?@corp.example.com?=@attacker.com' to a Ruby application that parses inbound mail using the unpatched mail gem. The vulnerable q_value_decode processes only the first encoded-word boundary greedily, causing the decoded From value to appear as 'trusted-sender@corp.example.com' even though the actual envelope or raw header points to attacker.com. If the application grants elevated privileges or routes messages based on the decoded From address, the attacker bypasses the authorization check; if the decoded value is displayed to a human reviewer, phishing succeeds because the spoofed address looks legitimate. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 01, 2026
Header-value interpretation conflict in the Ruby mail gem (mikel/mail) before 2.9.1 allows remote attackers to craft malformed RFC 2047 encoded-words that cause Mail::Utilities.q_value_decode and b_value_decode to produce decoded From, To, and Reply-To values that differ materially from the raw wire values seen by human reviewers or downstream parsers. Because the old implementation used String#match with an overly greedy charset capture (.+? crossing ? delimiters) rather than a global gsub with a constrained character class, a single crafted encoded-word could swallow surrounding text, enabling apparent sender spoofing, phishing, and authorization-check bypass in any Ruby application relying on these decoded values for trust decisions. No public exploit or KEV listing is present at time of analysis, and the fix is confirmed in version 2.9.1.
RemediationAI
Upgrade the mikel/mail gem to version 2.9.1 or later, which is confirmed to contain the fix (GitHub release https://github.com/mikel/mail/releases/tag/2.9.1, commit f9d59c2e447af42e2c3dec5a56b1bb25c7292859). Update Gemfile.lock accordingly and redeploy. If immediate upgrade is not feasible, applications should avoid using Mail::Utilities.q_value_decode or b_value_decode output as an authoritative identity source for authorization decisions; instead, compare raw (unparsed) header values from the MIME message against trusted-sender allowlists, since the raw values are not subject to the decoding ambiguity. Note that this workaround has the trade-off of making display names non-human-readable in any UI rendering. No additional compensating controls exist that fully neutralize the spoofing surface without patching, because the flaw is in the library's core decoding path.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in rubygems
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The affected library is the mikel/mail Ruby gem (CPE cpe:2.3:a:mikel:mail:*:*:*:*:*:*:*:*), the de-facto standard email library used by Ruby on Rails and many Ruby applications for generating, parsing, and sending email. The flaw is classified as CWE-436 (Interpretation Conflict): the library's q_value_decode and b_value_decode utility methods each used String#match, which returns only the first regex match, paired with a greedy capture group (.+ for charset) that could consume ? delimiter characters and span multiple encoded-word boundaries per RFC 2047. The fix (PR #1664, commit f9d59c2e) replaces str.match(...) with str.gsub(...) and tightens the charset capture to [^?]+ so every encoded-word in a string is decoded individually, and no encoded-word can absorb adjacent unencoded text or subsequent encoded-words. The root cause is a mismatch between what the old single-match regex decoded and what the full raw header string actually contained, creating a semantic gap exploitable for header spoofing.
Know when Mail 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
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
Network-delivered via email, no auth or user interaction required by the parser; integrity impact is low (header value manipulation, not arbitrary write).
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Mail is an internet library for Ruby designed to handle email generation, parsing, and sending. Prior to 2.9.1, Mail::Utilities.q_value_decode and Mail::Utilities.b_value_decode used a single String#match and an overly greedy charset capture to decode only the first RFC 2047 encoded-word and mishandle surrounding or subsequent text. A crafted malformed encoded-word in an address display name or local part could cross ? delimiters and make decoded From, To, or Reply-To header values differ from the raw values inspected by a human reviewer or downstream parser, enabling apparent sender or recipient spoofing, phishing, or authorization-check bypass. This issue is fixed in version 2.9.1.
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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
The send function in the ezcMailMtaTransport class in Zeta Components Mail before 1.8.2 does not properly restrict the s
The eGain Web Email API 11+ allows spoofed messages because the fromName and message fields (to /system/ws/v11/ss/email)
The mail gem before 2.5.5 for Ruby (aka A Really Ruby Mail Library) is vulnerable to SMTP command injection via CRLF seq
Nextcloud Mail is the mail app for Nextcloud, a self-hosted productivity platform. Rated critical severity (CVSS 9.8), t
Nextcloud Mail is an email application for the nextcloud personal cloud product. Rated critical severity (CVSS 9.8), thi
Cross-site request forgery (CSRF) vulnerability in baserCMS plugin Mail version 3.0.10 and earlier allows remote attacke
Nextcloud mail is an email app for the nextcloud home server platform. Rated medium severity (CVSS 4.3), this vulnerabil
Nextcloud Mail is a mail app for Nextcloud. Rated medium severity (CVSS 4.3), this vulnerability is remotely exploitable
Nextcloud Mail is a mail app for the Nextcloud platform. Rated medium severity (CVSS 4.3), this vulnerability is remotel
In Claws Mail 3.14.1, an attacker in possession of S/MIME or PGP encrypted emails can wrap them as sub-parts within a cr
Nextcloud Mail is the mail app for Nextcloud, a self-hosted productivity platform. Rated high severity (CVSS 8.1), this
A missing verification of the TLS host in Nextcloud Mail 1.1.3 allowed a man in the middle attack. Rated high severity (
Same weakness CWE-436 – Interpretation Conflict
View allSame technique Authentication Bypass
View allVendor StatusVendor
SUSE
Severity: Moderate| Product | Status |
|---|---|
| SUSE Linux Enterprise High Availability Extension 15 SP7 | Affected |
| SUSE Linux Enterprise High Availability Extension 15 SP4 | Affected |
| SUSE Linux Enterprise High Availability Extension 15 SP5 | Affected |
| SUSE Linux Enterprise High Availability Extension 15 | Affected |
| SUSE Linux Enterprise High Availability Extension 15 SP1 | Affected |
| SUSE Linux Enterprise High Availability Extension 15 SP2 | Affected |
| SUSE Linux Enterprise High Availability Extension 15 SP3 | Affected |
| SUSE Linux Enterprise High Availability Extension 15 SP6 | Affected |
| openSUSE Leap 15.3 | Affected |
| openSUSE Leap 15.4 | Affected |
| openSUSE Leap 15.5 | Affected |
| openSUSE Leap 15.6 | Affected |
EUVD-2026-69609
GHSA-mvxr-6m87-mv2q
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB