~ubuntu-branches/ubuntu/precise/openssl/precise-updates

« back to all changes in this revision

Viewing changes to debian/patches/CVE-2014-3569.patch

  • Committer: Package Import Robot
  • Author(s): Marc Deslauriers
  • Date: 2015-01-09 10:24:21 UTC
  • Revision ID: package-import@ubuntu.com-20150109102421-dj8j4nriyzn00vor
Tags: 1.0.1-4ubuntu5.21
* SECURITY UPDATE: denial of service via unexpected handshake when
  no-ssl3 build option is used (not the default)
  - debian/patches/CVE-2014-3569.patch: keep the old method for now in
    ssl/s23_srvr.c.
  - CVE-2014-3569
* SECURITY UPDATE: bignum squaring may produce incorrect results
  - debian/patches/CVE-2014-3570.patch: fix bignum logic in
    crypto/bn/asm/mips.pl, crypto/bn/asm/x86_64-gcc.c,
    crypto/bn/bn_asm.c, removed crypto/bn/asm/mips3.s, added test to
    crypto/bn/bntest.c.
  - CVE-2014-3570
* SECURITY UPDATE: DTLS segmentation fault in dtls1_get_record
  - debian/patches/CVE-2014-3571-1.patch: fix crash in ssl/d1_pkt.c,
    ssl/s3_pkt.c.
  - debian/patches/CVE-2014-3571-2.patch: make code more obvious in
    ssl/d1_pkt.c.
  - CVE-2014-3571
* SECURITY UPDATE: ECDHE silently downgrades to ECDH [Client]
  - debian/patches/CVE-2014-3572.patch: don't skip server key exchange in
    ssl/s3_clnt.c.
  - CVE-2014-3572
* SECURITY UPDATE: certificate fingerprints can be modified
  - debian/patches/CVE-2014-8275.patch: fix various fingerprint issues in
    crypto/asn1/a_bitstr.c, crypto/asn1/a_type.c, crypto/asn1/a_verify.c,
    crypto/asn1/asn1.h, crypto/asn1/asn1_err.c, crypto/asn1/x_algor.c,
    crypto/dsa/dsa_asn1.c, crypto/ecdsa/ecs_vrf.c, crypto/x509/x509.h,
    crypto/x509/x_all.c.
  - CVE-2014-8275
* SECURITY UPDATE: RSA silently downgrades to EXPORT_RSA [Client]
  - debian/patches/CVE-2015-0204.patch: only allow ephemeral RSA keys in
    export ciphersuites in ssl/d1_srvr.c, ssl/s3_clnt.c, ssl/s3_srvr.c,
    ssl/ssl.h, adjust documentation in doc/ssl/SSL_CTX_set_options.pod,
    doc/ssl/SSL_CTX_set_tmp_rsa_callback.pod.
  - CVE-2015-0204
* SECURITY UPDATE: DTLS memory leak in dtls1_buffer_record
  - debian/patches/CVE-2015-0206.patch: properly handle failures in
    ssl/d1_pkt.c.
  - CVE-2015-0206
* debian/patches/CVE-2015-0205.patch: fix code to prevent confusion in
    ssl/s3_srvr.c.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
From 6ce9687b5aba5391fc0de50e18779eb676d0e04d Mon Sep 17 00:00:00 2001
 
2
From: Kurt Roeckx <kurt@roeckx.be>
 
3
Date: Tue, 21 Oct 2014 20:45:15 +0200
 
4
Subject: [PATCH] Keep old method in case of an unsupported protocol
 
5
MIME-Version: 1.0
 
6
Content-Type: text/plain; charset=utf8
 
7
Content-Transfer-Encoding: 8bit
 
8
 
 
9
When we're configured with no-ssl3 and we receive an SSL v3 Client Hello, we set
 
10
the method to NULL.  We didn't used to do that, and it breaks things.  This is a
 
11
regression introduced in 62f45cc27d07187b59551e4fad3db4e52ea73f2c.  Keep the old
 
12
method since the code is not able to deal with a NULL method at this time.
 
13
 
 
14
CVE-2014-3569, PR#3571
 
15
 
 
16
Reviewed-by: Emilia Käsper <emilia@openssl.org>
 
17
(cherry picked from commit 392fa7a952e97d82eac6958c81ed1e256e6b8ca5)
 
18
---
 
19
 ssl/s23_srvr.c |    6 ++++--
 
20
 1 file changed, 4 insertions(+), 2 deletions(-)
 
21
 
 
22
diff --git a/ssl/s23_srvr.c b/ssl/s23_srvr.c
 
23
index 93ca7d5..de909b1 100644
 
24
--- a/ssl/s23_srvr.c
 
25
+++ b/ssl/s23_srvr.c
 
26
@@ -602,12 +602,14 @@ int ssl23_get_client_hello(SSL *s)
 
27
        if ((type == 2) || (type == 3))
 
28
                {
 
29
                /* we have SSLv3/TLSv1 (type 2: SSL2 style, type 3: SSL3/TLS style) */
 
30
-                s->method = ssl23_get_server_method(s->version);
 
31
-               if (s->method == NULL)
 
32
+               const SSL_METHOD *new_method;
 
33
+               new_method = ssl23_get_server_method(s->version);
 
34
+               if (new_method == NULL)
 
35
                        {
 
36
                        SSLerr(SSL_F_SSL23_GET_CLIENT_HELLO,SSL_R_UNSUPPORTED_PROTOCOL);
 
37
                        goto err;
 
38
                        }
 
39
+               s->method = new_method;
 
40
 
 
41
                if (!ssl_init_wbio_buffer(s,1)) goto err;
 
42
 
 
43
-- 
 
44
1.7.9.5
 
45