Skip to content

Mutt 2.2.7 - Segmentation fault - pgp_gpgme_extract_keys

Mutt crashes with SIGSEGV when uid -variable is NULL in pgp_gpgme_extrace_keys().

Found in Mutt 2.0.5 (Debian 11 + 2.0.5-4.1+deb11u1).

Reproducible in:

  • 2.1.4 (Ubuntu 22.04LTS + binary package 2.1.4-1ubuntu1.1)
  • 2.2.6 (Debian 11 + 2.2.6 tarball)
  • 2.2.7 (Debian 11 + stable git source)

Public mailing list archive to problematic mail here (I can provide mbox file from my own archive).

Simple workaround (crypt-gpgme.c):

2425       if (!more)
2426+      {
2427+        if ( uid == NULL )
2428+        {
2429+          err=1;
2430+          break;
2431+        }
2432         fprintf (*fp, "%s %5.5s %d/%8s %s %s\n", more ? "sub" : "pub",
2433                   gpgme_pubkey_algo_name (subkey->pubkey_algo), subkey->length,
2434                   shortid, date, uid->uid);
2435+      }
2436       else
Edited by Mikko Lehto