1. 03 2月, 2018 1 次提交
  2. 25 1月, 2018 1 次提交
  3. 06 12月, 2017 1 次提交
    • M
      Fix the check_fatal macro · e1dd8fa0
      Matt Caswell 提交于
      The check_fatal macro is supposed to only be called if we are already
      expecting to be in the fatal state. The macro asserts that we are and
      puts us into the fatal state if not.
      
      This issue combined with the problem fixed in the previous commit meant
      that the fuzzer detected a crash at a point in the processing when we
      should have already been in the fatal state.
      Reviewed-by: NRich Salz <rsalz@openssl.org>
      (Merged from https://github.com/openssl/openssl/pull/4847)
      e1dd8fa0
  4. 04 12月, 2017 6 次提交
  5. 30 8月, 2017 3 次提交
  6. 03 8月, 2017 1 次提交
    • R
      Switch from ossl_rand to DRBG rand · 75e2c877
      Rich Salz 提交于
      If RAND_add wraps around, XOR with existing. Add test to drbgtest that
      does the wrap-around.
      
      Re-order seeding and stop after first success.
      
      Add RAND_poll_ex()
      
      Use the DF and therefore lower RANDOMNESS_NEEDED.  Also, for child DRBG's,
      mix in the address as the personalization bits.
      
      Centralize the entropy callbacks, from drbg_lib to rand_lib.
      (Conceptually, entropy is part of the enclosing application.)
      Thanks to Dr. Matthias St Pierre for the suggestion.
      
      Various code cleanups:
          -Make state an enum; inline RANDerr calls.
          -Add RAND_POLL_RETRIES (thanks Pauli for the idea)
          -Remove most RAND_seed calls from rest of library
          -Rename DRBG_CTX to RAND_DRBG, etc.
          -Move some code from drbg_lib to drbg_rand; drbg_lib is now only the
           implementation of NIST DRBG.
          -Remove blocklength
      Reviewed-by: NPaul Dale <paul.dale@oracle.com>
      (Merged from https://github.com/openssl/openssl/pull/4019)
      75e2c877
  7. 18 7月, 2017 1 次提交
  8. 21 6月, 2017 1 次提交
  9. 25 4月, 2017 1 次提交
  10. 20 4月, 2017 1 次提交
  11. 16 3月, 2017 1 次提交
  12. 03 3月, 2017 9 次提交
  13. 24 2月, 2017 1 次提交
  14. 30 1月, 2017 2 次提交
  15. 23 1月, 2017 2 次提交
  16. 14 11月, 2016 1 次提交
  17. 04 11月, 2016 1 次提交
  18. 03 10月, 2016 2 次提交
  19. 26 9月, 2016 1 次提交
    • M
      Fix Use After Free for large message sizes · 0d698f66
      Matt Caswell 提交于
      The buffer to receive messages is initialised to 16k. If a message is
      received that is larger than that then the buffer is "realloc'd". This can
      cause the location of the underlying buffer to change. Anything that is
      referring to the old location will be referring to free'd data. In the
      recent commit c1ef7c97 (master) and 4b390b6c (1.1.0) the point in the code
      where the message buffer is grown was changed. However s->init_msg was not
      updated to point at the new location.
      
      CVE-2016-6309
      Reviewed-by: NEmilia Käsper <emilia@openssl.org>
      0d698f66
  20. 22 9月, 2016 3 次提交
    • R
      Add -Wswitch-enum · f3b3d7f0
      Rich Salz 提交于
      Change code so when switching on an enumeration, have case's for all
      enumeration values.
      Reviewed-by: NAndy Polyakov <appro@openssl.org>
      f3b3d7f0
    • R
      Fix error message typo, wrong function code · a449b47c
      Richard Levitte 提交于
      Reviewed-by: NMatt Caswell <matt@openssl.org>
      a449b47c
    • M
      Excessive allocation of memory in tls_get_message_header() · c1ef7c97
      Matt Caswell 提交于
      A TLS message includes 3 bytes for its length in the header for the message.
      This would allow for messages up to 16Mb in length. Messages of this length
      are excessive and OpenSSL includes a check to ensure that a peer is sending
      reasonably sized messages in order to avoid too much memory being consumed
      to service a connection. A flaw in the logic of version 1.1.0 means that
      memory for the message is allocated too early, prior to the excessive
      message length check. Due to way memory is allocated in OpenSSL this could
      mean an attacker could force up to 21Mb to be allocated to service a
      connection. This could lead to a Denial of Service through memory
      exhaustion. However, the excessive message length check still takes place,
      and this would cause the connection to immediately fail. Assuming that the
      application calls SSL_free() on the failed conneciton in a timely manner
      then the 21Mb of allocated memory will then be immediately freed again.
      Therefore the excessive memory allocation will be transitory in nature.
      This then means that there is only a security impact if:
      
      1) The application does not call SSL_free() in a timely manner in the
      event that the connection fails
      or
      2) The application is working in a constrained environment where there
      is very little free memory
      or
      3) The attacker initiates multiple connection attempts such that there
      are multiple connections in a state where memory has been allocated for
      the connection; SSL_free() has not yet been called; and there is
      insufficient memory to service the multiple requests.
      
      Except in the instance of (1) above any Denial Of Service is likely to
      be transitory because as soon as the connection fails the memory is
      subsequently freed again in the SSL_free() call. However there is an
      increased risk during this period of application crashes due to the lack
      of memory - which would then mean a more serious Denial of Service.
      
      This issue does not affect DTLS users.
      
      Issue was reported by Shi Lei (Gear Team, Qihoo 360 Inc.).
      
      CVE-2016-6307
      Reviewed-by: NRichard Levitte <levitte@openssl.org>
      c1ef7c97