1. 22 11月, 2019 1 次提交
    • B
      Fix a race condition in SNI handling · 328fd883
      Benjamin Kaduk 提交于
      As was done for ciphers, supported groups, and EC point formats in
      https://github.com/openssl/openssl/pull/9162, only write the negotiated
      SNI hostname value to the session object when not resuming, even for
      TLS 1.3 resumptions.  Otherwise, when using a stateful session cache
      (as is done by default when 0-RTT data is enabled), we can have multiple
      SSLs active using the same in-memory session object, which leads to
      double-frees and similar race conditions in the SNI handler prior
      to this commit.
      
      Fortunately, since draft-ietf-tls-tls13-22, there is no requirement
      that the SNI hostname be preserved across TLS 1.3 resumption, and thus
      not a need to continually update the session object with the "current"
      value (to be used when producing session tickets, so that the subsequent
      resumption can be checked against the current value).  So we can just
      relax the logic and only write to the session object for initial handshakes.
      This still leaves us in a somewhat inconsistent state, since if the SNI value
      does change across handshakes, the session object will continue to record
      the initial handshake's value, even if that bears no relation to the
      current handshake.  The current SSL_get_servername() implementation
      prefers the value from the session if s->hit, but a more complete fix
      for that and related issues is underway in
      https://github.com/openssl/openssl/pull/10018; there is no need to wait
      for the complete fix for SNI name handling in order to close the
      race condition and avoid runtime crashes.
      Reviewed-by: NMatt Caswell <matt@openssl.org>
      (Merged from https://github.com/openssl/openssl/pull/10441)
      
      (cherry picked from commit 2a5385511051d33be8d2b20d7669d8b1862fe510)
      328fd883
  2. 21 11月, 2019 3 次提交
  3. 20 11月, 2019 2 次提交
  4. 17 11月, 2019 2 次提交
  5. 15 11月, 2019 2 次提交
  6. 14 11月, 2019 4 次提交
  7. 13 11月, 2019 1 次提交
  8. 12 11月, 2019 2 次提交
  9. 11 11月, 2019 1 次提交
  10. 10 11月, 2019 1 次提交
  11. 09 11月, 2019 2 次提交
  12. 06 11月, 2019 2 次提交
  13. 04 11月, 2019 1 次提交
  14. 03 11月, 2019 1 次提交
  15. 02 11月, 2019 2 次提交
  16. 01 11月, 2019 2 次提交
  17. 31 10月, 2019 3 次提交
  18. 30 10月, 2019 1 次提交
  19. 29 10月, 2019 1 次提交
  20. 28 10月, 2019 4 次提交
  21. 23 10月, 2019 2 次提交