diff options
author | Nick Mathewson <nickm@torproject.org> | 2017-11-30 12:06:21 -0500 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2017-11-30 12:06:21 -0500 |
commit | f49876d66efbc5679ba7d9d9c6538c763b8e06b5 (patch) | |
tree | 90e06a46b557519b02ba9df1231529bbd9770b7a | |
parent | 08ce39fb0fd50ab0da4201201fa07e7776cb09e7 (diff) | |
parent | 6ab07419c88e35c6d8610e20fb3cea16e39c8acd (diff) | |
download | tor-f49876d66efbc5679ba7d9d9c6538c763b8e06b5.tar.gz tor-f49876d66efbc5679ba7d9d9c6538c763b8e06b5.zip |
Merge branch 'trove-2017-012_025' into maint-0.2.5
-rw-r--r-- | changes/trove-2017-012-part1 | 6 | ||||
-rw-r--r-- | src/or/routerlist.c | 5 |
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, |