]> git.llucax.com Git - software/mutt-debian.git/blob - debian/patches/upstream/619216-gnutls-CN-validation.patch
517e543eceff4d7121b37d6ee89d20aab4de4702
[software/mutt-debian.git] / debian / patches / upstream / 619216-gnutls-CN-validation.patch
1 This patch addresses a security problem due to the fact that the validation of
2 the SSL CN is not correctly done in the gnutls-related code of mutt.
3
4 The patch has been provided by hhorak on http://bugs.mutt.org/3506, the original
5 bug where the security problem was reported for Debian is
6 http://bugs.debian.org/619216
7
8 --- a/mutt_ssl_gnutls.c
9 +++ b/mutt_ssl_gnutls.c
10 @@ -999,6 +999,7 @@
11    unsigned int cert_list_size = 0;
12    gnutls_certificate_status certstat;
13    int certerr, i, preauthrc, savedcert, rc = 0;
14 +  int rcpeer;
15  
16    if (gnutls_auth_get_type (state) != GNUTLS_CRD_CERTIFICATE)
17    {
18 @@ -1024,6 +1025,9 @@
19    for (i = 0; i < cert_list_size; i++) {
20      rc = tls_check_preauth(&cert_list[i], certstat, conn->account.host, i,
21                             &certerr, &savedcert);
22 +    if (i ==0)
23 +      rcpeeer = rc;
24 +
25      preauthrc += rc;
26  
27      if (savedcert)
28 @@ -1049,7 +1053,7 @@
29          dprint (1, (debugfile, "error trusting certificate %d: %d\n", i, rc));
30  
31        certstat = tls_verify_peers (state);
32 -      if (!certstat)
33 +      if (!certstat && !rcpeer)
34          return 1;
35      }
36    }