1. 07 8月, 2014 5 次提交
    • A
      Fix return code for truncated DTLS fragment. · b74d1d26
      Adam Langley 提交于
      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: NMatt Caswell <matt@openssl.org>
      Reviewed-by: NEmilia Käsper <emilia@openssl.org>
      b74d1d26
    • A
      Fix memory leak from zero-length DTLS fragments. · d0a4b7d1
      Adam Langley 提交于
      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: NMatt Caswell <matt@openssl.org>
      Reviewed-by: NEmilia Käsper <emilia@openssl.org>
      d0a4b7d1
    • M
      Fix DTLS handshake message size checks. · 1250f126
      Matt Caswell 提交于
      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: NEmilia Käsper <emilia@openssl.org>
      1250f126
    • M
    • A
      Avoid double free when processing DTLS packets. · bff1ce4e
      Adam Langley 提交于
      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: NMatt Caswell <matt@openssl.org>
      Reviewed-by: NEmilia Käsper <emilia@openssl.org>
      bff1ce4e
  2. 10 6月, 2014 1 次提交
  3. 05 6月, 2014 2 次提交
    • D
      Fix for CVE-2014-0195 · 410e444b
      Dr. Stephen Henson 提交于
      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.
      (cherry picked from commit 1632ef744872edc2aa2a53d487d3e79c965a4ad3)
      410e444b
    • D
      Fix CVE-2014-0221 · b4322e1d
      Dr. Stephen Henson 提交于
      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.
      (cherry picked from commit d3152655d5319ce883c8e3ac4b99f8de4c59d846)
      b4322e1d
  4. 02 6月, 2014 1 次提交
  5. 08 4月, 2014 1 次提交
    • D
      Add heartbeat extension bounds check. · 731f4314
      Dr. Stephen Henson 提交于
      A missing bounds check in the handling of the TLS heartbeat extension
      can be used to reveal up to 64k of memory to a connected client or
      server.
      
      Thanks for Neel Mehta of Google Security for discovering this bug and to
      Adam Langley <agl@chromium.org> and Bodo Moeller <bmoeller@acm.org> for
      preparing the fix (CVE-2014-0160)
      (cherry picked from commit 96db9023b881d7cd9f379b0c154650d6c108e9a3)
      731f4314
  6. 21 12月, 2013 1 次提交
    • D
      Fix DTLS retransmission from previous session. · 20b82b51
      Dr. Stephen Henson 提交于
      For DTLS we might need to retransmit messages from the previous session
      so keep a copy of write context in DTLS retransmission buffers instead
      of replacing it after sending CCS. CVE-2013-6450.
      (cherry picked from commit 34628967f1e65dc8f34e000f0f5518e21afbfc7b)
      20b82b51
  7. 28 3月, 2013 1 次提交
  8. 26 3月, 2013 1 次提交
    • D
      Remove versions test from dtls1_buffer_message · 9cf0f187
      Dr. Stephen Henson 提交于
      Since this is always called from DTLS code it is safe to assume the header
      length should be the DTLS value. This avoids the need to check the version
      number and should work with any version of DTLS (not just 1.0).
      9cf0f187
  9. 18 3月, 2013 2 次提交
    • D
      DTLS revision. · 173e72e6
      Dr. Stephen Henson 提交于
      Revise DTLS code. There was a *lot* of code duplication in the
      DTLS code that generates records. This makes it harder to maintain and
      sometimes a TLS update is omitted by accident from the DTLS code.
      
      Specifically almost all of the record generation functions have code like
      this:
      
      some_pointer = buffer + HANDSHAKE_HEADER_LENGTH;
      ... Record creation stuff ...
      set_handshake_header(ssl, SSL_MT_SOMETHING, message_len);
      
      ...
      
      write_handshake_message(ssl);
      
      Where the "Record creation stuff" is identical between SSL/TLS and DTLS or
      in some cases has very minor differences.
      
      By adding a few fields to SSL3_ENC to include the header length, some flags
      and function pointers for handshake header setting and handshake writing the
      code can cope with both cases.
      
      Note: although this passes "make test" and some simple DTLS tests there may
      be some minor differences in the DTLS code that have to be accounted for.
      173e72e6
    • M
      Avoid unnecessary fragmentation. · 80ccc66d
      Michael Tuexen 提交于
      80ccc66d
  10. 06 3月, 2012 1 次提交
    • D
      PR: 2755 · 62b6948a
      Dr. Stephen Henson 提交于
      Submitted by: Robin Seggelmann <seggelmann@fh-muenster.de>
      
      Reduce MTU after failed transmissions.
      62b6948a
  11. 28 2月, 2012 1 次提交
    • D
      PR: 2739 · 57cb030c
      Dr. Stephen Henson 提交于
      Submitted by: Robin Seggelmann <seggelmann@fh-muenster.de>
      
      Fix padding bugs in Heartbeat support.
      57cb030c
  12. 27 1月, 2012 1 次提交
  13. 26 1月, 2012 1 次提交
    • D
      Tidy/enhance certificate chain output code. · 4379d0e4
      Dr. Stephen Henson 提交于
      New function ssl_add_cert_chain which adds a certificate chain to
      SSL internal BUF_MEM. Use this function in ssl3_output_cert_chain
      and dtls1_output_cert_chain instead of partly duplicating code.
      4379d0e4
  14. 01 1月, 2012 1 次提交
    • D
      PR: 2658 · 4817504d
      Dr. Stephen Henson 提交于
      Submitted by: Robin Seggelmann <seggelmann@fh-muenster.de>
      Reviewed by: steve
      
      Support for TLS/DTLS heartbeats.
      4817504d
  15. 25 12月, 2011 1 次提交
    • D
      PR: 2535 · 7e159e01
      Dr. Stephen Henson 提交于
      Submitted by: Robin Seggelmann <seggelmann@fh-muenster.de>
      Reviewed by: steve
      
      Add SCTP support for DTLS (RFC 6083).
      7e159e01
  16. 27 10月, 2011 1 次提交
    • D
      PR: 2628 · 930e8012
      Dr. Stephen Henson 提交于
      Submitted by: Robin Seggelmann <seggelmann@fh-muenster.de>
      Reviewed by: steve
      
      Send alert instead of assertion failure for incorrectly formatted DTLS
      fragments.
      930e8012
  17. 23 9月, 2011 1 次提交
    • D
      PR: 2602 · 1d7392f2
      Dr. Stephen Henson 提交于
      Submitted by: Robin Seggelmann <seggelmann@fh-muenster.de>
      Reviewed by: steve
      
      Fix DTLS bug which prevents manual MTU setting
      1d7392f2
  18. 04 4月, 2011 2 次提交
    • D
      PR: 2462 · 4058861f
      Dr. Stephen Henson 提交于
      Submitted by: Robin Seggelmann <seggelmann@fh-muenster.de>
      Reviewed by: steve
      
      Fix DTLS Retransmission Buffer Bug
      4058861f
    • D
      PR: 2458 · f74a0c0c
      Dr. Stephen Henson 提交于
      Submitted by: Robin Seggelmann <seggelmann@fh-muenster.de>
      Reviewed by: steve
      
      Don't change state when answering DTLS ClientHello.
      f74a0c0c
  19. 03 4月, 2011 1 次提交
    • D
      PR: 2457 · 6e28b60a
      Dr. Stephen Henson 提交于
      Submitted by: Robin Seggelmann <seggelmann@fh-muenster.de>
      Reviewed by: steve
      
      Fix DTLS fragment reassembly bug.
      6e28b60a
  20. 03 5月, 2010 1 次提交
    • D
      PR: 2230 · 6006ae14
      Dr. Stephen Henson 提交于
      Submitted By: Robin Seggelmann <seggelmann@fh-muenster.de>
      
      Fix bug in bitmask macros and stop warnings.
      6006ae14
  21. 14 4月, 2010 2 次提交
  22. 25 3月, 2010 1 次提交
  23. 02 12月, 2009 1 次提交
    • D
      PR: 2115 · 49968440
      Dr. Stephen Henson 提交于
      Submitted by: Robin Seggelmann <seggelmann@fh-muenster.de>
      Approved by: steve@openssl.org
      
      Add Renegotiation extension to DTLS, fix DTLS ClientHello processing bug.
      49968440
  24. 02 11月, 2009 1 次提交
    • D
      PR: 2089 · 71af26b5
      Dr. Stephen Henson 提交于
      Submitted by: Robin Seggelmann <seggelmann@fh-muenster.de>
      Approved by: steve@openssl.org
      
      DTLS Fragment size bug fix.
      71af26b5
  25. 01 10月, 2009 1 次提交
    • D
      PR: 2054 · ff613640
      Dr. Stephen Henson 提交于
      Submitted by: Julia Lawall <julia@diku.dk>
      Approved by: steve@openssl.org
      
      Correct BIO_ctrl error handling
      ff613640
  26. 12 8月, 2009 1 次提交
    • D
      PR: 1997 · b972fbaa
      Dr. Stephen Henson 提交于
      Submitted by: Robin Seggelmann <seggelmann@fh-muenster.de>
      Approved by: steve@openssl.org
      
      DTLS timeout handling fix.
      b972fbaa
  27. 15 7月, 2009 1 次提交
  28. 29 6月, 2009 1 次提交
  29. 05 6月, 2009 1 次提交
  30. 17 5月, 2009 1 次提交
  31. 16 5月, 2009 1 次提交
  32. 13 5月, 2009 1 次提交