VYPR
Unrated severityNVD Advisory· Published Jul 17, 2018· Updated Aug 5, 2024

CVE-2018-14353

CVE-2018-14353

Description

An issue was discovered in Mutt before 1.10.1 and NeoMutt before 2018-07-16. imap_quote_string in imap/util.c has an integer underflow.

AI Insight

LLM-synthesized narrative grounded in this CVE's description and references.

Integer underflow in Mutt/NeoMutt's IMAP quoting can lead to denial of service or potential code execution.

Vulnerability

An integer underflow vulnerability exists in the imap_quote_string function in imap/util.c of Mutt before version 1.10.1 and NeoMutt before the 2018-07-16 commit [2][3]. The function fails to properly check the remaining buffer length (dlen) before decrementing it by 2 when quoting characters, allowing an underflow to occur when dlen is less than 2 [2][3]. This condition can be triggered when processing specially crafted IMAP server responses or email messages [4].

Exploitation

An attacker must be able to send a specially crafted email message or lure a user into connecting to a malicious IMAP server [4]. No authentication is required beyond the user interacting with the crafted message or server. The exploitation occurs when the IMAP code processes a response containing characters that need quoting (such as backslashes or double quotes) with an insufficiently sized buffer, causing the integer underflow [2][3]. The bug was originally reported by Jeriko One [3].

Impact

Successful exploitation can lead to a denial of service (crash) or potentially arbitrary code execution with the privileges of the Mutt/NeoMutt process [4]. The Gentoo security advisory rates the worst case as arbitrary code execution, though the primary consequence is likely a crash [4]. The compromised scope is limited to the mail client itself.

Mitigation

Mutt users should upgrade to version 1.10.1 or later [1][4]. NeoMutt users should upgrade to the version committed on 2018-07-16 or later [2][4]. The fix involves corrected length checks: the patched code checks if dlen < 2 before decrementing [2][3]. There is no known workaround for unpatched versions [4].

AI Insight generated on May 26, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.

Affected products

13

Patches

4
ed9d7727dc70

automatic post-release commit for mutt-1.10.1

https://github.com/muttmua/muttKevin McCarthyJul 16, 2018via osv
3 files changed · +238 1
  • ChangeLog+230 0 modified
    @@ -1,3 +1,233 @@
    +2018-07-13 14:25:28 -0700  Kevin McCarthy  <kevin@8t8.us> (3d9028fe)
    +
    +        * Check outbuf length in mutt_from_base64()
    +        
    +        The obuf can be overflowed in auth_cram.c, and possibly auth_gss.c.
    +        
    +        Thanks to Jeriko One for the bug report.
    +
    +M	base64.c
    +M	imap/auth_cram.c
    +M	imap/auth_gss.c
    +M	protos.h
    +
    +2018-07-13 13:05:22 -0700  Kevin McCarthy  <kevin@8t8.us> (6962328c)
    +
    +        * Check destlen and truncate in url_pct_encode().
    +        
    +        Thanks to Jeriko One for the patch, which this commit is based upon.
    +
    +M	url.c
    +
    +2018-07-13 12:35:50 -0700  Kevin McCarthy  <kevin@8t8.us> (e57a8602)
    +
    +        * Verify IMAP status mailbox literal count size.
    +        
    +        Ensure the length isn't bigger than the idata->buf.
    +        
    +        Thanks to Jeriko One fo the bug report and patch, which this commit is
    +        based upon.
    +
    +M	imap/command.c
    +
    +2018-07-13 12:24:58 -0700  JerikoOne  <jeriko.one@gmx.us> (9347b5c0)
    +
    +        * Handle NO response without message properly
    +
    +M	imap/command.c
    +
    +2018-07-13 12:15:00 -0700  Kevin McCarthy  <kevin@8t8.us> (3287534d)
    +
    +        * Don't overflow tmp in msg_parse_fetch.
    +        
    +        Ensure INTERNALDATE and RFC822.SIZE field sizes fit temp buffer.
    +        
    +        Thanks to Jeriko One for the bug report and patch, which this patch is
    +        based upon.
    +
    +M	imap/message.c
    +
    +2018-07-13 11:33:16 -0700  Richard Russon  <rich@flatcap.org> (31eef6c7)
    +
    +        * Selectively cache headers.
    +        
    +        Thanks to NeoMutt and Jeriko One for the patch, which was slightly
    +        modified to apply to the Mutt code.
    +
    +M	imap/util.c
    +
    +2018-07-13 11:16:33 -0700  Kevin McCarthy  <kevin@8t8.us> (6aed28b4)
    +
    +        * Sanitize POP bcache paths.
    +        
    +        Protect against bcache directory path traversal for UID values.
    +        
    +        Thanks for Jeriko One for the bug report and patch, which this commit
    +        is based upon.
    +
    +M	pop.c
    +
    +2018-07-13 10:47:11 -0700  JerikoOne  <jeriko.one@gmx.us> (e154cba1)
    +
    +        * Ensure UID in fetch_uidl.
    +
    +M	pop.c
    +
    +2018-07-12 21:41:17 -0700  Kevin McCarthy  <kevin@8t8.us> (4d0cd265)
    +
    +        * Fix buffer size check in cmd_parse_lsub.
    +        
    +        The size parameter to url_ciss_tostring() was off by one.
    +
    +M	imap/command.c
    +
    +2018-07-12 20:46:37 -0700  Kevin McCarthy  <kevin@8t8.us> (e0131852)
    +
    +        * Fix imap_quote_string() length check errors.
    +        
    +        The function wasn't properly checking for dlen<2 before quoting, and
    +        wasn't properly pre-adjusting dlen to include the initial quote.
    +        
    +        Thanks to Jeriko One for reporting these issues.
    +
    +M	imap/util.c
    +
    +2018-07-07 19:32:57 -0700  Kevin McCarthy  <kevin@8t8.us> (4ff007ca)
    +
    +        * Mention $pgp_decode_command for $pgp_check_gpg_decrypt_status_fd
    +        
    +        It scans $pgp_decode_command for inline and application/pgp mime
    +        types.
    +
    +M	init.h
    +
    +2018-07-07 19:03:44 -0700  Kevin McCarthy  <kevin@8t8.us> (18515281)
    +
    +        * Properly quote IMAP mailbox names when (un)subscribing.
    +        
    +        When handling automatic subscription (via $imap_check_subscribed), or
    +        manual subscribe/unsubscribe commands, mutt generating a "mailboxes"
    +        command but failed to properly escape backquotes.
    +        
    +        Thanks to Jeriko One for the detailed bug report and patch, which this
    +        commit is based upon.
    +
    +M	imap/command.c
    +M	imap/imap.c
    +M	imap/imap_private.h
    +M	imap/util.c
    +
    +2018-06-18 11:21:38 +0200  Philipp Gesang  <philipp.gesang@intra2net.com> (df4affd1)
    +
    +        * crypt-gpgme: prevent crash on bad S/MIME signature
    +        
    +        Inform the user about the fingerprint being unavailable instead
    +        of crashing if the S/MIME signature is bad.
    +
    +M	crypt-gpgme.c
    +
    +2018-06-04 21:31:33 -0700  Kevin McCarthy  <kevin@8t8.us> (edb4ec84)
    +
    +        * Add GnuPG status fd checks for inline pgp.
    +        
    +        The difficulty is that "BEGIN PGP MESSAGE" could be a signed and
    +        armored part, so we can't fail hard if it isn't encrypted.
    +        
    +        Change pgp_check_decryption_okay() to return more status codes, with
    +        >=0 indicating an actual decryption; -2 and -1 indicating plaintext
    +        found; and -3 indicating an actual DECRYPTION_FAILED status code seen.
    +        
    +        Fail hard on -3, but change the message for -2 and -1 to indicate the
    +        message was not encrypted.
    +
    +M	pgp.c
    +
    +2018-06-04 15:40:57 -0700  Kevin McCarthy  <kevin@8t8.us> (8ec6d766)
    +
    +        * Add $pgp_check_gpg_decrypt_status_fd.
    +        
    +        If set (the default) mutt performs more thorough checking of the
    +        $pgp_decrypt_command status output for GnuPG result codes.
    +        
    +        Ticket #39 revealed that GnuPG (currently) does not protect against
    +        messages that have been manipulated to contain an empty encryption
    +        packet followed by a plaintext packet.
    +        
    +        A huge thanks to Marcus Brinkmann for researching this issue, taking
    +        the time to report it to us (and the GnuPG team), and taking even more
    +        time to clarify exactly what needed to be checked for.   
    +
    +M	contrib/gpg.rc
    +M	contrib/pgp2.rc
    +M	contrib/pgp5.rc
    +M	contrib/pgp6.rc
    +M	init.h
    +M	mutt.h
    +M	pgp.c
    +
    +2018-06-03 14:52:37 -0700  Kevin McCarthy  <kevin@8t8.us> (cb2329ae)
    +
    +        * Revert showing real size for small files in mutt_pretty_size().
    +        
    +        I thought the change made in 0fa64ba9 was small enough not to matter,
    +        but at least one long-time user took the time to track down the change
    +        and request it be reverted.
    +
    +M	muttlib.c
    +
    +2018-06-03 14:40:31 -0700  Kevin McCarthy  <kevin@8t8.us> (33290d12)
    +
    +        * Switch build scripts to use `` instead of $()
    +        
    +        This is for older systems running Bourne shell as /bin/sh.
    +
    +M	mkchangelog.sh
    +M	mkreldate.sh
    +M	version.sh
    +
    +2013-01-06 19:24:18 +0100  Oswald Buddenhagen  <ossi@kde.org> (ec96f5f5)
    +
    +        * fix inappropriate use of FREE() in ssl init error path
    +        
    +        OpenSSL structures need to be freed with dedicated functions.
    +
    +M	mutt_ssl.c
    +
    +2018-05-19 10:57:10 -0700  Kevin McCarthy  <kevin@8t8.us> (d55950a8)
    +
    +        * automatic post-release commit for mutt-1.10.0
    +
    +M	ChangeLog
    +M	VERSION
    +M	po/bg.po
    +M	po/ca.po
    +M	po/cs.po
    +M	po/da.po
    +M	po/de.po
    +M	po/el.po
    +M	po/eo.po
    +M	po/es.po
    +M	po/et.po
    +M	po/eu.po
    +M	po/fr.po
    +M	po/ga.po
    +M	po/gl.po
    +M	po/hu.po
    +M	po/id.po
    +M	po/it.po
    +M	po/ja.po
    +M	po/ko.po
    +M	po/lt.po
    +M	po/nl.po
    +M	po/pl.po
    +M	po/pt_BR.po
    +M	po/ru.po
    +M	po/sk.po
    +M	po/sv.po
    +M	po/tr.po
    +M	po/uk.po
    +M	po/zh_CN.po
    +M	po/zh_TW.po
     2018-05-17 12:24:31 -0700  Ivan Vilata i Balaguer  <ivan@selidor.net> (70c9c89b)
     
             * Updated Catalan translation.
    
  • UPDATING+7 0 modified
    @@ -8,6 +8,13 @@ http://www.mutt.org/doc/manual/
     The keys used are:
       !: modified feature, -: deleted feature, +: new feature
     
    +1.10.1 (2018-07-16):
    +
    +  ! Bug fix release.
    +  + $pgp_check_gpg_decrypt_status_fd, when set (the default), checks
    +    GnuPG status fd output more thoroughly for spooofed encrypted
    +    messages.  Please see contrib/gpg.rc for suggested values.
    +
     1.10.0 (2018-05-19):
     
       ! $reply_self is now respected for group-reply, even with $metoo unset.
    
  • VERSION+1 1 modified
    @@ -1 +1 @@
    -1.10.0
    +1.10.1
    
6a147a62cf39

merge: NeoMutt 2018-07-16

https://github.com/neomutt/neomuttRichard RussonJul 16, 2018via osv
41 files changed · +20281 20118
  • auto.def+1 1 modified
    @@ -14,7 +14,7 @@ use system cc cc-lib mutt-gettext mutt-iconv
     ###############################################################################
     # Names and versions
     define PACKAGE          "neomutt"
    -define PACKAGE_VERSION  "20180622"
    +define PACKAGE_VERSION  "20180716"
     define BUGS_ADDRESS     "neomutt-devel@neomutt.org"
     
     # Subdirectories that contain additional Makefile.autosetup files
    
  • ChangeLog.md+6 0 modified
    @@ -1,3 +1,9 @@
    +2018-07-16  Richard Russon  <rich@flatcap.org>
    +* Features
    +  - <check-stats> function
    +* Bug Fixes
    +  - Lots
    +
     2018-06-22  Richard Russon  <rich@flatcap.org>
     * Features
       - Expand variables inside backticks
    
  • doxygen/doxygen.conf+1 1 modified
    @@ -25,7 +25,7 @@ PROJECT_NAME           = "NeoMutt"
     # could be handy for archiving the generated documentation or if some version
     # control system is used.
     
    -PROJECT_NUMBER         = 2018-06-22
    +PROJECT_NUMBER         = 2018-07-16
     
     # Using the PROJECT_BRIEF tag one can provide an optional one line description
     # for a project that appears at the top of each page and should give viewer a
    
  • imap/auth_plain.c+2 1 modified
    @@ -77,7 +77,8 @@ enum ImapAuthRes imap_auth_plain(struct ImapData *idata, const char *method)
         }
         if (rc == IMAP_CMD_RESPOND)
         {
    -      mutt_str_strcat(buf + sizeof(auth_plain_cmd), sizeof(buf) - sizeof(auth_plain_cmd), "\r\n");
    +      mutt_str_strcat(buf + sizeof(auth_plain_cmd),
    +                      sizeof(buf) - sizeof(auth_plain_cmd), "\r\n");
           mutt_socket_send(idata->conn, buf + sizeof(auth_plain_cmd));
         }
       }
    
  • imap/imap.c+2 2 modified
    @@ -1730,8 +1730,8 @@ int imap_subscribe(char *path, bool subscribe)
         mutt_buffer_init(&err);
         err.data = errstr;
         err.dsize = sizeof(errstr);
    -	len = snprintf(mbox, sizeof(mbox), "%smailboxes ", subscribe ? "" : "un");
    -	imap_quote_string(mbox + len, sizeof(mbox) - len, path, true);
    +    len = snprintf(mbox, sizeof(mbox), "%smailboxes ", subscribe ? "" : "un");
    +    imap_quote_string(mbox + len, sizeof(mbox) - len, path, true);
         if (mutt_parse_rc_line(mbox, &token, &err))
           mutt_debug(1, "Error adding subscribed mailbox: %s\n", errstr);
         FREE(&token.data);
    
  • .mailmap+4 1 modified
    @@ -61,6 +61,7 @@ Jakub Jindra <jakub.jindra@socialbakers.com>                    Jakub Jindra <j
     Jakub Wilk <jwilk@jwilk.net>                                    Jakub Wilk <jwilk@jwilk.net>                             # @jwilk
     Jelle van der Waa <jelle@vdwaa.nl>                              Jelle van der Waa <jelle@vdwaa.nl>                       # @jelly
     Jenya Sovetkin <e.sovetkin@gmail.com>                           Jenya Sovetkin <e.sovetkin@gmail.com>                    # @esovetkin
    +JerikoOne <jeriko.one@gmx.us>                                   JerikoOne <jeriko.one@gmx.us>                            # @jeriko-one
     Joey Pabalinas <joeypabalinas@gmail.com>                        Joey Pabalinas <joeypabalinas@gmail.com>                 # @alyptik
     Johannes Weißl <jargon@molb.org>                               Johannes Weißl <jargon@molb.org>                        # @weisslj
     Jonathan Perkin <jperkin@netbsd.org>                            Jonathan Perkin <jperkin@netbsd.org>                     # @jperkin
    @@ -80,6 +81,7 @@ Marcin Rajner <mrajner@gik.pw.edu.pl>                           Marcin Rajner <m
     Marcin Rajner <mrajner@gik.pw.edu.pl>                           Marcin Rajner <mrajner@lenovo>                           # @mrajner
     Marcin Rajner <mrajner@gik.pw.edu.pl>                           Marcin Rajner lenovo <mrajner@gik.pw.edu.pl>             # @mrajner
     Marco Hinz <mh.codebro@gmail.com>                               Marco Hinz <mh.codebro@gmail.com>                        # @mhinz
    +Marco Sirabella <marco@sirabella.org>                           Marco Sirabella <marco@sirabella.org>                    # @mjsir911
     Marius Gedminas <marius@gedmin.as>                              Marius Gedminas <marius@gedmin.as>                       # @mgedmin
     Mehdi Abaakouk <sileht@sileht.net>                              Mehdi ABAAKOUK <sileht@sileht.net>                       # @sileht
     Mehdi Abaakouk <sileht@sileht.net>                              Mehdi Abaakouk <sileht@sileht.net>                       # @sileht
    @@ -156,7 +158,8 @@ Andreas Jobs <unknown>                                          Andreas Jobs <un
     Andrew Gaul <andrew@gaul.org>                                   Andrew Gaul <andrew@gaul.org>
     Andrew Nosenko <awn@bcs.zp.ua>                                  Andrew W. Nosenko <awn@bcs.zp.ua>
     Antoine Reilles <tonio@netbsd.org>                              Antoine Reilles <tonio@netbsd.org>
    -Anton Lindqvist <anton.lindqvist@gmail.com>                     Anton Lindqvist <anton.lindqvist@gmail.com>
    +Anton Lindqvist <anton@basename.se>                             Anton Lindqvist <anton.lindqvist@gmail.com>
    +Anton Lindqvist <anton@basename.se>                             Anton Lindqvist <anton@basename.se>
     Armin Wolfermann <aw@osn.de>                                    Armin Wolfermann <aw@osn.de>
     Aron Griffis <agriffis@n01se.net>                               Aron Griffis <agriffis@n01se.net>
     Athanasios Douitsis <aduitsis@gmail.com>                        Athanasios Douitsis <aduitsis@gmail.com>
    
  • newsrc.c+2 1 modified
    @@ -601,7 +601,8 @@ int nntp_add_group(char *line, void *data)
         return 0;
     
       /* These sscanf limits must match the sizes of the group and desc arrays */
    -  if (sscanf(line, "%1023s " ANUM " " ANUM " %c %8191[^\n]", group, &last, &first, &mod, desc) < 4)
    +  if (sscanf(line, "%1023s " ANUM " " ANUM " %c %8191[^\n]", group, &last,
    +             &first, &mod, desc) < 4)
       {
         mutt_debug(4, "Cannot parse server line: %s\n", line);
         return 0;
    
  • nntp.c+1 1 modified
    @@ -1289,7 +1289,7 @@ static int nntp_fetch_headers(struct Context *ctx, void *hc, anum_t first,
       fc.restore = restore;
       fc.messages = mutt_mem_calloc(last - first + 1, sizeof(unsigned char));
       if (fc.messages == NULL)
    -	  return -1;
    +    return -1;
     #ifdef USE_HCACHE
       fc.hc = hc;
     #endif
    
  • pattern.c+8 8 modified
    @@ -1885,13 +1885,13 @@ int mutt_pattern_exec(struct Pattern *pat, enum PatternExecFlag flags,
         case MUTT_SENDER:
           if (!h->env)
             return 0;
    -      return (pat->not ^ match_addrlist(pat, (flags & MUTT_MATCH_FULL_ADDRESS), 1,
    -                                        h->env->sender));
    +      return (pat->not ^ match_addrlist(pat, (flags & MUTT_MATCH_FULL_ADDRESS),
    +                                        1, h->env->sender));
         case MUTT_FROM:
           if (!h->env)
             return 0;
    -      return (pat->not ^
    -              match_addrlist(pat, (flags & MUTT_MATCH_FULL_ADDRESS), 1, h->env->from));
    +      return (pat->not ^ match_addrlist(pat, (flags & MUTT_MATCH_FULL_ADDRESS),
    +                                        1, h->env->from));
         case MUTT_TO:
           if (!h->env)
             return 0;
    @@ -1924,14 +1924,14 @@ int mutt_pattern_exec(struct Pattern *pat, enum PatternExecFlag flags,
         case MUTT_ADDRESS:
           if (!h->env)
             return 0;
    -      return (pat->not ^ match_addrlist(pat, (flags & MUTT_MATCH_FULL_ADDRESS), 4,
    -                                        h->env->from, h->env->sender,
    +      return (pat->not ^ match_addrlist(pat, (flags & MUTT_MATCH_FULL_ADDRESS),
    +                                        4, h->env->from, h->env->sender,
                                             h->env->to, h->env->cc));
         case MUTT_RECIPIENT:
           if (!h->env)
             return 0;
    -      return (pat->not ^ match_addrlist(pat, (flags & MUTT_MATCH_FULL_ADDRESS), 2,
    -                                        h->env->to, h->env->cc));
    +      return (pat->not ^ match_addrlist(pat, (flags & MUTT_MATCH_FULL_ADDRESS),
    +                                        2, h->env->to, h->env->cc));
         case MUTT_LIST: /* known list, subscribed or not */
           if (!h->env)
             return 0;
    
  • po/bg.po+675 670 modified
  • po/ca.po+675 670 modified
  • po/cs.po+675 670 modified
  • po/da.po+675 670 modified
  • po/de.po+675 670 modified
  • po/el.po+675 670 modified
  • po/en_GB.po+674 670 modified
  • po/eo.po+675 670 modified
  • po/es.po+675 670 modified
  • po/et.po+675 670 modified
  • po/eu.po+675 670 modified
  • po/fr.po+675 670 modified
  • po/ga.po+675 670 modified
  • po/gl.po+675 670 modified
  • po/hu.po+675 670 modified
  • po/id.po+675 670 modified
  • po/it.po+675 670 modified
  • po/ja.po+675 670 modified
  • po/ko.po+675 670 modified
  • po/lt.po+675 670 modified
  • po/nl.po+675 670 modified
  • po/pl.po+675 670 modified
  • po/pt_BR.po+675 670 modified
  • po/ru.po+675 670 modified
  • po/sk.po+675 670 modified
  • po/sv.po+675 670 modified
  • po/tr.po+675 670 modified
  • po/uk.po+675 670 modified
  • po/zh_CN.po+675 670 modified
  • po/zh_TW.po+675 670 modified
  • README.md+3 1 modified
    @@ -2,7 +2,7 @@
     
     [![Stars](https://img.shields.io/github/stars/neomutt/neomutt.svg?style=social&label=Stars)](https://github.com/neomutt/neomutt "Give us a Star")
     [![Twitter](https://img.shields.io/twitter/follow/NeoMutt_Org.svg?style=social&label=Follow)](https://twitter.com/NeoMutt_Org "Follow us on Twitter")
    -[![Contributors](https://img.shields.io/badge/Contributors-127-orange.svg)](#contributors "All of NeoMutt's Contributors")
    +[![Contributors](https://img.shields.io/badge/Contributors-132-orange.svg)](#contributors "All of NeoMutt's Contributors")
     [![Release](https://img.shields.io/github/release/neomutt/neomutt.svg)](https://github.com/neomutt/neomutt/releases/latest "Latest Release Notes")
     [![License: GPL v2](https://img.shields.io/badge/License-GPL%20v2-blue.svg)](https://github.com/neomutt/neomutt/blob/master/COPYRIGHT.md "Copyright Statement")
     [![Code build](https://img.shields.io/travis/neomutt/neomutt.svg?label=code)](https://travis-ci.org/neomutt/neomutt "Latest Automatic Code Build")
    @@ -137,6 +137,7 @@ Here's a list of everyone who's helped NeoMutt:
     [Jasper Adriaanse](https://github.com/jasperla "jasperla"),
     [Jelle van der Waa](https://github.com/jelly "jelly"),
     [Jenya Sovetkin](https://github.com/esovetkin "esovetkin"),
    +[JerikoOne](https://github.com/jeriko-one "jeriko-one"),
     [Joey Pabalinas](https://github.com/alyptik "alyptik"),
     [Johannes Frankenau](https://github.com/tsuflux "tsuflux"),
     [Johannes Weißl](https://github.com/weisslj "weisslj"),
    @@ -156,6 +157,7 @@ Here's a list of everyone who's helped NeoMutt:
     [Manos Pitsidianakis](https://github.com/epilys "epilys"),
     [Marcin Rajner](https://github.com/mrajner "mrajner"),
     [Marco Hinz](https://github.com/mhinz "mhinz"),
    +[Marco Sirabella](https://github.com/mjsir911 "mjsir911"),
     [Marius Gedminas](https://github.com/mgedmin "mgedmin"),
     [Mateusz Piotrowski](https://github.com/0mp "0mp"),
     [Matteo Vescovi](https://github.com/mfvescovi "mfvescovi"),
    
  • send.c+2 1 modified
    @@ -1076,7 +1076,8 @@ struct Address *mutt_default_from(void)
     
       if (From)
         addr = mutt_addr_copy(From);
    -  else {
    +  else
    +  {
         addr = mutt_addr_new();
         if (UseDomain)
         {
    
65d64a5b60a4

Check for int underflow in imap_quote_string

https://github.com/neomutt/neomuttJerikoOneJul 7, 2018via osv
1 file changed · +2 2
  • imap/util.c+2 2 modified
    @@ -821,9 +821,9 @@ void imap_quote_string(char *dest, size_t dlen, const char *src, bool quote_back
       {
         if (strchr(quote, *s))
         {
    -      dlen -= 2;
    -      if (dlen == 0)
    +      if (dlen < 2)
             break;
    +      dlen -= 2;
           *pt++ = '\\';
           *pt++ = *s;
         }
    

Vulnerability mechanics

Generated on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

9

News mentions

0

No linked articles in our index yet.