Fix TROVE-2017-013: Use-after-free in onion service v2 when rotating intro points
Ticket for high severity issue TROVE-2017-013
TROVE-2017-13: Use-after-free in onion service v2 when rotating intro points SEVERITY: High ALSO TRACKED AS: CVE-2017-8823 DESCRIPTION An onion service v2 expires its intro points regularly at least once very 24 hours. While removing an intro point, if no circuit is found, it is put in a retry list. Then just after, if it is removed because it is expiring, it is put in the expiring list. Tor then tries to open a circuit to that node and, on failure, it will free the intro point without removing it from the expiring list ultimately leading to a use-after-free. This can only happens in specific conditions which are that the service's is unable to launch circuits, this can happen if it is missing descriptors for instance and if the intro points was just being expired. It only affects version 2 services. MITIGATION NOTES: 1. If you are not running an onion service, this doesn't affect you. 2. If you are running tor version <= 0.2.6, this doesn't affect you. 3. We believe this to be quite difficult to trigger remotely because of the specific conditions that tor needs to be in. However, it could be possible but hard to be induced by a malicious Guard node suspecting a connection to be an onion service. ACKNOWLEDGMENTS: Thanks to an anonymous reporter on our bugtracker that opened a ticket which lead to the discovery of this issue. FIX: Anybody running an onion service on an affected version should upgrade to one of the releases with the fix for this issue: 0.2.8.17, 0.2.9.14, 0.3.0.13, 0.3.1.9, or 0.3.2.6-alpha.
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information