summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Prepare for 1.0.2h releaseOpenSSL_1_0_2hMatt Caswell2016-05-034-6/+6
| | | | Reviewed-by: Rich Salz <rsalz@openssl.org>
* make updateMatt Caswell2016-05-031-6/+7
| | | | Reviewed-by: Rich Salz <rsalz@openssl.org>
* Update CHANGES and NEWS for the new releaseMatt Caswell2016-05-032-1/+93
| | | | Reviewed-by: Richard Levitte <levitte@openssl.org>
* Fix ASN1_INTEGER handling.Dr. Stephen Henson2016-05-033-6/+0
| | | | | | | | | | | | | | Only treat an ASN1_ANY type as an integer if it has the V_ASN1_INTEGER tag: V_ASN1_NEG_INTEGER is an internal only value which is never used for on the wire encoding. Thanks to David Benjamin <davidben@google.com> for reporting this bug. This was found using libFuzzer. RT#4364 (part)CVE-2016-2108. Reviewed-by: Emilia Käsper <emilia@openssl.org>
* Check that we have enough padding characters.Kurt Roeckx2016-05-032-0/+6
| | | | | | | | Reviewed-by: Emilia Käsper <emilia@openssl.org> CVE-2016-2107 MR: #2572
* Remove some documentation for functions not in 1.0.xMatt Caswell2016-05-031-22/+3
| | | | | | | A few functions in the recently added EVP_EncodeInit docs don't apply to the 1.0.x branches. Reviewed-by: Richard Levitte <levitte@openssl.org>
* Add documentation for EVP_EncodeInit() and similar functionsMatt Caswell2016-05-032-0/+151
| | | | Reviewed-by: Richard Levitte <levitte@openssl.org>
* Ensure EVP_EncodeUpdate handles an output length that is too longMatt Caswell2016-05-031-2/+8
| | | | | | | | | | With the EVP_EncodeUpdate function it is the caller's responsibility to determine how big the output buffer should be. The function writes the amount actually used to |*outl|. However this could go negative with a sufficiently large value for |inl|. We add a check for this error condition. Reviewed-by: Richard Levitte <levitte@openssl.org>
* Avoid overflow in EVP_EncodeUpdateMatt Caswell2016-05-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | An overflow can occur in the EVP_EncodeUpdate function which is used for Base64 encoding of binary data. If an attacker is able to supply very large amounts of input data then a length check can overflow resulting in a heap corruption. Due to the very large amounts of data involved this will most likely result in a crash. Internally to OpenSSL the EVP_EncodeUpdate function is primarly used by the PEM_write_bio* family of functions. These are mainly used within the OpenSSL command line applications, so any application which processes data from an untrusted source and outputs it as a PEM file should be considered vulnerable to this issue. User applications that call these APIs directly with large amounts of untrusted data may also be vulnerable. Issue reported by Guido Vranken. CVE-2016-2105 Reviewed-by: Richard Levitte <levitte@openssl.org>
* Prevent EBCDIC overread for very long stringsMatt Caswell2016-05-031-2/+3
| | | | | | | | | | | | ASN1 Strings that are over 1024 bytes can cause an overread in applications using the X509_NAME_oneline() function on EBCDIC systems. This could result in arbitrary stack data being returned in the buffer. Issue reported by Guido Vranken. CVE-2016-2176 Reviewed-by: Andy Polyakov <appro@openssl.org>
* Fix encrypt overflowMatt Caswell2016-05-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | An overflow can occur in the EVP_EncryptUpdate function. If an attacker is able to supply very large amounts of input data after a previous call to EVP_EncryptUpdate with a partial block then a length check can overflow resulting in a heap corruption. Following an analysis of all OpenSSL internal usage of the EVP_EncryptUpdate function all usage is one of two forms. The first form is like this: EVP_EncryptInit() EVP_EncryptUpdate() i.e. where the EVP_EncryptUpdate() call is known to be the first called function after an EVP_EncryptInit(), and therefore that specific call must be safe. The second form is where the length passed to EVP_EncryptUpdate() can be seen from the code to be some small value and therefore there is no possibility of an overflow. Since all instances are one of these two forms, I believe that there can be no overflows in internal code due to this problem. It should be noted that EVP_DecryptUpdate() can call EVP_EncryptUpdate() in certain code paths. Also EVP_CipherUpdate() is a synonym for EVP_EncryptUpdate(). Therefore I have checked all instances of these calls too, and came to the same conclusion, i.e. there are no instances in internal usage where an overflow could occur. This could still represent a security issue for end user code that calls this function directly. CVE-2016-2106 Issue reported by Guido Vranken. Reviewed-by: Tim Hudson <tjh@openssl.org> (cherry picked from commit 3f3582139fbb259a1c3cbb0a25236500a409bf26)
* Fix i2d_X509_AUX: pp can be NULL.Dr. Stephen Henson2016-05-021-2/+3
| | | | | | | Reported by David Benjamin Reviewed-by: Emilia Käsper <emilia@openssl.org> (cherry picked from commit 05aef4bbdbc18e7b9490512cdee41e8a608bcc0e)
* Remove confusing comment.TJ Saunders2016-05-021-1/+0
| | | | | | Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org>
* Issue #719:TJ Saunders2016-05-022-7/+30
| | | | | | | | | | | | | | | If no serverinfo extension is found in some cases, do not abort the handshake, but simply omit/skip that extension. Check for already-registered serverinfo callbacks during serverinfo registration. Update SSL_CTX_use_serverinfo() documentation to mention the need to reload the same serverinfo per certificate, for servers with multiple server certificates. Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org>
* Don't free ret->data if malloc fails.Dr. Stephen Henson2016-04-291-2/+2
| | | | | | Issue reported by Guido Vranken. Reviewed-by: Matt Caswell <matt@openssl.org>
* Add checks to X509_NAME_oneline()Dr. Stephen Henson2016-04-293-2/+19
| | | | | | | | | | | | | | Sanity check field lengths and sums to avoid potential overflows and reject excessively large X509_NAME structures. Issue reported by Guido Vranken. Reviewed-by: Matt Caswell <matt@openssl.org> (cherry picked from commit 77076dc944f76e821e4eae3a6563b853ce00c0ed) Conflicts: crypto/x509/x509_err.c crypto/x509/x509_obj.c
* Sanity check buffer length.Dr. Stephen Henson2016-04-291-0/+2
| | | | | | | | | Reject zero length buffers passed to X509_NAME_onelne(). Issue reported by Guido Vranken. Reviewed-by: Matt Caswell <matt@openssl.org> (cherry picked from commit b33d1141b6dcce947708b984c5e9e91dad3d675d)
* Add size limit to X509_NAME structure.Dr. Stephen Henson2016-04-291-0/+11
| | | | | | | | | This adds an explicit limit to the size of an X509_NAME structure. Some part of OpenSSL (e.g. TLS) already effectively limit the size due to restrictions on certificate size. Reviewed-by: Matt Caswell <matt@openssl.org> (cherry picked from commit 295f3a24919157e2f9021d0b1709353710ad63db)
* Reject inappropriate private key encryption ciphers.Dr. Stephen Henson2016-04-281-1/+1
| | | | | | | | | | The traditional private key encryption algorithm doesn't function properly if the IV length of the cipher is zero. These ciphers (e.g. ECB mode) are not suitable for private key encryption anyway. Reviewed-by: Emilia Käsper <emilia@openssl.org> (cherry picked from commit d78df5dfd650e6de159a19a033513481064644f5)
* Ensure we check i2d_X509 return valMatt Caswell2016-04-262-5/+19
| | | | | | | | | | The i2d_X509() function can return a negative value on error. Therefore we should make sure we check it. Issue reported by Yuan Jochen Kang. Reviewed-by: Emilia Käsper <emilia@openssl.org> (cherry picked from commit 446ba8de9af9aa4fa3debc7c76a38f4efed47a62)
* Fix a signed/unsigned warningMatt Caswell2016-04-251-1/+1
| | | | | | | This causes a compilation failure when using --strict-warnings in 1.0.2 and 1.0.1 Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
* Fix NULL deref in apps/pkcs7Rich Salz2016-04-251-4/+8
| | | | | | | Thanks to Brian Carpenter for finding and reporting this. Reviewed-by: Emilia Käsper <emilia@openssl.org> (cherry picked from commit 79356a83b78a2d936dcd022847465d9ebf6c67b1)
* s390x assembly pack: cache capability query results.Andy Polyakov2016-04-255-38/+53
| | | | | | | | | | IBM argues that in certain scenarios capability query is really expensive. At the same time it's asserted that query results can be safely cached, because disabling CPACF is incompatible with reboot-free operation. Reviewed-by: Tim Hudson <tjh@openssl.org> (cherry picked from commit 670ad0fbf6ebcf113e278d8174081a7e2d2fa44c)
* Fix buffer overrun in ASN1_parse().Viktor Dukhovni2016-04-232-15/+20
| | | | | | | | | | | Backport of commits: 79c7f74d6cefd5d32fa20e69195ad3de834ce065 bdcd660e33710079b495cf5cc6a1aaa5d2dcd317 from master. Reviewed-by: Matt Caswell <matt@openssl.org>
* Harden ASN.1 BIO handling of large amounts of data.Dr. Stephen Henson2016-04-231-10/+26
| | | | | | | | | | | | | If the ASN.1 BIO is presented with a large length field read it in chunks of increasing size checking for EOF on each read. This prevents small files allocating excessive amounts of data. CVE-2016-2109 Thanks to Brian Carpenter for reporting this issue. Reviewed-by: Viktor Dukhovni <viktor@openssl.org> (cherry picked from commit c62981390d6cf9e3d612c489b8b77c2913b25807)
* PPC assembly pack: remove branch hints.Andy Polyakov2016-04-076-25/+25
| | | | | | | | | | | As it turns out branch hints grew as kind of a misconception. In addition their interpretation by GNU assembler is affected by assembler flags and can end up with opposite meaning on different processors. As we have to loose quite a lot on misinterprerations, especially on newer processors, we just omit them altogether. Reviewed-by: Tim Hudson <tjh@openssl.org> (cherry picked from commit 20b88bb160865b0c2998056fe841b1cbacd6d4c7)
* Fix memory leak on invalid CertificateRequest.David Benjamin2016-04-071-0/+2
| | | | | | | | | | | | | | Free up parsed X509_NAME structure if the CertificateRequest message contains excess data. The security impact is considered insignificant. This is a client side only leak and a large number of connections to malicious servers would be needed to have a significant impact. This was found by libFuzzer. Reviewed-by: Emilia Käsper <emilia@openssl.org> Reviewed-by: Stephen Henson <steve@openssl.org>
* Fix ALPNTodd Short2016-04-048-42/+399
| | | | | | | | | | | | | | * Perform ALPN after the SNI callback; the SSL_CTX may change due to that processing * Add flags to indicate that we actually sent ALPN, to properly error out if unexpectedly received. * document ALPN functions * unit tests Backport of commit 817cd0d52f0462039d1fe60462150be7f59d2002 Reviewed-by: Emilia Käsper <emilia@openssl.org> Reviewed-by: Dr. Stephen Henson <steve@openssl.org>
* Fix FIPS SSLv2 testDr. Stephen Henson2016-03-261-2/+6
| | | | Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
* Fix the no-comp option for WindowsMatt Caswell2016-03-183-12/+18
| | | | | | | no-comp on Windows was not actually suppressing compilation of the code, although it was suppressing its use. Reviewed-by: Richard Levitte <levitte@openssl.org>
* Add a check for a failed mallocMatt Caswell2016-03-182-0/+4
| | | | | | | | Ensure we check for a NULL return from OPENSSL_malloc Issue reported by Guido Vranken. Reviewed-by: Richard Levitte <levitte@openssl.org>
* Ensure that memory allocated for the ticket is freedMatt Caswell2016-03-181-1/+3
| | | | | | | | | If a call to EVP_DecryptUpdate fails then a memory leak could occur. Ensure that the memory is freed appropriately. Issue reported by Guido Vranken. Reviewed-by: Richard Levitte <levitte@openssl.org>
* Fix a potential double free in EVP_DigestInit_exMatt Caswell2016-03-181-1/+3
| | | | | | | | | | | There is a potential double free in EVP_DigestInit_ex. This is believed to be reached only as a result of programmer error - but we should fix it anyway. Issue reported by Guido Vranken. Reviewed-by: Richard Levitte <levitte@openssl.org> (cherry picked from commit ffe9150b1508a0ffc9e724f975691f24eb045c05)
* Add no-ssl2-methodKurt Roeckx2016-03-146-6/+27
| | | | | | Reviewed-by: Viktor Dukhovni <viktor@openssl.org> MR: #2341
* Touch the correct variables for the system; shlib_wrap.sh on SolarisRichard Levitte2016-03-091-3/+7
| | | | | | | | | | If there is cause to think LD_LIBRARY_PATH_32 and LD_PRELOAD_32 are appropriate variables to touch, do so. Otherwise, touch the usual LD_LIBRARY_PATH and LD_PRELOAD. This covers for older installations that don't have a mix of 32-bit and 64-bit libs. Reviewed-by: Andy Polyakov <appro@openssl.org> (cherry picked from commit a772e9d01a81dae132cb03107292b3ecc725e5af)
* Recognise 32-bit Solaris in util/shlib_wrap.shRichard Levitte2016-03-091-0/+5
| | | | | | | Submitted by Erik Forsberg <erik@efca.com> Reviewed-by: Andy Polyakov <appro@openssl.org> (cherry picked from commit 86e75432835ec3ef7700a7103f9847e3c3d4350d)
* expose SSLv2 method prototypesViktor Dukhovni2016-03-092-5/+3
| | | | Reviewed-by: Kurt Roeckx <kurt@openssl.org>
* Retain SSLv2 methods as functions that return NULLViktor Dukhovni2016-03-081-3/+3
| | | | | | This improves ABI compatibility when symbol resolution is not lazy. Reviewed-by: Richard Levitte <levitte@openssl.org>
* Remove LOW from the defaultKurt Roeckx2016-03-077-64/+67
| | | | Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
* Don't shift serial number into sign bitDr. Stephen Henson2016-03-071-1/+2
| | | | Reviewed-by: Rich Salz <rsalz@openssl.org>
* bn/asm/x86[_64]-mont*.pl: complement alloca with page-walking.Andy Polyakov2016-03-073-2/+116
| | | | | | | | | | | | Some OSes, *cough*-dows, insist on stack being "wired" to physical memory in strictly sequential manner, i.e. if stack allocation spans two pages, then reference to farmost one can be punishable by SEGV. But page walking can do good even on other OSes, because it guarantees that villain thread hits the guard page before it can make damage to innocent one... Reviewed-by: Rich Salz <rsalz@openssl.org> (cherry picked from commit adc4f1fc25b2cac90076f1e1695b05b7aeeae501)
* perlasm/x86_64-xlate.pl: handle binary constants early.Andy Polyakov2016-03-071-1/+1
| | | | | | | | | Not all assemblers of "gas" flavour handle binary constants, e.g. seasoned MacOS Xcode doesn't, so give them a hand. Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Viktor Dukhovni <viktor@openssl.org> (cherry picked from commit 6e42e3ff9cde43830555549fdafa2a8b37b9485b)
* Sanity check PVK file fields.Dr. Stephen Henson2016-03-041-0/+7
| | | | | | | | | | | | | | | | PVK files with abnormally large length or salt fields can cause an integer overflow which can result in an OOB read and heap corruption. However this is an rarely used format and private key files do not normally come from untrusted sources the security implications not significant. Fix by limiting PVK length field to 100K and salt to 10K: these should be more than enough to cover any files encountered in practice. Issue reported by Guido Vranken. Reviewed-by: Rich Salz <rsalz@openssl.org> (cherry picked from commit 5f57abe2b150139b8b057313d52b1fe8f126c952)
* RT4358: Extra ] in doc/ocsp.podEric S. Raymond2016-03-011-1/+1
| | | | Reviewed-by: Richard Levitte <levitte@openssl.org>
* Prepare for 1.0.2h-devMatt Caswell2016-03-015-5/+13
| | | | Reviewed-by: Richard Levitte <levitte@openssl.org>
* Prepare for 1.0.2g releaseOpenSSL_1_0_2gMatt Caswell2016-03-014-6/+6
| | | | Reviewed-by: Richard Levitte <levitte@openssl.org>
* make updateMatt Caswell2016-03-012-36/+35
| | | | Reviewed-by: Richard Levitte <levitte@openssl.org>
* Ensure mk1mf.pl is aware of no-weak-ssl-ciphers optionMatt Caswell2016-03-011-0/+2
| | | | | | Update mk1mf.pl to properly handle no-weak-ssl-ciphers Reviewed-by: Richard Levitte <levitte@openssl.org>
* Update CHANGES and NEWS for new releaseMatt Caswell2016-03-012-2/+93
| | | | Reviewed-by: Richard Levitte <levitte@openssl.org>
* bn/asm/x86_64-mont5.pl: unify gather procedure in hardly used pathAndy Polyakov2016-03-012-199/+278
| | | | | | | | | | and reorganize/harmonize post-conditions. Additional hardening following on from CVE-2016-0702 Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org> (cherry picked from master)