OSDN Git Service

Update OpenSSL to 1.0.0g.
authors_kawamoto <s_kawamoto@users.sourceforge.jp>
Wed, 25 Jan 2012 14:24:59 +0000 (23:24 +0900)
committers_kawamoto <s_kawamoto@users.sourceforge.jp>
Wed, 25 Jan 2012 14:24:59 +0000 (23:24 +0900)
17 files changed:
FFFTP_Eng_Release/FFFTP.exe
Release/FFFTP.exe
contrib/openssl/bin/libeay32.dll
contrib/openssl/bin/libssl32.dll
contrib/openssl/bin/ssleay32.dll
contrib/openssl/changes.txt
contrib/openssl/faq.txt
contrib/openssl/include/openssl/bio.h
contrib/openssl/include/openssl/e_os2.h
contrib/openssl/include/openssl/opensslv.h
contrib/openssl/include/openssl/ssl.h
contrib/openssl/include/openssl/ssl3.h
contrib/openssl/news.txt
contrib/openssl/readme.txt
dist/libeay32.dll
dist/ssleay32.dll
socketwrapper.c

index 6d1aaca..dae8f34 100644 (file)
Binary files a/FFFTP_Eng_Release/FFFTP.exe and b/FFFTP_Eng_Release/FFFTP.exe differ
index f1db394..792ecfd 100644 (file)
Binary files a/Release/FFFTP.exe and b/Release/FFFTP.exe differ
index 35a9448..7e48fb2 100644 (file)
Binary files a/contrib/openssl/bin/libeay32.dll and b/contrib/openssl/bin/libeay32.dll differ
index edf3e53..5416194 100644 (file)
Binary files a/contrib/openssl/bin/libssl32.dll and b/contrib/openssl/bin/libssl32.dll differ
index edf3e53..5416194 100644 (file)
Binary files a/contrib/openssl/bin/ssleay32.dll and b/contrib/openssl/bin/ssleay32.dll differ
index a0de5ab..67ff293 100644 (file)
@@ -2,6 +2,73 @@
  OpenSSL CHANGES
  _______________
 
+ Changes between 1.0.0f and 1.0.0g [18 Jan 2012]
+
+  *) Fix for DTLS DoS issue introduced by fix for CVE-2011-4109.
+     Thanks to Antonio Martin, Enterprise Secure Access Research and
+     Development, Cisco Systems, Inc. for discovering this bug and
+     preparing a fix. (CVE-2012-0050)
+     [Antonio Martin]
+
+ Changes between 1.0.0e and 1.0.0f [4 Jan 2012]
+
+  *) Nadhem Alfardan and Kenny Paterson have discovered an extension
+     of the Vaudenay padding oracle attack on CBC mode encryption
+     which enables an efficient plaintext recovery attack against
+     the OpenSSL implementation of DTLS. Their attack exploits timing
+     differences arising during decryption processing. A research
+     paper describing this attack can be found at:
+                  http://www.isg.rhul.ac.uk/~kp/dtls.pdf
+     Thanks go to Nadhem Alfardan and Kenny Paterson of the Information
+     Security Group at Royal Holloway, University of London
+     (www.isg.rhul.ac.uk) for discovering this flaw and to Robin Seggelmann
+     <seggelmann@fh-muenster.de> and Michael Tuexen <tuexen@fh-muenster.de>
+     for preparing the fix. (CVE-2011-4108)
+     [Robin Seggelmann, Michael Tuexen]
+
+  *) Clear bytes used for block padding of SSL 3.0 records.
+     (CVE-2011-4576)
+     [Adam Langley (Google)]
+
+  *) Only allow one SGC handshake restart for SSL/TLS. Thanks to George
+     Kadianakis <desnacked@gmail.com> for discovering this issue and
+     Adam Langley for preparing the fix. (CVE-2011-4619)
+     [Adam Langley (Google)]
+
+  *) Check parameters are not NULL in GOST ENGINE. (CVE-2012-0027)
+     [Andrey Kulikov <amdeich@gmail.com>]
+
+  *) Prevent malformed RFC3779 data triggering an assertion failure.
+     Thanks to Andrew Chi, BBN Technologies, for discovering the flaw
+     and Rob Austein <sra@hactrn.net> for fixing it. (CVE-2011-4577)
+     [Rob Austein <sra@hactrn.net>]
+
+  *) Improved PRNG seeding for VOS.
+     [Paul Green <Paul.Green@stratus.com>]
+
+  *) Fix ssl_ciph.c set-up race.
+     [Adam Langley (Google)]
+
+  *) Fix spurious failures in ecdsatest.c.
+     [Emilia Käsper (Google)]
+
+  *) Fix the BIO_f_buffer() implementation (which was mixing different
+     interpretations of the '..._len' fields).
+     [Adam Langley (Google)]
+
+  *) Fix handling of BN_BLINDING: now BN_BLINDING_invert_ex (rather than
+     BN_BLINDING_invert_ex) calls BN_BLINDING_update, ensuring that concurrent
+     threads won't reuse the same blinding coefficients.
+
+     This also avoids the need to obtain the CRYPTO_LOCK_RSA_BLINDING
+     lock to call BN_BLINDING_invert_ex, and avoids one use of
+     BN_BLINDING_update for each BN_BLINDING structure (previously,
+     the last update always remained unused).
+     [Emilia Käsper (Google)]
+
+  *) In ssl3_clear, preserve s3->init_extra along with s3->rbuf.
+     [Bob Buckholz (Google)]
+
  Changes between 1.0.0d and 1.0.0e [6 Sep 2011]
 
   *) Fix bug where CRLs with nextUpdate in the past are sometimes accepted
 
   *) Change 'Configure' script to enable Camellia by default.
      [NTT]
+
+ Changes between 0.9.8s and 0.9.8t [18 Jan 2012]
+
+  *) Fix for DTLS DoS issue introduced by fix for CVE-2011-4109.
+     Thanks to Antonio Martin, Enterprise Secure Access Research and
+     Development, Cisco Systems, Inc. for discovering this bug and
+     preparing a fix. (CVE-2012-0050)
+     [Antonio Martin]
   
- Changes between 0.9.8r and 0.9.8s [xx XXX xxxx]
+ Changes between 0.9.8r and 0.9.8s [4 Jan 2012]
+
+  *) Nadhem Alfardan and Kenny Paterson have discovered an extension
+     of the Vaudenay padding oracle attack on CBC mode encryption
+     which enables an efficient plaintext recovery attack against
+     the OpenSSL implementation of DTLS. Their attack exploits timing
+     differences arising during decryption processing. A research
+     paper describing this attack can be found at:
+                  http://www.isg.rhul.ac.uk/~kp/dtls.pdf
+     Thanks go to Nadhem Alfardan and Kenny Paterson of the Information
+     Security Group at Royal Holloway, University of London
+     (www.isg.rhul.ac.uk) for discovering this flaw and to Robin Seggelmann
+     <seggelmann@fh-muenster.de> and Michael Tuexen <tuexen@fh-muenster.de>
+     for preparing the fix. (CVE-2011-4108)
+     [Robin Seggelmann, Michael Tuexen]
+
+  *) Stop policy check failure freeing same buffer twice. (CVE-2011-4109)
+     [Ben Laurie, Kasper <ekasper@google.com>]
+
+  *) Clear bytes used for block padding of SSL 3.0 records.
+     (CVE-2011-4576)
+     [Adam Langley (Google)]
+
+  *) Only allow one SGC handshake restart for SSL/TLS. Thanks to George
+     Kadianakis <desnacked@gmail.com> for discovering this issue and
+     Adam Langley for preparing the fix. (CVE-2011-4619)
+     [Adam Langley (Google)]
+  *) Prevent malformed RFC3779 data triggering an assertion failure.
+     Thanks to Andrew Chi, BBN Technologies, for discovering the flaw
+     and Rob Austein <sra@hactrn.net> for fixing it. (CVE-2011-4577)
+     [Rob Austein <sra@hactrn.net>]
+
+  *) Fix ssl_ciph.c set-up race.
+     [Adam Langley (Google)]
+
+  *) Fix spurious failures in ecdsatest.c.
+     [Emilia Käsper (Google)]
+
+  *) Fix the BIO_f_buffer() implementation (which was mixing different
+     interpretations of the '..._len' fields).
+     [Adam Langley (Google)]
+
+  *) Fix handling of BN_BLINDING: now BN_BLINDING_invert_ex (rather than
+     BN_BLINDING_invert_ex) calls BN_BLINDING_update, ensuring that concurrent
+     threads won't reuse the same blinding coefficients.
+
+     This also avoids the need to obtain the CRYPTO_LOCK_RSA_BLINDING
+     lock to call BN_BLINDING_invert_ex, and avoids one use of
+     BN_BLINDING_update for each BN_BLINDING structure (previously,
+     the last update always remained unused).
+     [Emilia Käsper (Google)]
 
   *) Fix SSL memory handling for (EC)DH ciphersuites, in particular
      for multi-threaded use of ECDH.
index fe54856..2a271ed 100644 (file)
@@ -82,7 +82,7 @@ OpenSSL  -  Frequently Asked Questions
 * Which is the current version of OpenSSL?
 
 The current version is available from <URL: http://www.openssl.org>.
-OpenSSL 1.0.0e was released on Sep 6th, 2011.
+OpenSSL 1.0.0g was released on Jan 18th, 2012.
 
 In addition to the current stable release, you can also access daily
 snapshots of the OpenSSL development version at <URL:
index 2d35d3d..65cc96b 100644 (file)
@@ -306,6 +306,15 @@ DECLARE_STACK_OF(BIO)
 \r
 typedef struct bio_f_buffer_ctx_struct\r
        {\r
+       /* Buffers are setup like this:\r
+        *\r
+        * <---------------------- size ----------------------->\r
+        * +---------------------------------------------------+\r
+        * | consumed | remaining          | free space        |\r
+        * +---------------------------------------------------+\r
+        * <-- off --><------- len ------->\r
+        */\r
+\r
        /* BIO *bio; */ /* this is now in the BIO struct */\r
        int ibuf_size;  /* how big is the input buffer */\r
        int obuf_size;  /* how big is the output buffer */\r
index 2937da7..b989548 100644 (file)
@@ -193,8 +193,14 @@ extern "C" {
 #endif\r
 \r
 /* --------------------------------- VOS ----------------------------------- */\r
-#ifdef OPENSSL_SYSNAME_VOS\r
+#if defined(__VOS__) || defined(OPENSSL_SYSNAME_VOS)\r
 # define OPENSSL_SYS_VOS\r
+#ifdef __HPPA__\r
+# define OPENSSL_SYS_VOS_HPPA\r
+#endif\r
+#ifdef __IA32__\r
+# define OPENSSL_SYS_VOS_IA32\r
+#endif\r
 #endif\r
 \r
 /* ------------------------------- VxWorks --------------------------------- */\r
index cc82520..42520ed 100644 (file)
  * (Prior to 0.9.5a beta1, a different scheme was used: MMNNFFRBB for\r
  *  major minor fix final patch/beta)\r
  */\r
-#define OPENSSL_VERSION_NUMBER 0x1000005fL\r
+#define OPENSSL_VERSION_NUMBER 0x1000007fL\r
 #ifdef OPENSSL_FIPS\r
-#define OPENSSL_VERSION_TEXT   "OpenSSL 1.0.0e-fips 6 Sep 2011"\r
+#define OPENSSL_VERSION_TEXT   "OpenSSL 1.0.0g-fips 18 Jan 2012"\r
 #else\r
-#define OPENSSL_VERSION_TEXT   "OpenSSL 1.0.0e 6 Sep 2011"\r
+#define OPENSSL_VERSION_TEXT   "OpenSSL 1.0.0g 18 Jan 2012"\r
 #endif\r
 #define OPENSSL_VERSION_PTEXT  " part of " OPENSSL_VERSION_TEXT\r
 \r
index 083df1b..0f1c650 100644 (file)
@@ -1882,6 +1882,7 @@ void ERR_load_SSL_strings(void);
 #define SSL_F_SSL3_CALLBACK_CTRL                        233\r
 #define SSL_F_SSL3_CHANGE_CIPHER_STATE                  129\r
 #define SSL_F_SSL3_CHECK_CERT_AND_ALGORITHM             130\r
+#define SSL_F_SSL3_CHECK_CLIENT_HELLO                   304\r
 #define SSL_F_SSL3_CLIENT_HELLO                                 131\r
 #define SSL_F_SSL3_CONNECT                              132\r
 #define SSL_F_SSL3_CTRL                                         213\r
@@ -2139,6 +2140,7 @@ void ERR_load_SSL_strings(void);
 #define SSL_R_MISSING_TMP_RSA_KEY                       172\r
 #define SSL_R_MISSING_TMP_RSA_PKEY                      173\r
 #define SSL_R_MISSING_VERIFY_MESSAGE                    174\r
+#define SSL_R_MULTIPLE_SGC_RESTARTS                     346\r
 #define SSL_R_NON_SSLV2_INITIAL_PACKET                  175\r
 #define SSL_R_NO_CERTIFICATES_RETURNED                  176\r
 #define SSL_R_NO_CERTIFICATE_ASSIGNED                   177\r
index 63c36f1..e1bf847 100644 (file)
@@ -380,6 +380,17 @@ typedef struct ssl3_buffer_st
 #define TLS1_FLAGS_TLS_PADDING_BUG             0x0008\r
 #define TLS1_FLAGS_SKIP_CERT_VERIFY            0x0010\r
 \r
+/* SSL3_FLAGS_SGC_RESTART_DONE is set when we\r
+ * restart a handshake because of MS SGC and so prevents us\r
+ * from restarting the handshake in a loop. It's reset on a\r
+ * renegotiation, so effectively limits the client to one restart\r
+ * per negotiation. This limits the possibility of a DDoS\r
+ * attack where the client handshakes in a loop using SGC to\r
+ * restart. Servers which permit renegotiation can still be\r
+ * effected, but we can't prevent that.\r
+ */\r
+#define SSL3_FLAGS_SGC_RESTART_DONE            0x0040\r
+\r
 typedef struct ssl3_state_st\r
        {\r
        long flags;\r
index 672810d..1264201 100644 (file)
@@ -5,6 +5,18 @@
   This file gives a brief overview of the major changes between each OpenSSL
   release. For more details please read the CHANGES file.
 
+  Major changes between OpenSSL 1.0.0f and OpenSSL 1.0.0g:
+
+      o Fix for DTLS DoS issue CVE-2012-0050
+
+  Major changes between OpenSSL 1.0.0e and OpenSSL 1.0.0f:
+
+      o Fix for DTLS plaintext recovery attack CVE-2011-4108
+      o Clear block padding bytes of SSL 3.0 records CVE-2011-4576
+      o Only allow one SGC handshake restart for SSL/TLS CVE-2011-4619
+      o Check parameters are not NULL in GOST ENGINE CVE-2012-0027
+      o Check for malformed RFC3779 data CVE-2011-4577
+
   Major changes between OpenSSL 1.0.0d and OpenSSL 1.0.0e:
 
       o Fix for CRL vulnerability issue CVE-2011-3207
index 8984379..6144ddf 100644 (file)
@@ -1,5 +1,5 @@
 
- OpenSSL 1.0.0e 6 Sep 2011
+ OpenSSL 1.0.0g 18 Jan 2012
 
  Copyright (c) 1998-2011 The OpenSSL Project
  Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson
index 35a9448..7e48fb2 100644 (file)
Binary files a/dist/libeay32.dll and b/dist/libeay32.dll differ
index edf3e53..5416194 100644 (file)
Binary files a/dist/ssleay32.dll and b/dist/ssleay32.dll differ
index dcd54c8..6ebe36d 100644 (file)
@@ -114,11 +114,11 @@ BOOL LoadOpenSSL()
                return FALSE;\r
 #ifdef ENABLE_PROCESS_PROTECTION\r
        // 同梱するOpenSSLのバージョンに合わせてSHA1ハッシュ値を変更すること\r
-       // ssleay32.dll 1.0.0e\r
-       // libssl32.dll 1.0.0e\r
-       RegisterTrustedModuleSHA1Hash("\x4E\xB7\xA0\x22\x14\x4B\x58\x6D\xBC\xF5\x21\x0D\x96\x78\x0D\x79\x7D\x66\xB2\xB0");\r
-       // libeay32.dll 1.0.0e\r
-       RegisterTrustedModuleSHA1Hash("\x01\x32\x7A\xAE\x69\x26\xE6\x58\xC7\x63\x22\x1E\x53\x5A\x78\xBC\x61\xC7\xB5\xC1");\r
+       // ssleay32.dll 1.0.0g\r
+       // libssl32.dll 1.0.0g\r
+       RegisterTrustedModuleSHA1Hash("\x42\x32\x3E\x44\x35\xBC\x98\x6C\x45\xC9\xA2\xB8\x41\xE7\xDA\x7B\x6A\x98\xB2\x28");\r
+       // libeay32.dll 1.0.0g\r
+       RegisterTrustedModuleSHA1Hash("\x3F\xC8\x07\x84\xB3\xF0\x71\x4A\x18\x59\x52\x1F\x99\x09\x65\xB9\x49\xA7\x15\x36");\r
 #endif\r
        g_hOpenSSL = LoadLibrary("ssleay32.dll");\r
        // バージョン固定のためlibssl32.dllの読み込みは脆弱性の原因になり得るので廃止\r