Add option to give guard flag to relays without the CVE-2011-2768 fix
This way, all of the DA operators can upgrade immediately, without nuking every client's set of entry guards as soon as a majority of them upgrade. Until enough guards have upgraded, a majority of dirauths should set this config option so that there are still enough guards in the network. After a few days pass, all dirauths should use the default.
This commit is contained in:
parent
00fffbc1a1
commit
4684ced1b3
|
@ -269,6 +269,8 @@ static config_var_t _option_vars[] = {
|
|||
V(GeoIPFile, FILENAME,
|
||||
SHARE_DATADIR PATH_SEPARATOR "tor" PATH_SEPARATOR "geoip"),
|
||||
#endif
|
||||
V(GiveGuardFlagTo_CVE_2011_2768_VulnerableRelays,
|
||||
BOOL, "0"),
|
||||
OBSOLETE("Group"),
|
||||
V(HardwareAccel, BOOL, "0"),
|
||||
V(AccelName, STRING, NULL),
|
||||
|
|
|
@ -2332,6 +2332,7 @@ set_routerstatus_from_routerinfo(routerstatus_t *rs,
|
|||
int naming, int listbadexits,
|
||||
int listbaddirs, int vote_on_hsdirs)
|
||||
{
|
||||
const or_options_t *options = get_options();
|
||||
int unstable_version =
|
||||
!tor_version_as_new_as(ri->platform,"0.1.1.16-rc-cvs");
|
||||
memset(rs, 0, sizeof(routerstatus_t));
|
||||
|
@ -2363,7 +2364,8 @@ set_routerstatus_from_routerinfo(routerstatus_t *rs,
|
|||
router_get_advertised_bandwidth(ri) >=
|
||||
MIN(guard_bandwidth_including_exits,
|
||||
guard_bandwidth_excluding_exits)) &&
|
||||
is_router_version_good_for_possible_guard(ri->platform)) {
|
||||
(options->GiveGuardFlagTo_CVE_2011_2768_VulnerableRelays ||
|
||||
is_router_version_good_for_possible_guard(ri->platform))) {
|
||||
long tk = rep_hist_get_weighted_time_known(
|
||||
ri->cache_info.identity_digest, now);
|
||||
double wfu = rep_hist_get_weighted_fractional_uptime(
|
||||
|
|
|
@ -2672,6 +2672,10 @@ typedef struct {
|
|||
* number of servers per IP address shared
|
||||
* with an authority. */
|
||||
|
||||
/** Should we assign the Guard flag to relays which would allow
|
||||
* exploitation of CVE-2011-2768 against their clients? */
|
||||
int GiveGuardFlagTo_CVE_2011_2768_VulnerableRelays;
|
||||
|
||||
char *AccountingStart; /**< How long is the accounting interval, and when
|
||||
* does it start? */
|
||||
uint64_t AccountingMax; /**< How many bytes do we allow per accounting
|
||||
|
|
Loading…
Reference in New Issue