aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2017-11-30 12:06:21 -0500
committerNick Mathewson <nickm@torproject.org>2017-11-30 12:06:21 -0500
commitf49876d66efbc5679ba7d9d9c6538c763b8e06b5 (patch)
tree90e06a46b557519b02ba9df1231529bbd9770b7a
parent08ce39fb0fd50ab0da4201201fa07e7776cb09e7 (diff)
parent6ab07419c88e35c6d8610e20fb3cea16e39c8acd (diff)
downloadtor-f49876d66efbc5679ba7d9d9c6538c763b8e06b5.tar.gz
tor-f49876d66efbc5679ba7d9d9c6538c763b8e06b5.zip
Merge branch 'trove-2017-012_025' into maint-0.2.5
-rw-r--r--changes/trove-2017-012-part16
-rw-r--r--src/or/routerlist.c5
2 files changed, 10 insertions, 1 deletions
diff --git a/changes/trove-2017-012-part1 b/changes/trove-2017-012-part1
new file mode 100644
index 0000000000..9fccc2cf65
--- /dev/null
+++ b/changes/trove-2017-012-part1
@@ -0,0 +1,6 @@
+ o Major bugfixes (security, relay):
+ - When running as a relay, make sure that we never build a path through
+ ourselves, even in the case where we have somehow lost the version of
+ our descriptor appearing in the consensus. Fixes part of bug 21534;
+ bugfix on 0.2.0.1-alpha. This issue is also tracked as TROVE-2017-012
+ and CVE-2017-8822.
diff --git a/src/or/routerlist.c b/src/or/routerlist.c
index 07e87724ba..3bf1eb8956 100644
--- a/src/or/routerlist.c
+++ b/src/or/routerlist.c
@@ -2411,7 +2411,10 @@ router_choose_random_node(smartlist_t *excludedsmartlist,
});
}
- if ((r = routerlist_find_my_routerinfo()))
+ /* If the node_t is not found we won't be to exclude ourself but we
+ * won't be able to pick ourself in router_choose_random_node() so
+ * this is fine to at least try with our routerinfo_t object. */
+ if ((r = router_get_my_routerinfo()))
routerlist_add_node_and_family(excludednodes, r);
router_add_running_nodes_to_smartlist(sl, allow_invalid,