#2215 closed defect

mitigate heartbleed vulnerability — at Version 8

Reported by: daira Owned by: zooko
Priority: major Milestone: 1.12.0
Component: code Version: 1.10.0
Keywords: security integrity confidentiality capleak pyopenssl cffi packaging manual-test-needed Cc:
Launchpad Bug:

Description (last modified by daira)

Check the OpenSSL version number and refuse to run if vulnerable.

Also see #2222 (make a FAQ describing the impact of heartbleed on Tahoe-LAFS).

Change History (8)

comment:2 Changed at 2014-04-10T17:41:29Z by daira

  • Keywords review-needed added

Review needed for https://github.com/tahoe-lafs/tahoe-lafs/commits/2215-refuse-vulnerable-openssl.

(This should not be committed until we have built some non-vulnerable pyOpenSSL eggs.)

Last edited at 2014-04-10T18:01:10Z by daira (previous) (diff)

comment:4 Changed at 2014-04-11T16:22:01Z by daira

The current branch implements a different policy:

  • versions 0.9.8y+ in the 0.9.8 series are allowed;
  • versions 1.0.0l+ in the 1.0.0 series are allowed;
  • versions 1.0.1d through 1.0.1f are allowed iff compiled with -DOPENSSL_NO_HEARTBEATS or with a build date on or after 6 April 2014;
  • versions 1.0.1g+ are allowed.

Also,

  • the error handling has changed;
  • there are more tests covering the cases above.

Re-review needed.

comment:5 Changed at 2014-04-11T16:22:54Z by daira

Please refer to http://www.openssl.org/news/vulnerabilities.html for information about when vulnerabilities were fixed.

comment:6 Changed at 2014-04-12T10:50:31Z by daira

  • Keywords integrity confidentiality capleak cffi packaging added

It was suggested on #cryptography-dev that (rather than looking at build date as the patch currently does), we should call the tls1_process_heartbeat function to directly check whether it is vulnerable. (This is possible without invoking undefined behaviour.)

For pyOpenSSL >= 0.14, this can be done relatively easily by importing OpenSSL._util.lib, which gives access to arbitrary OpenSSL functions via cffi. For pyOpenSSL 0.13, however, it's basically impossible because there is no way to add to the set of OpenSSL functions exposed by the extension module. I don't know where that leaves us, given the cffi-related build problems described in #2193 and #2117.

Last edited at 2014-04-19T01:05:46Z by daira (previous) (diff)

comment:7 Changed at 2014-04-12T10:51:55Z by daira

  • Owner set to zooko

comment:8 Changed at 2014-04-15T01:50:40Z by daira

  • Description modified (diff)
Note: See TracTickets for help on using tickets.