openssl.git
9 years agoFix OID handling:
Emilia Kasper [Wed, 2 Jul 2014 17:02:33 +0000 (19:02 +0200)]
Fix OID handling:

- Upon parsing, reject OIDs with invalid base-128 encoding.
- Always NUL-terminate the destination buffer in OBJ_obj2txt printing function.

CVE-2014-3508

Reviewed-by: Dr. Stephen Henson <steve@openssl.org>
Reviewed-by: Kurt Roeckx <kurt@openssl.org>
Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoFix DTLS anonymous EC(DH) denial of service
Emilia Käsper [Thu, 24 Jul 2014 20:15:29 +0000 (22:15 +0200)]
Fix DTLS anonymous EC(DH) denial of service

CVE-2014-3510

Reviewed-by: Dr. Stephen Henson <steve@openssl.org>
9 years agoFix protocol downgrade bug in case of fragmented packets
David Benjamin [Wed, 23 Jul 2014 20:32:21 +0000 (22:32 +0200)]
Fix protocol downgrade bug in case of fragmented packets

CVE-2014-3511

Reviewed-by: Emilia Käsper <emilia@openssl.org>
Reviewed-by: Bodo Möller <bodo@openssl.org>
9 years agoRemove some duplicate DTLS code.
Adam Langley [Fri, 6 Jun 2014 21:47:07 +0000 (14:47 -0700)]
Remove some duplicate DTLS code.

In a couple of functions, a sequence number would be calculated twice.

Additionally, in |dtls1_process_out_of_seq_message|, we know that
|frag_len| <= |msg_hdr->msg_len| so the later tests for |frag_len <
msg_hdr->msg_len| can be more clearly written as |frag_len !=
msg_hdr->msg_len|, since that's the only remaining case.

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Emilia Käsper <emilia@openssl.org>
9 years agoApplying same fix as in dtls1_process_out_of_seq_message. A truncated DTLS fragment...
Matt Caswell [Thu, 24 Jul 2014 22:54:28 +0000 (23:54 +0100)]
Applying same fix as in dtls1_process_out_of_seq_message. A truncated DTLS fragment would cause *ok to be clear, but the return value would still be the number of bytes read.

Problem identified by Emilia Käsper, based on previous issue/patch by Adam
Langley.

Reviewed-by: Emilia Käsper <emilia@openssl.org>
9 years agoFix return code for truncated DTLS fragment.
Adam Langley [Fri, 6 Jun 2014 21:44:20 +0000 (14:44 -0700)]
Fix return code for truncated DTLS fragment.

Previously, a truncated DTLS fragment in
|dtls1_process_out_of_seq_message| would cause *ok to be cleared, but
the return value would still be the number of bytes read. This would
cause |dtls1_get_message| not to consider it an error and it would
continue processing as normal until the calling function noticed that
*ok was zero.

I can't see an exploit here because |dtls1_get_message| uses
|s->init_num| as the length, which will always be zero from what I can
see.

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Emilia Käsper <emilia@openssl.org>
9 years agoFix memory leak from zero-length DTLS fragments.
Adam Langley [Fri, 6 Jun 2014 21:30:33 +0000 (14:30 -0700)]
Fix memory leak from zero-length DTLS fragments.

The |pqueue_insert| function can fail if one attempts to insert a
duplicate sequence number. When handling a fragment of an out of
sequence message, |dtls1_process_out_of_seq_message| would not call
|dtls1_reassemble_fragment| if the fragment's length was zero. It would
then allocate a fresh fragment and attempt to insert it, but ignore the
return value, leaking the fragment.

This allows an attacker to exhaust the memory of a DTLS peer.

Fixes CVE-2014-3507

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Emilia Käsper <emilia@openssl.org>
9 years agoFix DTLS handshake message size checks.
Matt Caswell [Fri, 6 Jun 2014 21:25:52 +0000 (14:25 -0700)]
Fix DTLS handshake message size checks.

In |dtls1_reassemble_fragment|, the value of
|msg_hdr->frag_off+frag_len| was being checked against the maximum
handshake message size, but then |msg_len| bytes were allocated for the
fragment buffer. This means that so long as the fragment was within the
allowed size, the pending handshake message could consume 16MB + 2MB
(for the reassembly bitmap). Approx 10 outstanding handshake messages
are allowed, meaning that an attacker could consume ~180MB per DTLS
connection.

In the non-fragmented path (in |dtls1_process_out_of_seq_message|), no
check was applied.

Fixes CVE-2014-3506

Wholly based on patch by Adam Langley with one minor amendment.

Reviewed-by: Emilia Käsper <emilia@openssl.org>
9 years agoAdded comment for the frag->reassembly == NULL case as per feedback from Emilia
Matt Caswell [Thu, 24 Jul 2014 22:33:34 +0000 (23:33 +0100)]
Added comment for the frag->reassembly == NULL case as per feedback from Emilia

Reviewed-by: Emilia Käsper <emilia@openssl.org>
9 years agoAvoid double free when processing DTLS packets.
Adam Langley [Fri, 6 Jun 2014 21:19:21 +0000 (14:19 -0700)]
Avoid double free when processing DTLS packets.

The |item| variable, in both of these cases, may contain a pointer to a
|pitem| structure within |s->d1->buffered_messages|. It was being freed
in the error case while still being in |buffered_messages|. When the
error later caused the |SSL*| to be destroyed, the item would be double
freed.

Thanks to Wah-Teh Chang for spotting that the fix in 1632ef74 was
inconsistent with the other error paths (but correct).

Fixes CVE-2014-3505

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Emilia Käsper <emilia@openssl.org>
9 years agoFix warnings about ignored return values.
Dr. Stephen Henson [Thu, 17 Mar 2011 14:43:13 +0000 (14:43 +0000)]
Fix warnings about ignored return values.
(cherry picked from commit 27131fe8f7418bf22b1e3000ea6a5d7b1ec8ebd4)
Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoSimplify and fix ec_GFp_simple_points_make_affine
Bodo Moeller [Fri, 1 Aug 2014 15:18:14 +0000 (17:18 +0200)]
Simplify and fix ec_GFp_simple_points_make_affine
(which didn't always handle value 0 correctly).

Reviewed-by: emilia@openssl.org
Conflicts:
CHANGES
crypto/ec/ectest.c

9 years ago"EC_POINT_invert" was checking "dbl" function pointer instead of "invert".
Billy Brumley [Mon, 21 Jul 2014 21:08:23 +0000 (22:08 +0100)]
"EC_POINT_invert" was checking "dbl" function pointer instead of "invert".

PR#2569

Reviewed-by: Rich Salz <rsalz@openssl.org>
(cherry picked from commit cba11f57ce161fd301a72194827327128191de7e)

9 years agoRemove old unused and unmaintained demonstration code.
Tim Hudson [Mon, 21 Jul 2014 19:26:17 +0000 (05:26 +1000)]
Remove old unused and unmaintained demonstration code.

Reviewed-by: Dr. Stephen Henson <steve@openssl.org>
(cherry picked from commit 62352b8138018775a4c085a105fccd9cdcb6323f)

9 years agoMinor documentation update removing "really" and a
Tim Hudson [Mon, 21 Jul 2014 10:03:50 +0000 (20:03 +1000)]
Minor documentation update removing "really" and a
statement of opinion rather than a fact.

Reviewed-by: Dr. Stephen Henson <steve@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(cherry picked from commit c8d133e4b6f1ed1b7ad3c1a6d2c62f460e26c050)

9 years agoFix documentation for RSA_set_method(3)
Dr. Stephen Henson [Sat, 19 Jul 2014 13:20:05 +0000 (14:20 +0100)]
Fix documentation for RSA_set_method(3)

PR#1675
Reviewed-by: Matt Caswell <matt@openssl.org>
(cherry picked from commit 197400c3f0d617d71ad8167b52fb73046d334320)

9 years agoFix typo, add reference.
Jeffrey Walton [Thu, 17 Jul 2014 10:25:02 +0000 (11:25 +0100)]
Fix typo, add reference.

PR#3456
Reviewed-by: Stephen Henson <steve@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(cherry picked from commit d48e78f0cf22aaddb563f4bcfccf25b1a45ac8a4)

9 years agoAdd Matt Caswell's fingerprint, and general update on the fingerprints file to bring...
Matt Caswell [Tue, 15 Jul 2014 21:47:29 +0000 (22:47 +0100)]
Add Matt Caswell's fingerprint, and general update on the fingerprints file to bring it up to date

Reviewed-by: Tim Hudson <tjh@openssl.org>
(cherry picked from commit 3bd548192a03142c80cf8bc68659d79dea20a738)

9 years agoClarify -Verify and PSK.
Dr. Stephen Henson [Tue, 15 Jul 2014 19:22:39 +0000 (20:22 +0100)]
Clarify -Verify and PSK.

PR#3452
(cherry picked from commit ca2015a617842fed3d36ed4dcbbf8d5e27bc5216)

9 years agoFix DTLS certificate requesting code.
Dr. Stephen Henson [Tue, 15 Jul 2014 17:21:59 +0000 (18:21 +0100)]
Fix DTLS certificate requesting code.

Use same logic when determining when to expect a client
certificate for both TLS and DTLS.

PR#3452
(cherry picked from commit c8d710dc5f83d69d802f941a4cc5895eb5fe3d65)

9 years agoAdd ECC extensions with DTLS.
Dr. Stephen Henson [Tue, 15 Jul 2014 11:20:30 +0000 (12:20 +0100)]
Add ECC extensions with DTLS.

PR#3449
(cherry picked from commit 2054eb771ea29378f90d3a77c2f4015b17de702d)

9 years agoDon't allow -www etc options with DTLS.
Dr. Stephen Henson [Tue, 15 Jul 2014 11:22:49 +0000 (12:22 +0100)]
Don't allow -www etc options with DTLS.

The options which emulate a web server don't make sense when doing DTLS.
Exit with an error if an attempt is made to use them.

PR#3453
(cherry picked from commit 58a2aaeade8bdecd0f9f0df41927f7cff3012547)

9 years agoUse case insensitive compare for servername.
Dr. Stephen Henson [Mon, 14 Jul 2014 22:59:13 +0000 (23:59 +0100)]
Use case insensitive compare for servername.

PR#3445
(cherry picked from commit 1c3e9a7c67ccdc5e770829fe951e5832e600d377)

9 years agoUse more common name for GOST key exchange.
Dr. Stephen Henson [Mon, 14 Jul 2014 14:05:50 +0000 (15:05 +0100)]
Use more common name for GOST key exchange.
(cherry picked from commit 7aabd9c92fe6f0ea2a82869e5171dcc4518cee85)

9 years agoFixed valgrind complaint due to BN_consttime_swap reading uninitialised data.
Matt Caswell [Thu, 10 Jul 2014 22:47:31 +0000 (23:47 +0100)]
Fixed valgrind complaint due to BN_consttime_swap reading uninitialised data.
This is actually ok for this function, but initialised to zero anyway if
PURIFY defined.

This does have the impact of masking any *real* unitialised data reads in bn though.

Patch based on approach suggested by Rich Salz.

PR#3415

(cherry picked from commit 77747e2d9a5573b1dbc15e247ce18c03374c760c)

9 years agoAdd names of GOST algorithms.
Peter Mosmans [Sun, 13 Jul 2014 17:30:07 +0000 (18:30 +0100)]
Add names of GOST algorithms.

PR#3440
(cherry picked from commit 924e5eda2c82d737cc5a1b9c37918aa6e34825da)

Conflicts:

ssl/ssl_ciph.c

9 years ago* crypto/ui/ui_lib.c: misplaced brace in switch statement.
Richard Levitte [Sun, 13 Jul 2014 17:11:29 +0000 (19:11 +0200)]
* crypto/ui/ui_lib.c: misplaced brace in switch statement.
  Detected by dcruette@qualitesys.com

(cherry picked from commit 8b5dd340919e511137696792279f595a70ae2762)

9 years agoFix memory leak in BIO_free if there is no destroy function.
Matt Caswell [Wed, 9 Jul 2014 22:29:17 +0000 (23:29 +0100)]
Fix memory leak in BIO_free if there is no destroy function.
Based on an original patch by Neitrino Photonov <neitrinoph@gmail.com>

PR#3439

(cherry picked from commit 66816c53bea0ecddb9448da7ea9a51a334496127)

9 years agoPrevent infinite loop loading config files.
David Lloyd [Mon, 7 Jul 2014 12:11:48 +0000 (13:11 +0100)]
Prevent infinite loop loading config files.

PR#2985
(cherry picked from commit 9d23f422a32cb333a5e803199ae230706b1bf9f5)

9 years agoUsage for -hack and -prexit -verify_return_error
Dr. Stephen Henson [Sun, 6 Jul 2014 21:33:35 +0000 (22:33 +0100)]
Usage for -hack and -prexit -verify_return_error

(cherry picked from commit a07f514fc02b09c854ce857a8df828d29f7121d3)

9 years agoDocument certificate status request options.
Dr. Stephen Henson [Sun, 6 Jul 2014 21:16:21 +0000 (22:16 +0100)]
Document certificate status request options.

Conflicts:

doc/apps/s_client.pod
doc/apps/s_server.pod
(cherry picked from commit b197c770a6a6ec3d17d7d310a9b64570f044eca0)

9 years agos_server usage for certificate status requests
Dr. Stephen Henson [Sun, 6 Jul 2014 21:23:01 +0000 (22:23 +0100)]
s_server usage for certificate status requests

9 years agoUpdate ticket callback docs.
Dr. Stephen Henson [Thu, 3 Jul 2014 13:50:08 +0000 (14:50 +0100)]
Update ticket callback docs.
(cherry picked from commit a23a6e85d8dcd5733a343754f434201f3c9aa6f0)

9 years agoSanity check keylength in PVK files.
Dr. Stephen Henson [Sat, 5 Jul 2014 23:32:44 +0000 (00:32 +0100)]
Sanity check keylength in PVK files.

PR#2277
(cherry picked from commit 733a6c882e92f8221bd03a51643bb47f5f81bb81)

9 years agoFixed error in pod files with latest versions of pod2man
Matt Caswell [Sat, 5 Jul 2014 21:31:05 +0000 (22:31 +0100)]
Fixed error in pod files with latest versions of pod2man

(cherry picked from commit 07255f0a76d9d349d915e14f969b9ff2ee0d1953)

9 years agoReturn smaller of ret and f.
Alan Hryngle [Sat, 5 Jul 2014 21:24:03 +0000 (22:24 +0100)]
Return smaller of ret and f.

PR#3418.
(cherry picked from commit fdea4fff8fb058be928980600b24cf4c62ef3630)

9 years agoDon't limit message sizes in ssl3_get_cert_verify.
Dr. Stephen Henson [Sat, 5 Jul 2014 12:19:12 +0000 (13:19 +0100)]
Don't limit message sizes in ssl3_get_cert_verify.

PR#319 (reoponed version).
(cherry picked from commit 7f6e9578648728478e84246fd3e64026b8b6a48e)

Conflicts:

ssl/s3_srvr.c

9 years agoAdd license info.
Dr. Stephen Henson [Fri, 4 Jul 2014 17:41:45 +0000 (18:41 +0100)]
Add license info.
(cherry picked from commit 55707a36cce3584457f687ff020842c079624ee8)

9 years agotypo
Dr. Stephen Henson [Fri, 4 Jul 2014 12:50:26 +0000 (13:50 +0100)]
typo
(cherry picked from commit 2cfbec1caea8f9567bdff85d33d22481f2afb40a)
(cherry picked from commit a9661e45acda0bedcb2413b412f9ffc3f9fb2354)

9 years agoMerge branch 'rsalz-docfixes'
Rich Salz [Thu, 3 Jul 2014 02:44:53 +0000 (22:44 -0400)]
Merge branch 'rsalz-docfixes'

9 years agoClose 3170, remove reference to Ariel Glenn's old 0.9.8 doc
Rich Salz [Thu, 3 Jul 2014 04:07:04 +0000 (00:07 -0400)]
Close 3170, remove reference to Ariel Glenn's old 0.9.8 doc
(cherry picked from commit f1112985e847286033ac573e70bdee752d26f46f)

9 years agoupdate release notes
Dr. Stephen Henson [Wed, 2 Jul 2014 17:31:56 +0000 (18:31 +0100)]
update release notes

9 years agoFix doc typo.
Matt Smart [Wed, 2 Jul 2014 02:43:42 +0000 (03:43 +0100)]
Fix doc typo.

ERR_get_error(3) references the non-existent
ERR_get_last_error_line_data instead of the one that does exist,
ERR_peek_last_error_line_data.

PR#3283
(cherry picked from commit 5cc99c6cf5e908df6b00b04af7f08e99c0698c7b)

9 years agoMake disabling last cipher work.
Thijs Alkemade [Wed, 2 Jul 2014 02:32:19 +0000 (03:32 +0100)]
Make disabling last cipher work.
(cherry picked from commit 7cb472bd0d0fd9da3d42bed1acc56c3a79fc5328)

9 years agoutil/mkerr.pl: fix perl warning
Geoff Thorpe [Fri, 25 Apr 2014 05:20:16 +0000 (01:20 -0400)]
util/mkerr.pl: fix perl warning

Gets rid of this;

defined(@array) is deprecated at ../util/mkerr.pl line 792.
        (Maybe you should just omit the defined()?)
defined(@array) is deprecated at ../util/mkerr.pl line 800.
        (Maybe you should just omit the defined()?)

Signed-off-by: Geoff Thorpe <geoff@openssl.org>
(cherry picked from commit 647f360e2e86818cee1f2d0429e071d14814e0b5)

9 years agoASN1 sanity check.
Dr. Stephen Henson [Tue, 1 Jul 2014 23:57:57 +0000 (00:57 +0100)]
ASN1 sanity check.

Primitive encodings shouldn't use indefinite length constructed
form.

PR#2438 (partial).
(cherry picked from commit 398e99fe5e06edb11f55a39ce0883d9aa633ffa9)

9 years agoClarified that the signature's buffer size, `s`, is not used as an
Jeffrey Walton [Sun, 29 Jun 2014 22:34:21 +0000 (23:34 +0100)]
Clarified that the signature's buffer size, `s`, is not used as an
IN parameter.

Under the old docs, the only thing stated was "at most
EVP_PKEY_size(pkey) bytes will be written". It was kind of misleading
since it appears EVP_PKEY_size(pkey) WILL be written regardless of the
signature's buffer size.

(cherry picked from commit 6e6ba36d980f67b6e5c7b139f78da7acbbf8ec76)

9 years agoFix memory leak.
Dr. Stephen Henson [Sun, 29 Jun 2014 12:53:06 +0000 (13:53 +0100)]
Fix memory leak.

PR#2531.

9 years agoTypo.
Ken Ballou [Sun, 29 Jun 2014 12:38:55 +0000 (13:38 +0100)]
Typo.

PR#3173
(cherry picked from commit 76ed5a42ea68dd08bba44e4003b7e638e5d8a4a3)

9 years agoShow errors on CSR verification failure.
Dr. Stephen Henson [Sun, 29 Jun 2014 12:31:57 +0000 (13:31 +0100)]
Show errors on CSR verification failure.

If CSR verify fails in ca utility print out error messages.
Otherwise some errors give misleading output: for example
if the key size exceeds the library limit.

PR#2875
(cherry picked from commit a30bdb55d1361b9926eef8127debfc2e1bb8c484)

9 years agoMake no-ssl3 no-ssl2 do more sensible things.
Dr. Stephen Henson [Sun, 29 Jun 2014 02:02:51 +0000 (03:02 +0100)]
Make no-ssl3 no-ssl2 do more sensible things.
(cherry picked from commit 7ae6a4b659facfd7ad8131238aa1d349cb3fc951)

9 years agoTypo.
Dr. Stephen Henson [Sat, 28 Jun 2014 11:42:04 +0000 (12:42 +0100)]
Typo.

PR#3107
(cherry picked from commit 7c206db9280865ae4af352dbc14e9019a6c4795d)

9 years agoDon't disable state strings with no-ssl2
Dr. Stephen Henson [Fri, 27 Jun 2014 23:54:32 +0000 (00:54 +0100)]
Don't disable state strings with no-ssl2

Some state strings were erronously not compiled when no-ssl2
was set.

PR#3295
(cherry picked from commit 0518a3e19e18cfc441cab261b28441b8c8bd77bf)

9 years agoFix typo in ideatest.c
Andreas Westfeld [Fri, 27 Jun 2014 23:04:56 +0000 (00:04 +0100)]
Fix typo in ideatest.c
(cherry picked from commit d1d4382dcb3fdcad4758ef7e7dd7b61dbf5abbfe)

9 years agoRemove redundant check.
Ken Ballou [Fri, 27 Jun 2014 22:17:47 +0000 (23:17 +0100)]
Remove redundant check.

PR#3174
(cherry picked from commit fd331c0bb9b557903dd2ce88398570a3327b5ef0)

9 years agoFix for EVP_PBE_alg_add().
Dr. Stephen Henson [Fri, 27 Jun 2014 21:56:37 +0000 (22:56 +0100)]
Fix for EVP_PBE_alg_add().

In EVP_PBE_alg_add don't use the underlying NID for the cipher
as it may have a non-standard key size.

PR#3206
(cherry picked from commit efb7caef637a1de8468ca109efd355a9d0e73a45)

9 years agoTolerate critical AKID in CRLs.
Dr. Stephen Henson [Fri, 27 Jun 2014 17:49:32 +0000 (18:49 +0100)]
Tolerate critical AKID in CRLs.

PR#3014
(cherry picked from commit 11da66f8b1fbe5777fe08cc6ace9e1f2c1576a50)

9 years agoHandle IPv6 addresses in OCSP_parse_url.
Tom Greenslade [Fri, 27 Jun 2014 16:30:59 +0000 (17:30 +0100)]
Handle IPv6 addresses in OCSP_parse_url.

PR#2783
(cherry picked from commit b36f35cda964544a15d53d3fdfec9b2bab8cacb1)

9 years agoDon't advertise ECC ciphersuits in SSLv2 compatible client hello.
Tomas Mraz [Fri, 27 Jun 2014 15:49:22 +0000 (16:49 +0100)]
Don't advertise ECC ciphersuits in SSLv2 compatible client hello.

PR#3374
(cherry picked from commit 0436369fccd128cb7f6a8538d5fed1c876c437af)

9 years agoClarify docs.
Jeffrey Walton [Fri, 27 Jun 2014 15:33:06 +0000 (16:33 +0100)]
Clarify docs.

Document that the certificate passed to SSL_CTX_add_extra_chain_cert()
should not be freed by the application.

PR#3409
(cherry picked from commit 0535c2d67ca2d684087ef90be35d5fb207aab227)

Add restrictions section present in other branches.

Conflicts:

doc/ssl/SSL_CTX_add_extra_chain_cert.pod
(cherry picked from commit 86cac6d3b25342ff17a2b6564f7592fd7c6829e8)

9 years agoMemory leak and NULL dereference fixes.
Dr. Stephen Henson [Fri, 27 Jun 2014 02:21:10 +0000 (03:21 +0100)]
Memory leak and NULL dereference fixes.

PR#3403
(cherry picked from commit d2aea038297e0c64ca66e6844cbb37377365885e)

9 years agoRemove ancient obsolete files under pkcs7.
Dr. Stephen Henson [Thu, 26 Jun 2014 11:36:44 +0000 (12:36 +0100)]
Remove ancient obsolete files under pkcs7.
(cherry picked from commit 7be6b27aaf5ed77f13c93dc89a2c27a42082db3f)

9 years agoMake sure BN_sqr can never return a negative value.
Huzaifa Sidhpurwala [Thu, 26 Jun 2014 22:45:58 +0000 (23:45 +0100)]
Make sure BN_sqr can never return a negative value.

PR#3410
(cherry picked from commit e14e764c0d5d469da63d0819c6ffc0e1e9e7f0bb)

9 years agoMemory allocation checks.
Jenny Yung [Thu, 26 Jun 2014 22:30:57 +0000 (23:30 +0100)]
Memory allocation checks.

PR#3399.
(cherry picked from commit da0d5e78bcd35a9fd394fb7b7b058722125e76cb)

9 years agoFix off-by-one errors in ssl_cipher_get_evp()
Miod Vallat [Wed, 4 Jun 2014 07:59:58 +0000 (03:59 -0400)]
Fix off-by-one errors in ssl_cipher_get_evp()

In the ssl_cipher_get_evp() function, fix off-by-one errors in index validation before accessing arrays.

Bug discovered and fixed by Miod Vallat from the OpenBSD team.

PR#3375

9 years agoRevert "Fix off-by-one errors in ssl_cipher_get_evp()"
Matt Caswell [Sun, 22 Jun 2014 22:22:33 +0000 (23:22 +0100)]
Revert "Fix off-by-one errors in ssl_cipher_get_evp()"

This reverts commit 7e98378d155263bebbea3b3c13c1b6a780c8a6d3.

Incorrect attribution.

9 years agoAccept CCS after sending finished.
Dr. Stephen Henson [Sat, 14 Jun 2014 21:24:08 +0000 (22:24 +0100)]
Accept CCS after sending finished.

Allow CCS after finished has been sent by client: at this point
keys have been correctly set up so it is OK to accept CCS from
server. Without this renegotiation can sometimes fail.

PR#3400
(cherry picked from commit 99cd6a91fcb0931feaebbb4832681d40a66fad41)

9 years agoFixed incorrect return code handling in ssl3_final_finish_mac.
Matt Caswell [Tue, 10 Jun 2014 22:24:28 +0000 (23:24 +0100)]
Fixed incorrect return code handling in ssl3_final_finish_mac.
Based on an original patch by Joel Sing (OpenBSD) who also originally identified the issue.

9 years agoRevert "Fixed incorrect return code handling in ssl3_final_finish_mac"
Matt Caswell [Fri, 13 Jun 2014 14:55:57 +0000 (15:55 +0100)]
Revert "Fixed incorrect return code handling in ssl3_final_finish_mac"

This reverts commit e05282f8b0b6c6ea063267eb86c4d6b4702c41a1.

Missing attribution.

9 years agoFix off-by-one errors in ssl_cipher_get_evp()
Kurt Cancemi [Wed, 4 Jun 2014 07:59:58 +0000 (03:59 -0400)]
Fix off-by-one errors in ssl_cipher_get_evp()

In the ssl_cipher_get_evp() function, fix off-by-one errors in index validation before accessing arrays.

PR#3375

9 years agoAllow the maximum value.
Ben Laurie [Mon, 19 May 2014 17:21:39 +0000 (18:21 +0100)]
Allow the maximum value.
(Backported as a result of PR#3377 reported by Rainer Jung <rainer.jung@kippdata.de>)

9 years agoFix compilation with no-comp
Dr. Stephen Henson [Wed, 11 Jun 2014 13:31:08 +0000 (14:31 +0100)]
Fix compilation with no-comp
(cherry picked from commit 7239a09c7b5757ed8d0e9869f3e9b03c0e11f4d1)

9 years agoFixed incorrect return code handling in ssl3_final_finish_mac
Matt Caswell [Tue, 10 Jun 2014 22:24:28 +0000 (23:24 +0100)]
Fixed incorrect return code handling in ssl3_final_finish_mac

9 years agoFix null pointer errors.
Dr. Stephen Henson [Tue, 10 Jun 2014 13:47:29 +0000 (14:47 +0100)]
Fix null pointer errors.

PR#3394
(cherry picked from commit 7a9d59c148b773f59a41f8697eeecf369a0974c2)

9 years agoUpdate strength_bits for 3DES.
Dr. Stephen Henson [Mon, 9 Jun 2014 08:39:09 +0000 (09:39 +0100)]
Update strength_bits for 3DES.

Fix strength_bits to 112 for 3DES.

9 years agoCreate ~/.rnd with mode 0600 instead of 0666
Jakub Wilk [Sat, 7 Jun 2014 12:37:17 +0000 (14:37 +0200)]
Create ~/.rnd with mode 0600 instead of 0666

Because of a missing include <fcntl.h> we don't have O_CREATE and don't create
the file with open() using mode 0600 but fall back to using fopen() with the
default umask followed by a chmod().

Problem found by Jakub Wilk <jwilk@debian.org>.

9 years agoupdate NEWS
Dr. Stephen Henson [Sat, 7 Jun 2014 17:18:28 +0000 (18:18 +0100)]
update NEWS

9 years agoMake tls_session_secret_cb work with CVE-2014-0224 fix.
Dr. Stephen Henson [Sat, 7 Jun 2014 14:21:13 +0000 (15:21 +0100)]
Make tls_session_secret_cb work with CVE-2014-0224 fix.

If application uses tls_session_secret_cb for session resumption
set the CCS_OK flag.
(cherry picked from commit 953c592572e8811b7956cc09fbd8e98037068b58)

9 years agoFixed minor duplication in docs
Matt Caswell [Sat, 7 Jun 2014 11:30:18 +0000 (12:30 +0100)]
Fixed minor duplication in docs

9 years agoCorrect wording for website scripts.
Dr. Stephen Henson [Fri, 6 Jun 2014 12:25:48 +0000 (13:25 +0100)]
Correct wording for website scripts.

9 years agoAdd known issue.
Dr. Stephen Henson [Fri, 6 Jun 2014 11:28:54 +0000 (12:28 +0100)]
Add known issue.

9 years agoFixed Windows compilation failure
Matt Caswell [Mon, 26 May 2014 23:26:55 +0000 (00:26 +0100)]
Fixed Windows compilation failure

9 years agoPrepare for 1.0.0n-dev
Dr. Stephen Henson [Thu, 5 Jun 2014 09:43:52 +0000 (10:43 +0100)]
Prepare for 1.0.0n-dev

9 years agoPrepare for 1.0.0m release OpenSSL_1_0_0m
Dr. Stephen Henson [Thu, 5 Jun 2014 09:42:13 +0000 (10:42 +0100)]
Prepare for 1.0.0m release

9 years agomake update
Dr. Stephen Henson [Thu, 5 Jun 2014 09:42:13 +0000 (10:42 +0100)]
make update

9 years agoUpdate CHANGES and NEWS
Dr. Stephen Henson [Thu, 5 Jun 2014 08:00:01 +0000 (09:00 +0100)]
Update CHANGES and NEWS

9 years agoFix CVE-2014-3470
Dr. Stephen Henson [Thu, 29 May 2014 14:00:05 +0000 (15:00 +0100)]
Fix CVE-2014-3470

Check session_cert is not NULL before dereferencing it.

9 years agoFix CVE-2014-0221
Dr. Stephen Henson [Fri, 16 May 2014 12:00:45 +0000 (13:00 +0100)]
Fix CVE-2014-0221

Unnecessary recursion when receiving a DTLS hello request can be used to
crash a DTLS client. Fixed by handling DTLS hello request without recursion.

Thanks to Imre Rad (Search-Lab Ltd.) for discovering this issue.

9 years agoAdditional CVE-2014-0224 protection.
Dr. Stephen Henson [Fri, 16 May 2014 11:55:16 +0000 (12:55 +0100)]
Additional CVE-2014-0224 protection.

Return a fatal error if an attempt is made to use a zero length
master secret.

9 years agoFix for CVE-2014-0224
Dr. Stephen Henson [Fri, 16 May 2014 11:49:48 +0000 (12:49 +0100)]
Fix for CVE-2014-0224

Only accept change cipher spec when it is expected instead of at any
time. This prevents premature setting of session keys before the master
secret is determined which an attacker could use as a MITM attack.

Thanks to KIKUCHI Masashi (Lepidum Co. Ltd.) for reporting this issue
and providing the initial fix this patch is based on.

9 years agoFix for CVE-2014-0195
Dr. Stephen Henson [Tue, 13 May 2014 17:48:31 +0000 (18:48 +0100)]
Fix for CVE-2014-0195

A buffer overrun attack can be triggered by sending invalid DTLS fragments
to an OpenSSL DTLS client or server. This is potentially exploitable to
run arbitrary code on a vulnerable client or server.

Fixed by adding consistency check for DTLS fragments.

Thanks to Jüri Aedla for reporting this issue.

9 years agoFree up s->d1->buffered_app_data.q properly.
zhu qun-ying [Mon, 2 Jun 2014 13:38:52 +0000 (14:38 +0100)]
Free up s->d1->buffered_app_data.q properly.

PR#3286
(cherry picked from commit 71e95000afb2227fe5cac1c79ae884338bcd8d0b)

9 years agoMake PKCS7_NOCERTS match documentation.
Dr. Stephen Henson [Mon, 2 Jun 2014 12:40:00 +0000 (13:40 +0100)]
Make PKCS7_NOCERTS match documentation.

As documented PKCS7_NOCERTS should only exclude the signer's certificate
and not any supplied in the "certs" parameter. This makes it possible to
exclude the signer's certificate but include other certificates. Applications
that don't want to include other certificates should set "certs" to NULL
anyway.
(cherry picked from commit 5c6f808b66f1a2e0fb2a508b24b845a88803fe3a)

9 years agoFix typo.
Annie Yousar [Mon, 2 Jun 2014 12:36:13 +0000 (13:36 +0100)]
Fix typo.

PR#2677.

9 years agoTypo: set i to -1 before goto.
Sami Farin [Mon, 2 Jun 2014 11:24:19 +0000 (12:24 +0100)]
Typo: set i to -1 before goto.

PR#3302
(cherry picked from commit 9717f01951f976f76dd40a38d9fc7307057fa4c4)

9 years agoAdded SSLErr call for internal error in dtls1_buffer_record
Matt Caswell [Sun, 1 Jun 2014 20:43:51 +0000 (21:43 +0100)]
Added SSLErr call for internal error in dtls1_buffer_record

9 years agoDelays the queue insertion until after the ssl3_setup_buffers() call due to use-after...
David Ramos [Sun, 1 Jun 2014 20:42:47 +0000 (21:42 +0100)]
Delays the queue insertion until after the ssl3_setup_buffers() call due to use-after-free bug. PR#3362

9 years agoSet default global mask to UTF8 only.
Dr. Stephen Henson [Sun, 1 Jun 2014 14:03:00 +0000 (15:03 +0100)]
Set default global mask to UTF8 only.
(cherry picked from commit 3009244da47b989c4cc59ba02cf81a4e9d8f8431)

9 years agoAllocate extra space when NETSCAPE_HANG_BUG defined.
David Ramos [Sun, 1 Jun 2014 13:30:10 +0000 (14:30 +0100)]
Allocate extra space when NETSCAPE_HANG_BUG defined.

Make sure there is an extra 4 bytes for server done message when
NETSCAPE_HANG_BUG is defined.

PR#3361
(cherry picked from commit 673c42b2380c34e7500f05e7f00c674cc677a065)

9 years agoadd description of -attime to man page
Hubert Kario [Thu, 12 Sep 2013 09:37:12 +0000 (11:37 +0200)]
add description of -attime to man page

the verify app man page didn't describe the usage of attime option
even though it was listed as a valid option in the -help message.

This patch fixes this omission.