Skip to content

Commit ddd40fd

Browse files
committed
Merge remote-tracking branch 'origin/v0.10' into v0.12
Conflicts: ChangeLog doc/api/assert.markdown src/node_version.h test/simple/test-crypto-stream.js vcbuild.bat
2 parents de5f24a + ff32b81 commit ddd40fd

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

121 files changed

+2005
-5421
lines changed

ChangeLog

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
2015.01.20, Version 0.11.15 (Unstable)
1+
2015.01.20, Version 0.11.15 (Unstable), 8a9f263a82089814e69f277f9fecd2888705101b
22

33
* v8: Upgrade to 3.28.73
44

@@ -926,7 +926,16 @@
926926
* console: `console.dir()` bypasses inspect() methods (Nathan Rajlich)
927927

928928

929-
2014.12.22, Version 0.10.35 (Stable)
929+
2015.01.26, Version 0.10.36 (Stable), 09b482886bdd3d863c3d4e7d71264eac0daaf9e1
930+
931+
* openssl: update to 1.0.1l
932+
933+
* v8: Fix debugger and strict mode regression (Julien Gilli)
934+
935+
* v8: don't busy loop in cpu profiler thread (Ben Noordhuis)
936+
937+
938+
2014.12.22, Version 0.10.35 (Stable), a363f61ca839e817eb6853c5dc5af8c3b9b9226b
930939

931940
* tls: re-add 1024-bit SSL certs removed by f9456a2 (Chris Dickinson)
932941

deps/openssl/openssl.gyp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -925,9 +925,8 @@
925925
'asm/x64-win32-masm/whrlpool/wp-x86_64.asm',
926926
'asm/x64-win32-masm/modes/ghash-x86_64.asm',
927927
'asm/x64-win32-masm/x86_64cpuid.asm',
928-
# Non-generated asm
929-
'openssl/crypto/bn/asm/x86_64-win32-masm.asm',
930928
# No asm available
929+
'openssl/crypto/bn/bn_asm.c',
931930
'openssl/crypto/bf/bf_enc.c',
932931
'openssl/crypto/cast/c_enc.c',
933932
'openssl/crypto/camellia/cmll_misc.c',

deps/openssl/openssl/CHANGES

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,141 @@
22
OpenSSL CHANGES
33
_______________
44

5+
Changes between 1.0.1k and 1.0.1l [15 Jan 2015]
6+
7+
*) Build fixes for the Windows and OpenVMS platforms
8+
[Matt Caswell and Richard Levitte]
9+
10+
Changes between 1.0.1j and 1.0.1k [8 Jan 2015]
11+
12+
*) Fix DTLS segmentation fault in dtls1_get_record. A carefully crafted DTLS
13+
message can cause a segmentation fault in OpenSSL due to a NULL pointer
14+
dereference. This could lead to a Denial Of Service attack. Thanks to
15+
Markus Stenberg of Cisco Systems, Inc. for reporting this issue.
16+
(CVE-2014-3571)
17+
[Steve Henson]
18+
19+
*) Fix DTLS memory leak in dtls1_buffer_record. A memory leak can occur in the
20+
dtls1_buffer_record function under certain conditions. In particular this
21+
could occur if an attacker sent repeated DTLS records with the same
22+
sequence number but for the next epoch. The memory leak could be exploited
23+
by an attacker in a Denial of Service attack through memory exhaustion.
24+
Thanks to Chris Mueller for reporting this issue.
25+
(CVE-2015-0206)
26+
[Matt Caswell]
27+
28+
*) Fix issue where no-ssl3 configuration sets method to NULL. When openssl is
29+
built with the no-ssl3 option and a SSL v3 ClientHello is received the ssl
30+
method would be set to NULL which could later result in a NULL pointer
31+
dereference. Thanks to Frank Schmirler for reporting this issue.
32+
(CVE-2014-3569)
33+
[Kurt Roeckx]
34+
35+
*) Abort handshake if server key exchange message is omitted for ephemeral
36+
ECDH ciphersuites.
37+
38+
Thanks to Karthikeyan Bhargavan of the PROSECCO team at INRIA for
39+
reporting this issue.
40+
(CVE-2014-3572)
41+
[Steve Henson]
42+
43+
*) Remove non-export ephemeral RSA code on client and server. This code
44+
violated the TLS standard by allowing the use of temporary RSA keys in
45+
non-export ciphersuites and could be used by a server to effectively
46+
downgrade the RSA key length used to a value smaller than the server
47+
certificate. Thanks for Karthikeyan Bhargavan of the PROSECCO team at
48+
INRIA or reporting this issue.
49+
(CVE-2015-0204)
50+
[Steve Henson]
51+
52+
*) Fixed issue where DH client certificates are accepted without verification.
53+
An OpenSSL server will accept a DH certificate for client authentication
54+
without the certificate verify message. This effectively allows a client to
55+
authenticate without the use of a private key. This only affects servers
56+
which trust a client certificate authority which issues certificates
57+
containing DH keys: these are extremely rare and hardly ever encountered.
58+
Thanks for Karthikeyan Bhargavan of the PROSECCO team at INRIA or reporting
59+
this issue.
60+
(CVE-2015-0205)
61+
[Steve Henson]
62+
63+
*) Ensure that the session ID context of an SSL is updated when its
64+
SSL_CTX is updated via SSL_set_SSL_CTX.
65+
66+
The session ID context is typically set from the parent SSL_CTX,
67+
and can vary with the CTX.
68+
[Adam Langley]
69+
70+
*) Fix various certificate fingerprint issues.
71+
72+
By using non-DER or invalid encodings outside the signed portion of a
73+
certificate the fingerprint can be changed without breaking the signature.
74+
Although no details of the signed portion of the certificate can be changed
75+
this can cause problems with some applications: e.g. those using the
76+
certificate fingerprint for blacklists.
77+
78+
1. Reject signatures with non zero unused bits.
79+
80+
If the BIT STRING containing the signature has non zero unused bits reject
81+
the signature. All current signature algorithms require zero unused bits.
82+
83+
2. Check certificate algorithm consistency.
84+
85+
Check the AlgorithmIdentifier inside TBS matches the one in the
86+
certificate signature. NB: this will result in signature failure
87+
errors for some broken certificates.
88+
89+
Thanks to Konrad Kraszewski from Google for reporting this issue.
90+
91+
3. Check DSA/ECDSA signatures use DER.
92+
93+
Reencode DSA/ECDSA signatures and compare with the original received
94+
signature. Return an error if there is a mismatch.
95+
96+
This will reject various cases including garbage after signature
97+
(thanks to Antti Karjalainen and Tuomo Untinen from the Codenomicon CROSS
98+
program for discovering this case) and use of BER or invalid ASN.1 INTEGERs
99+
(negative or with leading zeroes).
100+
101+
Further analysis was conducted and fixes were developed by Stephen Henson
102+
of the OpenSSL core team.
103+
104+
(CVE-2014-8275)
105+
[Steve Henson]
106+
107+
*) Correct Bignum squaring. Bignum squaring (BN_sqr) may produce incorrect
108+
results on some platforms, including x86_64. This bug occurs at random
109+
with a very low probability, and is not known to be exploitable in any
110+
way, though its exact impact is difficult to determine. Thanks to Pieter
111+
Wuille (Blockstream) who reported this issue and also suggested an initial
112+
fix. Further analysis was conducted by the OpenSSL development team and
113+
Adam Langley of Google. The final fix was developed by Andy Polyakov of
114+
the OpenSSL core team.
115+
(CVE-2014-3570)
116+
[Andy Polyakov]
117+
118+
*) Do not resume sessions on the server if the negotiated protocol
119+
version does not match the session's version. Resuming with a different
120+
version, while not strictly forbidden by the RFC, is of questionable
121+
sanity and breaks all known clients.
122+
[David Benjamin, Emilia K�sper]
123+
124+
*) Tighten handling of the ChangeCipherSpec (CCS) message: reject
125+
early CCS messages during renegotiation. (Note that because
126+
renegotiation is encrypted, this early CCS was not exploitable.)
127+
[Emilia K�sper]
128+
129+
*) Tighten client-side session ticket handling during renegotiation:
130+
ensure that the client only accepts a session ticket if the server sends
131+
the extension anew in the ServerHello. Previously, a TLS client would
132+
reuse the old extension state and thus accept a session ticket if one was
133+
announced in the initial ServerHello.
134+
135+
Similarly, ensure that the client requires a session ticket if one
136+
was advertised in the ServerHello. Previously, a TLS client would
137+
ignore a missing NewSessionTicket message.
138+
[Emilia K�sper]
139+
5140
Changes between 1.0.1i and 1.0.1j [15 Oct 2014]
6141

7142
*) SRTP Memory Leak.

deps/openssl/openssl/Configure

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -804,6 +804,11 @@ PROCESS_ARGS:
804804
{
805805
$disabled{"tls1"} = "option(tls)"
806806
}
807+
elsif ($1 eq "ssl3-method")
808+
{
809+
$disabled{"ssl3-method"} = "option(ssl)";
810+
$disabled{"ssl3"} = "option(ssl)";
811+
}
807812
else
808813
{
809814
$disabled{$1} = "option";

deps/openssl/openssl/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
## Makefile for OpenSSL
55
##
66

7-
VERSION=1.0.1j
7+
VERSION=1.0.1l
88
MAJOR=1
99
MINOR=0.1
1010
SHLIB_VERSION_NUMBER=1.0.0

deps/openssl/openssl/Makefile.bak

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
## Makefile for OpenSSL
55
##
66

7-
VERSION=1.0.1j-dev
7+
VERSION=1.0.1l-dev
88
MAJOR=1
99
MINOR=0.1
1010
SHLIB_VERSION_NUMBER=1.0.0

deps/openssl/openssl/NEWS

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,21 @@
55
This file gives a brief overview of the major changes between each OpenSSL
66
release. For more details please read the CHANGES file.
77

8+
Major changes between OpenSSL 1.0.1k and OpenSSL 1.0.1l [15 Jan 2015]
9+
10+
o Build fixes for the Windows and OpenVMS platforms
11+
12+
Major changes between OpenSSL 1.0.1j and OpenSSL 1.0.1k [8 Jan 2015]
13+
14+
o Fix for CVE-2014-3571
15+
o Fix for CVE-2015-0206
16+
o Fix for CVE-2014-3569
17+
o Fix for CVE-2014-3572
18+
o Fix for CVE-2015-0204
19+
o Fix for CVE-2015-0205
20+
o Fix for CVE-2014-8275
21+
o Fix for CVE-2014-3570
22+
823
Major changes between OpenSSL 1.0.1i and OpenSSL 1.0.1j [15 Oct 2014]
924

1025
o Fix for CVE-2014-3513

deps/openssl/openssl/README

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
OpenSSL 1.0.1j 15 Oct 2014
2+
OpenSSL 1.0.1l 15 Jan 2015
33

44
Copyright (c) 1998-2011 The OpenSSL Project
55
Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson

deps/openssl/openssl/apps/ca.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -703,7 +703,7 @@ EF_ALIGNMENT=0;
703703
ERR_clear_error();
704704
#ifdef RL_DEBUG
705705
if (!p)
706-
BIO_printf(bio_err, "DEBUG: unique_subject undefined\n", p);
706+
BIO_printf(bio_err, "DEBUG: unique_subject undefined\n");
707707
#endif
708708
#ifdef RL_DEBUG
709709
BIO_printf(bio_err, "DEBUG: configured unique_subject is %d\n",

deps/openssl/openssl/apps/dgst.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,8 @@ int MAIN(int argc, char **argv)
273273
BIO_printf(bio_err,"-d to output debug info\n");
274274
BIO_printf(bio_err,"-hex output as hex dump\n");
275275
BIO_printf(bio_err,"-binary output in binary form\n");
276+
BIO_printf(bio_err,"-hmac arg set the HMAC key to arg\n");
277+
BIO_printf(bio_err,"-non-fips-allow allow use of non FIPS digest\n");
276278
BIO_printf(bio_err,"-sign file sign digest using private key in file\n");
277279
BIO_printf(bio_err,"-verify file verify a signature using public key in file\n");
278280
BIO_printf(bio_err,"-prverify file verify a signature using private key in file\n");

deps/openssl/openssl/apps/ocsp.c

Lines changed: 45 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -583,51 +583,52 @@ int MAIN(int argc, char **argv)
583583
BIO_printf (bio_err, "OCSP utility\n");
584584
BIO_printf (bio_err, "Usage ocsp [options]\n");
585585
BIO_printf (bio_err, "where options are\n");
586-
BIO_printf (bio_err, "-out file output filename\n");
587-
BIO_printf (bio_err, "-issuer file issuer certificate\n");
588-
BIO_printf (bio_err, "-cert file certificate to check\n");
589-
BIO_printf (bio_err, "-serial n serial number to check\n");
590-
BIO_printf (bio_err, "-signer file certificate to sign OCSP request with\n");
591-
BIO_printf (bio_err, "-signkey file private key to sign OCSP request with\n");
592-
BIO_printf (bio_err, "-sign_other file additional certificates to include in signed request\n");
593-
BIO_printf (bio_err, "-no_certs don't include any certificates in signed request\n");
594-
BIO_printf (bio_err, "-req_text print text form of request\n");
595-
BIO_printf (bio_err, "-resp_text print text form of response\n");
596-
BIO_printf (bio_err, "-text print text form of request and response\n");
597-
BIO_printf (bio_err, "-reqout file write DER encoded OCSP request to \"file\"\n");
598-
BIO_printf (bio_err, "-respout file write DER encoded OCSP reponse to \"file\"\n");
599-
BIO_printf (bio_err, "-reqin file read DER encoded OCSP request from \"file\"\n");
600-
BIO_printf (bio_err, "-respin file read DER encoded OCSP reponse from \"file\"\n");
601-
BIO_printf (bio_err, "-nonce add OCSP nonce to request\n");
602-
BIO_printf (bio_err, "-no_nonce don't add OCSP nonce to request\n");
603-
BIO_printf (bio_err, "-url URL OCSP responder URL\n");
604-
BIO_printf (bio_err, "-host host:n send OCSP request to host on port n\n");
605-
BIO_printf (bio_err, "-path path to use in OCSP request\n");
606-
BIO_printf (bio_err, "-CApath dir trusted certificates directory\n");
607-
BIO_printf (bio_err, "-CAfile file trusted certificates file\n");
608-
BIO_printf (bio_err, "-VAfile file validator certificates file\n");
609-
BIO_printf (bio_err, "-validity_period n maximum validity discrepancy in seconds\n");
610-
BIO_printf (bio_err, "-status_age n maximum status age in seconds\n");
611-
BIO_printf (bio_err, "-noverify don't verify response at all\n");
612-
BIO_printf (bio_err, "-verify_other file additional certificates to search for signer\n");
613-
BIO_printf (bio_err, "-trust_other don't verify additional certificates\n");
614-
BIO_printf (bio_err, "-no_intern don't search certificates contained in response for signer\n");
586+
BIO_printf (bio_err, "-out file output filename\n");
587+
BIO_printf (bio_err, "-issuer file issuer certificate\n");
588+
BIO_printf (bio_err, "-cert file certificate to check\n");
589+
BIO_printf (bio_err, "-serial n serial number to check\n");
590+
BIO_printf (bio_err, "-signer file certificate to sign OCSP request with\n");
591+
BIO_printf (bio_err, "-signkey file private key to sign OCSP request with\n");
592+
BIO_printf (bio_err, "-sign_other file additional certificates to include in signed request\n");
593+
BIO_printf (bio_err, "-no_certs don't include any certificates in signed request\n");
594+
BIO_printf (bio_err, "-req_text print text form of request\n");
595+
BIO_printf (bio_err, "-resp_text print text form of response\n");
596+
BIO_printf (bio_err, "-text print text form of request and response\n");
597+
BIO_printf (bio_err, "-reqout file write DER encoded OCSP request to \"file\"\n");
598+
BIO_printf (bio_err, "-respout file write DER encoded OCSP reponse to \"file\"\n");
599+
BIO_printf (bio_err, "-reqin file read DER encoded OCSP request from \"file\"\n");
600+
BIO_printf (bio_err, "-respin file read DER encoded OCSP reponse from \"file\"\n");
601+
BIO_printf (bio_err, "-nonce add OCSP nonce to request\n");
602+
BIO_printf (bio_err, "-no_nonce don't add OCSP nonce to request\n");
603+
BIO_printf (bio_err, "-url URL OCSP responder URL\n");
604+
BIO_printf (bio_err, "-host host:n send OCSP request to host on port n\n");
605+
BIO_printf (bio_err, "-path path to use in OCSP request\n");
606+
BIO_printf (bio_err, "-CApath dir trusted certificates directory\n");
607+
BIO_printf (bio_err, "-CAfile file trusted certificates file\n");
608+
BIO_printf (bio_err, "-VAfile file validator certificates file\n");
609+
BIO_printf (bio_err, "-validity_period n maximum validity discrepancy in seconds\n");
610+
BIO_printf (bio_err, "-status_age n maximum status age in seconds\n");
611+
BIO_printf (bio_err, "-noverify don't verify response at all\n");
612+
BIO_printf (bio_err, "-verify_other file additional certificates to search for signer\n");
613+
BIO_printf (bio_err, "-trust_other don't verify additional certificates\n");
614+
BIO_printf (bio_err, "-no_intern don't search certificates contained in response for signer\n");
615615
BIO_printf (bio_err, "-no_signature_verify don't check signature on response\n");
616-
BIO_printf (bio_err, "-no_cert_verify don't check signing certificate\n");
617-
BIO_printf (bio_err, "-no_chain don't chain verify response\n");
618-
BIO_printf (bio_err, "-no_cert_checks don't do additional checks on signing certificate\n");
619-
BIO_printf (bio_err, "-port num port to run responder on\n");
620-
BIO_printf (bio_err, "-index file certificate status index file\n");
621-
BIO_printf (bio_err, "-CA file CA certificate\n");
622-
BIO_printf (bio_err, "-rsigner file responder certificate to sign responses with\n");
623-
BIO_printf (bio_err, "-rkey file responder key to sign responses with\n");
624-
BIO_printf (bio_err, "-rother file other certificates to include in response\n");
625-
BIO_printf (bio_err, "-resp_no_certs don't include any certificates in response\n");
626-
BIO_printf (bio_err, "-nmin n number of minutes before next update\n");
627-
BIO_printf (bio_err, "-ndays n number of days before next update\n");
628-
BIO_printf (bio_err, "-resp_key_id identify reponse by signing certificate key ID\n");
629-
BIO_printf (bio_err, "-nrequest n number of requests to accept (default unlimited)\n");
630-
BIO_printf (bio_err, "-<dgst alg> use specified digest in the request\n");
616+
BIO_printf (bio_err, "-no_cert_verify don't check signing certificate\n");
617+
BIO_printf (bio_err, "-no_chain don't chain verify response\n");
618+
BIO_printf (bio_err, "-no_cert_checks don't do additional checks on signing certificate\n");
619+
BIO_printf (bio_err, "-port num port to run responder on\n");
620+
BIO_printf (bio_err, "-index file certificate status index file\n");
621+
BIO_printf (bio_err, "-CA file CA certificate\n");
622+
BIO_printf (bio_err, "-rsigner file responder certificate to sign responses with\n");
623+
BIO_printf (bio_err, "-rkey file responder key to sign responses with\n");
624+
BIO_printf (bio_err, "-rother file other certificates to include in response\n");
625+
BIO_printf (bio_err, "-resp_no_certs don't include any certificates in response\n");
626+
BIO_printf (bio_err, "-nmin n number of minutes before next update\n");
627+
BIO_printf (bio_err, "-ndays n number of days before next update\n");
628+
BIO_printf (bio_err, "-resp_key_id identify reponse by signing certificate key ID\n");
629+
BIO_printf (bio_err, "-nrequest n number of requests to accept (default unlimited)\n");
630+
BIO_printf (bio_err, "-<dgst alg> use specified digest in the request\n");
631+
BIO_printf (bio_err, "-timeout n timeout connection to OCSP responder after n seconds\n");
631632
goto end;
632633
}
633634

@@ -1398,16 +1399,7 @@ OCSP_RESPONSE *process_responder(BIO *err, OCSP_REQUEST *req,
13981399
if (use_ssl == 1)
13991400
{
14001401
BIO *sbio;
1401-
#if !defined(OPENSSL_NO_SSL2) && !defined(OPENSSL_NO_SSL3)
14021402
ctx = SSL_CTX_new(SSLv23_client_method());
1403-
#elif !defined(OPENSSL_NO_SSL3)
1404-
ctx = SSL_CTX_new(SSLv3_client_method());
1405-
#elif !defined(OPENSSL_NO_SSL2)
1406-
ctx = SSL_CTX_new(SSLv2_client_method());
1407-
#else
1408-
BIO_printf(err, "SSL is disabled\n");
1409-
goto end;
1410-
#endif
14111403
if (ctx == NULL)
14121404
{
14131405
BIO_printf(err, "Error creating SSL context.\n");

deps/openssl/openssl/apps/openssl.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -435,9 +435,7 @@ int main(int Argc, char *ARGV[])
435435
if (prog != NULL) lh_FUNCTION_free(prog);
436436
if (arg.data != NULL) OPENSSL_free(arg.data);
437437

438-
apps_shutdown();
439438

440-
CRYPTO_mem_leaks(bio_err);
441439
if (bio_err != NULL)
442440
{
443441
BIO_free(bio_err);
@@ -450,6 +448,9 @@ int main(int Argc, char *ARGV[])
450448
OPENSSL_free(Argv);
451449
}
452450
#endif
451+
apps_shutdown();
452+
CRYPTO_mem_leaks(bio_err);
453+
453454
OPENSSL_EXIT(ret);
454455
}
455456

0 commit comments

Comments
 (0)