CVE-2026-42258: net-imap: Command Injection via unvalidated Symbol inputs
Summary
Symbol arguments to commands are vulnerable to a CRLF Injection / IMAP Command injection via Symbol arguments passed to IMAP commands.
Details
Symbol arguments represent IMAP "system flags", which are formatted as "atoms" (with no quoting) with a "\" prefix. Vulnerable versions of Net::IMAP sends the symbol name directly to the socket, with no validation.
Because the Symbol input is unvalidated, it could contain invalid flag characters, including SP and CRLF, which could be used to finish the current command and inject new commands.
Although IMAP flag arguments are only valid input for a few IMAP commands, most Net::IMAP commands use generic argument handling, and will allow Symbol (flag) inputs.
Note also that the list of valid symbol inputs should be restricted to an enumerated set of standard RFC defined flag types, which have each been given specific defined semantics. Any user-provided values outside of that list of standard "system flags" needs to use the IMAP keyword syntax, which are sent as atoms, i.e: string inputs. Under no circumstances should #tosym ever be called on unvetted user-provided input: that will always be a bug in the calling code for the simple reason that userinputatom is as \userinputatom.
For forward compatibility with future IMAP extentions, Net::IMAP, does not restrict flag inputs to an enumerated list. That is the responsibility of the calling application code, which knows which flag semantics are valid for its context.
Impact
If a developer passes user-controlled input as a Symbol to most Net::IMAP commands, an attacker can append CRLF sequence followed by a new IMAP command (like DELETE mailbox).
Mitigation Upgrade to a version of Net::IMAP that validates Symbols are valid as an IMAP flag. User-provided input should never be able to control calling #tosym on string arguments.
For example, do not unsafely serialize and deserialize command arguments (e.g. with YAML or Marshal) in a way that could create unvetted Symbol arguments. For the few IMAP commands which do allow flag arguments, it may be appropriate to hard-code Symbol arguments or restrict them to an enumerated list which is valid for the calling application.
Other sources
Net::IMAP implements Internet Message Access Protocol (IMAP) client functionality in Ruby. Prior to versions 0.4.24, 0.5.14, and 0.6.4, symbol arguments to commands are vulnerable to a CRLF Injection / IMAP Command injection via Symbol arguments passed to IMAP commands. This issue has been patched in versions 0.4.24, 0.5.14, and 0.6.4.
— IBM
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
rubygems/net-imapto a version that resolves this vulnerability.Fixed in 0.4.24 - Upgrade
Upgrade
rubygems/net-imapto a version that resolves this vulnerability.Fixed in 0.5.14 - Upgrade
Upgrade
rubygems/net-imapto a version that resolves this vulnerability.Fixed in 0.6.4 - Upgrade
Upgrade
Net::IMAPto a version that resolves this vulnerability.Fixed in 0.4.24 - Upgrade
Upgrade
Net::IMAPto a version that resolves this vulnerability.Fixed in 0.5.14 - Upgrade
Upgrade
Net::IMAPto a version that resolves this vulnerability.Fixed in 0.6.4 - Configuration
Ensure user-provided values are never passed as Symbols to Net::IMAP by prohibiting any code path that calls `#to_sym` on unvetted user input (untrusted user input must not become an IMAP atom/flag symbol argument).
Calling application code using Net::IMAP #to_sym on user-provided input (string -> Symbol) = DO NOT call - Configuration
For the IMAP commands that accept IMAP `flag` arguments, hard-code Symbol arguments or restrict them to an enumerated set of standard RFC-defined system flags valid for the calling application’s context; do not allow arbitrary Symbol/flag values from user input.
Calling application code using Net::IMAP IMAP flag Symbol inputs = restrict to enumerated list of valid system flags or hard-code
Event History
Frequently Asked Questions
What is the severity of CVE-2026-42258?
CVE-2026-42258 is considered a medium severity vulnerability due to its potential for CRLF Injection and IMAP Command injection.
Which versions are affected by CVE-2026-42258?
CVE-2026-42258 affects net-imap versions prior to 0.4.24, 0.5.14, and 0.6.4.
How do I fix CVE-2026-42258?
To fix CVE-2026-42258, upgrade net-imap to version 0.4.24, 0.5.14, or 0.6.4 or later.
What does CVE-2026-42258 target specifically?
CVE-2026-42258 targets the misuse of Symbol arguments in IMAP commands which can lead to injection vulnerabilities.
Can CVE-2026-42258 impact email security?
Yes, CVE-2026-42258 can compromise email security by allowing attackers to exploit injection points within IMAP commands.