FFFTPのソースコードです。
Revision | 7b7f293fc0ab27c9971b14a326f6875f6df62a86 (tree) |
---|---|
Time | 2014-08-07 23:51:19 |
Author | s_kawamoto <s_kawamoto@user...> |
Commiter | s_kawamoto |
Update OpenSSL to 1.0.1i.
@@ -2,6 +2,92 @@ | ||
2 | 2 | OpenSSL CHANGES |
3 | 3 | _______________ |
4 | 4 | |
5 | + Changes between 1.0.1h and 1.0.1i [6 Aug 2014] | |
6 | + | |
7 | + *) Fix SRP buffer overrun vulnerability. Invalid parameters passed to the | |
8 | + SRP code can be overrun an internal buffer. Add sanity check that | |
9 | + g, A, B < N to SRP code. | |
10 | + | |
11 | + Thanks to Sean Devlin and Watson Ladd of Cryptography Services, NCC | |
12 | + Group for discovering this issue. | |
13 | + (CVE-2014-3512) | |
14 | + [Steve Henson] | |
15 | + | |
16 | + *) A flaw in the OpenSSL SSL/TLS server code causes the server to negotiate | |
17 | + TLS 1.0 instead of higher protocol versions when the ClientHello message | |
18 | + is badly fragmented. This allows a man-in-the-middle attacker to force a | |
19 | + downgrade to TLS 1.0 even if both the server and the client support a | |
20 | + higher protocol version, by modifying the client's TLS records. | |
21 | + | |
22 | + Thanks to David Benjamin and Adam Langley (Google) for discovering and | |
23 | + researching this issue. | |
24 | + (CVE-2014-3511) | |
25 | + [David Benjamin] | |
26 | + | |
27 | + *) OpenSSL DTLS clients enabling anonymous (EC)DH ciphersuites are subject | |
28 | + to a denial of service attack. A malicious server can crash the client | |
29 | + with a null pointer dereference (read) by specifying an anonymous (EC)DH | |
30 | + ciphersuite and sending carefully crafted handshake messages. | |
31 | + | |
32 | + Thanks to Felix Gr?ert (Google) for discovering and researching this | |
33 | + issue. | |
34 | + (CVE-2014-3510) | |
35 | + [Emilia K?per] | |
36 | + | |
37 | + *) By sending carefully crafted DTLS packets an attacker could cause openssl | |
38 | + to leak memory. This can be exploited through a Denial of Service attack. | |
39 | + Thanks to Adam Langley for discovering and researching this issue. | |
40 | + (CVE-2014-3507) | |
41 | + [Adam Langley] | |
42 | + | |
43 | + *) An attacker can force openssl to consume large amounts of memory whilst | |
44 | + processing DTLS handshake messages. This can be exploited through a | |
45 | + Denial of Service attack. | |
46 | + Thanks to Adam Langley for discovering and researching this issue. | |
47 | + (CVE-2014-3506) | |
48 | + [Adam Langley] | |
49 | + | |
50 | + *) An attacker can force an error condition which causes openssl to crash | |
51 | + whilst processing DTLS packets due to memory being freed twice. This | |
52 | + can be exploited through a Denial of Service attack. | |
53 | + Thanks to Adam Langley and Wan-Teh Chang for discovering and researching | |
54 | + this issue. | |
55 | + (CVE-2014-3505) | |
56 | + [Adam Langley] | |
57 | + | |
58 | + *) If a multithreaded client connects to a malicious server using a resumed | |
59 | + session and the server sends an ec point format extension it could write | |
60 | + up to 255 bytes to freed memory. | |
61 | + | |
62 | + Thanks to Gabor Tyukasz (LogMeIn Inc) for discovering and researching this | |
63 | + issue. | |
64 | + (CVE-2014-3509) | |
65 | + [Gabor Tyukasz] | |
66 | + | |
67 | + *) A malicious server can crash an OpenSSL client with a null pointer | |
68 | + dereference (read) by specifying an SRP ciphersuite even though it was not | |
69 | + properly negotiated with the client. This can be exploited through a | |
70 | + Denial of Service attack. | |
71 | + | |
72 | + Thanks to Joonas Kuorilehto and Riku Hietam?i (Codenomicon) for | |
73 | + discovering and researching this issue. | |
74 | + (CVE-2014-5139) | |
75 | + [Steve Henson] | |
76 | + | |
77 | + *) A flaw in OBJ_obj2txt may cause pretty printing functions such as | |
78 | + X509_name_oneline, X509_name_print_ex et al. to leak some information | |
79 | + from the stack. Applications may be affected if they echo pretty printing | |
80 | + output to the attacker. | |
81 | + | |
82 | + Thanks to Ivan Fratric (Google) for discovering this issue. | |
83 | + (CVE-2014-3508) | |
84 | + [Emilia K?per, and Steve Henson] | |
85 | + | |
86 | + *) Fix ec_GFp_simple_points_make_affine (thus, EC_POINTs_mul etc.) | |
87 | + for corner cases. (Certain input points at infinity could lead to | |
88 | + bogus results, with non-infinity inputs mapped to infinity too.) | |
89 | + [Bodo Moeller] | |
90 | + | |
5 | 91 | Changes between 1.0.1g and 1.0.1h [5 Jun 2014] |
6 | 92 | |
7 | 93 | *) Fix for SSL/TLS MITM flaw. An attacker using a carefully crafted |
@@ -113,11 +113,6 @@ that came with the version of OpenSSL you are using. The pod format | ||
113 | 113 | documentation is included in each OpenSSL distribution under the docs |
114 | 114 | directory. |
115 | 115 | |
116 | -For information on parts of libcrypto that are not yet documented, you | |
117 | -might want to read Ariel Glenn's documentation on SSLeay 0.9, OpenSSL's | |
118 | -predecessor, at <URL: http://www.columbia.edu/~ariel/ssleay/>. Much | |
119 | -of this still applies to OpenSSL. | |
120 | - | |
121 | 116 | There is some documentation about certificate extensions and PKCS#12 |
122 | 117 | in doc/openssl.txt |
123 | 118 |
@@ -35,6 +35,9 @@ | ||
35 | 35 | #ifndef OPENSSL_NO_STORE |
36 | 36 | # define OPENSSL_NO_STORE |
37 | 37 | #endif |
38 | +#ifndef OPENSSL_NO_UNIT_TEST | |
39 | +# define OPENSSL_NO_UNIT_TEST | |
40 | +#endif | |
38 | 41 | |
39 | 42 | #endif /* OPENSSL_DOING_MAKEDEPEND */ |
40 | 43 |
@@ -74,6 +77,9 @@ | ||
74 | 77 | # if defined(OPENSSL_NO_STORE) && !defined(NO_STORE) |
75 | 78 | # define NO_STORE |
76 | 79 | # endif |
80 | +# if defined(OPENSSL_NO_UNIT_TEST) && !defined(NO_UNIT_TEST) | |
81 | +# define NO_UNIT_TEST | |
82 | +# endif | |
77 | 83 | #endif |
78 | 84 | |
79 | 85 | #define OPENSSL_CPUID_OBJ |
@@ -25,11 +25,11 @@ | ||
25 | 25 | * (Prior to 0.9.5a beta1, a different scheme was used: MMNNFFRBB for |
26 | 26 | * major minor fix final patch/beta) |
27 | 27 | */ |
28 | -#define OPENSSL_VERSION_NUMBER 0x1000108fL | |
28 | +#define OPENSSL_VERSION_NUMBER 0x1000109fL | |
29 | 29 | #ifdef OPENSSL_FIPS |
30 | -#define OPENSSL_VERSION_TEXT "OpenSSL 1.0.1h-fips 5 Jun 2014" | |
30 | +#define OPENSSL_VERSION_TEXT "OpenSSL 1.0.1i-fips 6 Aug 2014" | |
31 | 31 | #else |
32 | -#define OPENSSL_VERSION_TEXT "OpenSSL 1.0.1h 5 Jun 2014" | |
32 | +#define OPENSSL_VERSION_TEXT "OpenSSL 1.0.1i 6 Aug 2014" | |
33 | 33 | #endif |
34 | 34 | #define OPENSSL_VERSION_PTEXT " part of " OPENSSL_VERSION_TEXT |
35 | 35 |
@@ -264,6 +264,7 @@ extern "C" { | ||
264 | 264 | #define SSL_TXT_aGOST94 "aGOST94" |
265 | 265 | #define SSL_TXT_aGOST01 "aGOST01" |
266 | 266 | #define SSL_TXT_aGOST "aGOST" |
267 | +#define SSL_TXT_aSRP "aSRP" | |
267 | 268 | |
268 | 269 | #define SSL_TXT_DSS "DSS" |
269 | 270 | #define SSL_TXT_DH "DH" |
@@ -2055,6 +2056,10 @@ int SSL_set_session_secret_cb(SSL *s, tls_session_secret_cb_fn tls_session_secre | ||
2055 | 2056 | void SSL_set_debug(SSL *s, int debug); |
2056 | 2057 | int SSL_cache_hit(SSL *s); |
2057 | 2058 | |
2059 | +#ifndef OPENSSL_NO_UNIT_TEST | |
2060 | +const struct openssl_ssl_test_functions *SSL_test_functions(void); | |
2061 | +#endif | |
2062 | + | |
2058 | 2063 | /* BEGIN ERROR CODES */ |
2059 | 2064 | /* The following lines are auto generated by the script mkerr.pl. Any changes |
2060 | 2065 | * made after this point may be overwritten when the script is next run. |
@@ -2320,6 +2325,7 @@ void ERR_load_SSL_strings(void); | ||
2320 | 2325 | #define SSL_R_BAD_SRP_B_LENGTH 348 |
2321 | 2326 | #define SSL_R_BAD_SRP_G_LENGTH 349 |
2322 | 2327 | #define SSL_R_BAD_SRP_N_LENGTH 350 |
2328 | +#define SSL_R_BAD_SRP_PARAMETERS 371 | |
2323 | 2329 | #define SSL_R_BAD_SRP_S_LENGTH 351 |
2324 | 2330 | #define SSL_R_BAD_SRTP_MKI_VALUE 352 |
2325 | 2331 | #define SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST 353 |
@@ -5,10 +5,23 @@ | ||
5 | 5 | This file gives a brief overview of the major changes between each OpenSSL |
6 | 6 | release. For more details please read the CHANGES file. |
7 | 7 | |
8 | + Major changes between OpenSSL 1.0.1h and OpenSSL 1.0.1i [6 Aug 2014] | |
9 | + | |
10 | + o Fix for CVE-2014-3512 | |
11 | + o Fix for CVE-2014-3511 | |
12 | + o Fix for CVE-2014-3510 | |
13 | + o Fix for CVE-2014-3507 | |
14 | + o Fix for CVE-2014-3506 | |
15 | + o Fix for CVE-2014-3505 | |
16 | + o Fix for CVE-2014-3509 | |
17 | + o Fix for CVE-2014-5139 | |
18 | + o Fix for CVE-2014-3508 | |
19 | + | |
8 | 20 | Major changes between OpenSSL 1.0.1g and OpenSSL 1.0.1h [5 Jun 2014] |
9 | 21 | |
10 | 22 | o Fix for CVE-2014-0224 |
11 | 23 | o Fix for CVE-2014-0221 |
24 | + o Fix for CVE-2014-0198 | |
12 | 25 | o Fix for CVE-2014-0195 |
13 | 26 | o Fix for CVE-2014-3470 |
14 | 27 | o Fix for CVE-2010-5298 |
@@ -1,5 +1,5 @@ | ||
1 | 1 | |
2 | - OpenSSL 1.0.1h 5 Jun 2014 | |
2 | + OpenSSL 1.0.1i 6 Aug 2014 | |
3 | 3 | |
4 | 4 | Copyright (c) 1998-2011 The OpenSSL Project |
5 | 5 | Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson |
@@ -153,15 +153,15 @@ BOOL LoadOpenSSL() | ||
153 | 153 | #ifdef ENABLE_PROCESS_PROTECTION |
154 | 154 | // 同梱するOpenSSLのバージョンに合わせてSHA1ハッシュ値を変更すること |
155 | 155 | #if defined(_M_IX86) |
156 | - // ssleay32.dll 1.0.1h | |
157 | - RegisterTrustedModuleSHA1Hash("\x1B\x27\x4E\x29\x14\x78\x72\x0D\x33\x73\xD5\x98\xCF\xEA\x32\x07\x2B\x35\x69\x66"); | |
158 | - // libeay32.dll 1.0.1h | |
159 | - RegisterTrustedModuleSHA1Hash("\x1D\x2E\x70\x49\x84\x2C\xE9\x1F\x64\xE8\x84\xD4\x62\x5B\xF4\x34\x9A\x0F\x82\xFC"); | |
156 | + // ssleay32.dll 1.0.1i | |
157 | + RegisterTrustedModuleSHA1Hash("\xA0\x76\x7F\x44\x19\x91\x72\xFB\xF5\x0E\x03\xC7\x79\xE9\x4B\x4D\x72\x95\xED\x5C"); | |
158 | + // libeay32.dll 1.0.1i | |
159 | + RegisterTrustedModuleSHA1Hash("\x79\xDC\x7A\x43\x8D\x4B\x57\x60\xE6\xBE\x18\x98\xD4\x9A\x36\x99\x74\x6C\x16\x06"); | |
160 | 160 | #elif defined(_M_AMD64) |
161 | - // ssleay32.dll 1.0.1h | |
162 | - RegisterTrustedModuleSHA1Hash("\xB7\x5C\x31\xF3\x28\x73\xA0\x3C\x33\xDD\xBC\xB5\x8F\xD1\x38\xB6\xCE\x67\x4C\x40"); | |
163 | - // libeay32.dll 1.0.1h | |
164 | - RegisterTrustedModuleSHA1Hash("\x5E\xBF\x56\x8C\xED\x06\xE8\x90\xE3\xC0\x3B\x6C\x51\x66\x4F\xC9\x9F\x1F\xF5\x89"); | |
161 | + // ssleay32.dll 1.0.1i | |
162 | + RegisterTrustedModuleSHA1Hash("\x1E\x93\xF0\x23\xBB\x19\x62\x0C\x8A\x82\x1C\xE6\x4B\x68\x62\xE9\xB0\x7D\x37\x5C"); | |
163 | + // libeay32.dll 1.0.1i | |
164 | + RegisterTrustedModuleSHA1Hash("\xF1\x77\xF4\x51\x23\xDF\x0F\x71\x33\xC5\x8C\xCF\xCF\x64\x09\xEF\xF9\x23\x1B\x30"); | |
165 | 165 | #endif |
166 | 166 | #endif |
167 | 167 | g_hOpenSSL = LoadLibrary("ssleay32.dll"); |