Opened at 2014-04-10T15:52:21Z
Last modified at 2016-05-06T16:16:51Z
#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:1 Changed at 2014-04-10T15:57:32Z by daira
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.)
comment:3 Changed at 2014-04-10T18:06:28Z by zooko
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.
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)
Also see http://foolscap.lothar.com/trac/ticket/220.