]> git.ipfire.org Git - thirdparty/tor.git/log
thirdparty/tor.git
8 years agoMerge remote-tracking branch 'dgoulet/bug25223_029_01' into ticket24902_029_05
David Goulet [Tue, 13 Feb 2018 18:11:10 +0000 (13:11 -0500)] 
Merge remote-tracking branch 'dgoulet/bug25223_029_01' into ticket24902_029_05

8 years agodos: Add extra safety asserts in cc_stats_refill_bucket()
David Goulet [Tue, 13 Feb 2018 15:41:21 +0000 (10:41 -0500)] 
dos: Add extra safety asserts in cc_stats_refill_bucket()

Never allow the function to set a bucket value above the allowed circuit
burst.

Closes #25202

Signed-off-by: David Goulet <dgoulet@torproject.org>
8 years agodos: Don't set consensus param if we aren't a public relay
David Goulet [Tue, 13 Feb 2018 15:29:41 +0000 (10:29 -0500)] 
dos: Don't set consensus param if we aren't a public relay

We had this safeguard around dos_init() but not when the consensus changes
which can modify consensus parameters and possibly enable the DoS mitigation
even if tor wasn't a public relay.

Fixes #25223

Signed-off-by: David Goulet <dgoulet@torproject.org>
8 years agoHave tor_addr hashes return a randomized hash for AF_UNSPEC.
Nick Mathewson [Mon, 12 Feb 2018 16:08:33 +0000 (11:08 -0500)] 
Have tor_addr hashes return a randomized hash for AF_UNSPEC.

We don't expect this to come up very much, but we may as well make
sure that the value isn't predictable (as we do for the other
addresses) in case the issue ever comes up.

Spotted by teor.

8 years agoFix a typo in an address_set.c comment.
Nick Mathewson [Mon, 12 Feb 2018 15:59:46 +0000 (10:59 -0500)] 
Fix a typo in an address_set.c comment.

8 years agotest: DoS test to make sure we exclude known relays
David Goulet [Fri, 9 Feb 2018 16:31:01 +0000 (11:31 -0500)] 
test: DoS test to make sure we exclude known relays

Part of #25193

Signed-off-by: David Goulet <dgoulet@torproject.org>
8 years agodos: Exclude known relays from client connection count
David Goulet [Fri, 9 Feb 2018 16:11:41 +0000 (11:11 -0500)] 
dos: Exclude known relays from client connection count

This is to avoid positively identifying Exit relays if tor client connection
comes from them that is reentering the network.

One thing to note is that this is done only in the DoS subsystem but we'll
still add it to the geoip cache as a "client" seen. This is done that way so
to avoid as much as possible changing the current behavior of the geoip client
cache since this is being backported.

Closes #25193

Signed-off-by: David Goulet <dgoulet@torproject.org>
8 years agoMerge branch 'ticket25183_029_01' into ticket24902_029_05
David Goulet [Thu, 8 Feb 2018 21:56:21 +0000 (16:56 -0500)] 
Merge branch 'ticket25183_029_01' into ticket24902_029_05

8 years agotest: Add unit tests for addressset.c
David Goulet [Thu, 8 Feb 2018 19:35:22 +0000 (14:35 -0500)] 
test: Add unit tests for addressset.c

This also adds one that tests the integration with the nodelist.

Signed-off-by: David Goulet <dgoulet@torproject.org>
8 years agoAdd an address_set to the nodelist.
Nick Mathewson [Thu, 8 Feb 2018 17:14:42 +0000 (12:14 -0500)] 
Add an address_set to the nodelist.

This set is rebuilt whenever a consensus arrives.  In between
consensuses, it is add-only.

8 years agoFunction to add an ipv4 address to an address_set
Nick Mathewson [Thu, 8 Feb 2018 17:13:56 +0000 (12:13 -0500)] 
Function to add an ipv4 address to an address_set

This is a convenience function, so callers don't need to wrap
the IPv4 address.

8 years agoAdd an address-set backend using a bloom filter.
Nick Mathewson [Wed, 7 Feb 2018 14:49:35 +0000 (09:49 -0500)] 
Add an address-set backend using a bloom filter.

We're going to need this to make our anti-DoS code (see 24902) more
robust.

8 years agoremove a redundant semicolon
Nick Mathewson [Tue, 30 Jan 2018 23:11:16 +0000 (18:11 -0500)] 
remove a redundant semicolon

8 years agogeoip: Make geoip_client_cache_total_allocation() return the counter
David Goulet [Mon, 5 Feb 2018 15:39:10 +0000 (10:39 -0500)] 
geoip: Make geoip_client_cache_total_allocation() return the counter

The HT_FOREACH() is insanely heavy on the CPU and this is part of the fast
path so make it return the nice memory size counter we added in
4d812e29b9b1ec88.

Fixes #25148

Signed-off-by: David Goulet <dgoulet@torproject.org>
8 years agodos: We can put less token than the current amount
David Goulet [Fri, 2 Feb 2018 22:04:12 +0000 (17:04 -0500)] 
dos: We can put less token than the current amount

Becasue the circuit creation burst and rate can change at runtime it is
possible that between two refill of a bucket, we end up setting the bucket
value to less than there currently is.

Fixes #25128

Signed-off-by: David Goulet <dgoulet@torproject.org>
8 years agoUse tt_u64_op() for uint64_t inputs.
Nick Mathewson [Fri, 2 Feb 2018 20:23:55 +0000 (15:23 -0500)] 
Use tt_u64_op() for uint64_t inputs.

8 years agoMerge branch 'ticket25122_029_02' into ticket24902_029_05
David Goulet [Fri, 2 Feb 2018 19:55:01 +0000 (14:55 -0500)] 
Merge branch 'ticket25122_029_02' into ticket24902_029_05

8 years agogeoip: Add clientmap_entry_new() function
David Goulet [Fri, 2 Feb 2018 18:24:37 +0000 (13:24 -0500)] 
geoip: Add clientmap_entry_new() function

Signed-off-by: David Goulet <dgoulet@torproject.org>
8 years agogeoip: Increment and decrement functions for the geoip client cache
David Goulet [Fri, 2 Feb 2018 18:14:50 +0000 (13:14 -0500)] 
geoip: Increment and decrement functions for the geoip client cache

These functions protect againts over and underflow. They BUG() in case we
overflow the counter.

Signed-off-by: David Goulet <dgoulet@torproject.org>
8 years agogeoip: Hook the client history cache into the OOM handler
David Goulet [Fri, 2 Feb 2018 15:15:28 +0000 (10:15 -0500)] 
geoip: Hook the client history cache into the OOM handler

If the cache is using 20% of our maximum allowed memory, clean 10% of it. Same
behavior as the HS descriptor cache.

Closes #25122

Signed-off-by: David Goulet <dgoulet@torproject.org>
8 years agochannel_tls_get_remote_addr_method now returns real_addr.
Fernando Fernandez Mancera [Mon, 22 Jan 2018 14:20:17 +0000 (15:20 +0100)] 
channel_tls_get_remote_addr_method now returns real_addr.

The accurate address of a connection is real_addr, not the addr member.
channel_tls_get_remote_addr_method() now returns real_addr instead.

Fixes #24952; bugfix on 707c1e2 in 0.2.4.11-alpha.

Signed-off-by: Fernando Fernandez Mancera <ffmancera@riseup.net>
8 years agotest: Add unit tests for overflows and underflows in cc_stats_refill_bucket
teor [Wed, 31 Jan 2018 00:22:20 +0000 (11:22 +1100)] 
test: Add unit tests for overflows and underflows in cc_stats_refill_bucket

Closes #25094.

Signed-off-by: David Goulet <dgoulet@torproject.org>
8 years agodos: Make sure cc_stats_refill_bucket can't overflow while calculating
teor [Wed, 31 Jan 2018 00:13:17 +0000 (11:13 +1100)] 
dos: Make sure cc_stats_refill_bucket can't overflow while calculating

Debug log the elapsed time in cc_stats_refill_bucket

Part of #25094.

Signed-off-by: David Goulet <dgoulet@torproject.org>
8 years agotest: Remove a redundant round from test_dos_bucket_refill
teor [Wed, 31 Jan 2018 00:11:08 +0000 (11:11 +1100)] 
test: Remove a redundant round from test_dos_bucket_refill

This round is left over from the tenths of a second code.

Part of #25094.

8 years agodos: Add changes file for ticket 24902
David Goulet [Tue, 30 Jan 2018 14:15:33 +0000 (09:15 -0500)] 
dos: Add changes file for ticket 24902

Signed-off-by: David Goulet <dgoulet@torproject.org>
8 years agodos: Make circuit rate limit per second, not tenths anymore
David Goulet [Mon, 29 Jan 2018 16:50:11 +0000 (11:50 -0500)] 
dos: Make circuit rate limit per second, not tenths anymore

Because this touches too many commits at once, it is made into one single
commit.

Remove the use of "tenths" for the circuit rate to simplify things. We can
only refill the buckets at best once every second because of the use of
approx_time() and our token system is set to be 1 token = 1 circuit so make
the rate a flat integer of circuit per second.

Signed-off-by: David Goulet <dgoulet@torproject.org>
8 years agodos: Man page entry for DoS mitigation
David Goulet [Fri, 26 Jan 2018 14:00:17 +0000 (09:00 -0500)] 
dos: Man page entry for DoS mitigation

Signed-off-by: David Goulet <dgoulet@torproject.org>
8 years agotest: Add unit tests for the DoS subsystem
George Kadianakis [Thu, 25 Jan 2018 21:38:59 +0000 (16:38 -0500)] 
test: Add unit tests for the DoS subsystem

Signed-off-by: David Goulet <dgoulet@torproject.org>
8 years agodos: Clear connection tracked flag if geoip entry is removed
David Goulet [Thu, 25 Jan 2018 14:44:21 +0000 (09:44 -0500)] 
dos: Clear connection tracked flag if geoip entry is removed

Imagine this scenario. We had 10 connections over the 24h lifetime of a geoip
cache entry. The lifetime of the entry has been reached so it is about to get
freed but 2 connections remain for it. After the free, a third connection
comes in thus making us create a new geoip entry for that address matching the
2 previous ones that are still alive. If they end up being closed, we'll have
a concurrent count desynch from what the reality is.

To mitigate this probably very rare scenario in practice, when we free a geoip
entry and it has a concurrent count above 0, we'll go over all connections
matching the address and clear out the tracked flag. So once they are closed,
we don't try to decrement the count.

Signed-off-by: David Goulet <dgoulet@torproject.org>
8 years agodos: Add a heartbeat log
David Goulet [Thu, 25 Jan 2018 21:36:05 +0000 (16:36 -0500)] 
dos: Add a heartbeat log

Signed-off-by: David Goulet <dgoulet@torproject.org>
8 years agodos: Add the DoSRefuseSingleHopClientRendezvous option
David Goulet [Thu, 25 Jan 2018 21:32:28 +0000 (16:32 -0500)] 
dos: Add the DoSRefuseSingleHopClientRendezvous option

This option refuses any ESTABLISH_RENDEZVOUS cell arriving from a client
connection. Its default value is "auto" for which we can turn it on or off
with a consensus parameter. Default value is 0.

Signed-off-by: David Goulet <dgoulet@torproject.org>
8 years agodos: Add the connection DoS mitigation subsystem
David Goulet [Thu, 25 Jan 2018 21:28:54 +0000 (16:28 -0500)] 
dos: Add the connection DoS mitigation subsystem

Defend against an address that has reached the concurrent connection count
threshold.

Signed-off-by: David Goulet <dgoulet@torproject.org>
8 years agodos: Apply defense for circuit creation DoS
David Goulet [Thu, 25 Jan 2018 21:20:52 +0000 (16:20 -0500)] 
dos: Apply defense for circuit creation DoS

If the client address was detected as malicious, apply a defense which is at
this commit to return a DESTROY cell.

Signed-off-by: David Goulet <dgoulet@torproject.org>
8 years agodos: Detect circuit creation denial of service
David Goulet [Thu, 25 Jan 2018 21:14:40 +0000 (16:14 -0500)] 
dos: Detect circuit creation denial of service

Add a function that notifies the DoS subsystem that a new CREATE cell has
arrived. The statistics are updated accordingly and the IP address can also be
marked as malicious if it is above threshold.

At this commit, no defense is applied, just detection with a circuit creation
token bucket system.

Signed-off-by: David Goulet <dgoulet@torproject.org>
8 years agodos: Track new and closed OR client connections
David Goulet [Thu, 25 Jan 2018 21:05:59 +0000 (16:05 -0500)] 
dos: Track new and closed OR client connections

Implement a basic connection tracking that counts the number of concurrent
connections when they open and close.

This commit also adds the circuit creation mitigation data structure that will
be needed at later commit to keep track of the circuit rate.

Signed-off-by: David Goulet <dgoulet@torproject.org>
8 years agogeoip: Remember client stats if DoS mitigation is enabled
David Goulet [Fri, 19 Jan 2018 18:15:07 +0000 (13:15 -0500)] 
geoip: Remember client stats if DoS mitigation is enabled

Make the geoip cache track client address if the DoS subsystem is enabled.

Signed-off-by: David Goulet <dgoulet@torproject.org>
8 years agodos: Initial code of Denial of Service mitigation
David Goulet [Thu, 25 Jan 2018 20:54:58 +0000 (15:54 -0500)] 
dos: Initial code of Denial of Service mitigation

This commit introduces the src/or/dos.{c|h} files that contains the code for
the Denial of Service mitigation subsystem. It currently contains basic
functions to initialize and free the subsystem. They are used at this commit.

The torrc options and consensus parameters are defined at this commit and
getters are implemented.

Signed-off-by: David Goulet <dgoulet@torproject.org>
8 years agogeoip: Add a lookup function for client map entry
David Goulet [Thu, 25 Jan 2018 20:44:48 +0000 (15:44 -0500)] 
geoip: Add a lookup function for client map entry

The upcoming DoS mitigation subsytem needs to keep information on a per-IP
basis which is also what the geoip clientmap does.

For another subsystem to access that clientmap, this commit adds a lookup
function that returns the entry. For this, the clientmap_entry_t had to be
moved to the header file.

Signed-off-by: David Goulet <dgoulet@torproject.org>
8 years agoMerge remote-tracking branch 'dgoulet/bug24895_029_02' into maint-0.2.9
Nick Mathewson [Fri, 19 Jan 2018 21:29:15 +0000 (16:29 -0500)] 
Merge remote-tracking branch 'dgoulet/bug24895_029_02' into maint-0.2.9

8 years agohs: Use hs_service_max_rdv_failures consensus param, defaulting to 2
Roger Dingledine [Fri, 19 Jan 2018 08:00:43 +0000 (03:00 -0500)] 
hs: Use hs_service_max_rdv_failures consensus param, defaulting to 2

8 years agoMerge branch 'maint-0.2.5' into maint-0.2.9
Nick Mathewson [Fri, 19 Jan 2018 15:16:47 +0000 (10:16 -0500)] 
Merge branch 'maint-0.2.5' into maint-0.2.9

8 years agoturn MAX_REND_FAILURES into a function
Roger Dingledine [Fri, 19 Jan 2018 07:38:07 +0000 (02:38 -0500)] 
turn MAX_REND_FAILURES into a function

no actual changes in behavior

8 years agoMAX_REND_FAILURES is 1, but we would try three times
Roger Dingledine [Mon, 15 Jan 2018 21:30:55 +0000 (16:30 -0500)] 
MAX_REND_FAILURES is 1, but we would try three times

Fix an "off by 2" error in counting rendezvous failures on the onion
service side.

While we thought we would stop the rendezvous attempt after one failed
circuit, we were actually making three circuit attempts before giving up.

Fixes bug 24895; bugfix on 0.0.6.

8 years agoWork around Travis CI ptrace regression
Taylor Yu [Wed, 10 Jan 2018 20:52:04 +0000 (14:52 -0600)] 
Work around Travis CI ptrace regression

Travis CI deployed a change that disables ptrace capabilities in
container builds, which prevents LeakSanitizer on clang from working
properly.  Set "sudo: required" to force non-container builds for
clang and work around this.

8 years agoAdd changes file for new fallback directory list.
Nick Mathewson [Mon, 8 Jan 2018 16:09:08 +0000 (11:09 -0500)] 
Add changes file for new fallback directory list.

8 years agoAdd 7 other fallback dirs from teor's tests
Nick Mathewson [Mon, 8 Jan 2018 16:03:44 +0000 (11:03 -0500)] 
Add 7 other fallback dirs from teor's tests

These are from "fallback_dirs_2018_01_06_2323_UTC_44aa1adf35_AU.inc"

8 years agoUpdate the fallback_dirs.inc file: part 1
Nick Mathewson [Mon, 8 Jan 2018 15:57:06 +0000 (10:57 -0500)] 
Update the fallback_dirs.inc file: part 1

This takes the updated fallback_dirs_2018_01_06_CA.inc from
pastly's scan.

8 years agoMerge branch 'maint-0.2.5' into maint-0.2.9
Nick Mathewson [Mon, 8 Jan 2018 14:34:56 +0000 (09:34 -0500)] 
Merge branch 'maint-0.2.5' into maint-0.2.9

8 years agoUpdate geoip and geoip6 to the January 5 2018 database.
Karsten Loesing [Mon, 8 Jan 2018 10:36:38 +0000 (11:36 +0100)] 
Update geoip and geoip6 to the January 5 2018 database.

8 years agoMerge branch 'teor_ticket24681_028' into maint-0.2.9
Nick Mathewson [Fri, 5 Jan 2018 21:41:31 +0000 (16:41 -0500)] 
Merge branch 'teor_ticket24681_028' into maint-0.2.9

8 years agofix a wide line
Nick Mathewson [Fri, 5 Jan 2018 16:28:23 +0000 (11:28 -0500)] 
fix a wide line

8 years agoMerge branch 'bug24633_029' into maint-0.2.9
Nick Mathewson [Wed, 3 Jan 2018 13:59:52 +0000 (08:59 -0500)] 
Merge branch 'bug24633_029' into maint-0.2.9

8 years agoMerge remote-tracking branch 'teor/bug24736_028' into maint-0.2.9
Nick Mathewson [Tue, 2 Jan 2018 15:09:44 +0000 (10:09 -0500)] 
Merge remote-tracking branch 'teor/bug24736_028' into maint-0.2.9

8 years agoClear the address when we can't choose a reachable address
teor [Sun, 24 Dec 2017 14:53:14 +0000 (01:53 +1100)] 
Clear the address when we can't choose a reachable address

When the fascist_firewall_choose_address_ functions don't find a
reachable address, set the returned address to the null address and port.

This is a precautionary measure, because some callers do not check the
return value.

Fixes bug 24736; bugfix on 0.2.8.2-alpha.

8 years agoMake the default DirAuthorityFallbackRate 0.1
teor [Fri, 22 Dec 2017 13:00:18 +0000 (00:00 +1100)] 
Make the default DirAuthorityFallbackRate 0.1

This makes clients on the public tor network prefer to bootstrap off fallback
directory mirrors.

This is a follow-up to 24679, which removed weights from the default fallbacks.

Implements ticket 24681.

8 years agoUse monotime_coarse_absolute_msec() in destroy queue
Nick Mathewson [Thu, 21 Dec 2017 15:48:37 +0000 (10:48 -0500)] 
Use monotime_coarse_absolute_msec() in destroy queue

This way it will match the insert queue in 029 and later.

8 years agoMerge branch 'maint-0.2.8' into maint-0.2.9
Nick Mathewson [Thu, 21 Dec 2017 15:43:12 +0000 (10:43 -0500)] 
Merge branch 'maint-0.2.8' into maint-0.2.9

8 years agoMerge branch 'maint-0.2.5' into maint-0.2.8 maint-0.2.8
Nick Mathewson [Thu, 21 Dec 2017 15:43:06 +0000 (10:43 -0500)] 
Merge branch 'maint-0.2.5' into maint-0.2.8

8 years agoMerge branch 'bug24666_squashed_025' into maint-0.2.5
Nick Mathewson [Thu, 21 Dec 2017 15:40:10 +0000 (10:40 -0500)] 
Merge branch 'bug24666_squashed_025' into maint-0.2.5

8 years agoMove free to end of test function so coverity won't complain.
Nick Mathewson [Thu, 21 Dec 2017 15:39:29 +0000 (10:39 -0500)] 
Move free to end of test function so coverity won't complain.

8 years agoMove destroy cells into a separate queue type of their own, to save RAM
Nick Mathewson [Tue, 19 Dec 2017 18:53:52 +0000 (13:53 -0500)] 
Move destroy cells into a separate queue type of their own, to save RAM

We've been seeing problems with destroy cells queues taking up a
huge amount of RAM.  We can mitigate this, since while a full packed
destroy cell takes 514 bytes, we only need 5 bytes to remember a
circuit ID and a reason.

Fixes bug 24666. Bugfix on 0.2.5.1-alpha, when destroy cell queues
were introduced.

8 years agoMerge branch 'maint-0.2.8' into maint-0.2.9
Nick Mathewson [Wed, 20 Dec 2017 17:15:23 +0000 (12:15 -0500)] 
Merge branch 'maint-0.2.8' into maint-0.2.9

8 years agoMerge branch 'maint-0.2.5' into maint-0.2.8
Nick Mathewson [Wed, 20 Dec 2017 17:15:23 +0000 (12:15 -0500)] 
Merge branch 'maint-0.2.5' into maint-0.2.8

8 years agoUpdate geoip and geoip6 to the December 6 2017 database.
Karsten Loesing [Wed, 20 Dec 2017 16:36:29 +0000 (17:36 +0100)] 
Update geoip and geoip6 to the December 6 2017 database.

8 years agoFix the clz32 and clz64 settings on MSVC.
Nick Mathewson [Wed, 20 Dec 2017 14:34:25 +0000 (09:34 -0500)] 
Fix the clz32 and clz64 settings on MSVC.

Fixes bug 24633; bugfix on 0.2.9.1-alpha.

8 years agoMerge branch 'maint-0.2.8' into maint-0.2.9
Nick Mathewson [Mon, 11 Dec 2017 21:56:31 +0000 (16:56 -0500)] 
Merge branch 'maint-0.2.8' into maint-0.2.9

8 years agoMerge branch 'maint-0.2.5' into maint-0.2.8
Nick Mathewson [Mon, 11 Dec 2017 21:56:31 +0000 (16:56 -0500)] 
Merge branch 'maint-0.2.5' into maint-0.2.8

8 years agoMerge branch 'bug24167_025' into maint-0.2.5
Nick Mathewson [Mon, 11 Dec 2017 21:56:28 +0000 (16:56 -0500)] 
Merge branch 'bug24167_025' into maint-0.2.5

8 years agoMerge branch 'maint-0.2.8' into maint-0.2.9
Nick Mathewson [Mon, 11 Dec 2017 21:54:14 +0000 (16:54 -0500)] 
Merge branch 'maint-0.2.8' into maint-0.2.9

8 years agoMerge branch 'maint-0.2.5' into maint-0.2.8
Nick Mathewson [Mon, 11 Dec 2017 21:54:11 +0000 (16:54 -0500)] 
Merge branch 'maint-0.2.5' into maint-0.2.8

8 years agoMerge remote-tracking branch 'public/ticket23856_025_01' into maint-0.2.5
Nick Mathewson [Mon, 11 Dec 2017 21:53:02 +0000 (16:53 -0500)] 
Merge remote-tracking branch 'public/ticket23856_025_01' into maint-0.2.5

8 years agoMerge remote-tracking branch 'public/bug23985_029' into maint-0.2.9
Nick Mathewson [Mon, 11 Dec 2017 21:51:54 +0000 (16:51 -0500)] 
Merge remote-tracking branch 'public/bug23985_029' into maint-0.2.9

8 years agoMerge branch 'maint-0.2.8' into maint-0.2.9
Nick Mathewson [Fri, 1 Dec 2017 17:13:40 +0000 (12:13 -0500)] 
Merge branch 'maint-0.2.8' into maint-0.2.9

8 years agoMerge branch 'maint-0.2.5' into maint-0.2.8
Nick Mathewson [Fri, 1 Dec 2017 17:13:39 +0000 (12:13 -0500)] 
Merge branch 'maint-0.2.5' into maint-0.2.8

8 years agoFix a clang compilation warning in rendservice.c
Nick Mathewson [Fri, 1 Dec 2017 17:13:15 +0000 (12:13 -0500)] 
Fix a clang compilation warning in rendservice.c

Fixes bug 24480; bugfix on 0.2.5.16.

8 years agoMerge branch 'maint-0.2.8' into maint-0.2.9
Nick Mathewson [Fri, 1 Dec 2017 14:35:07 +0000 (09:35 -0500)] 
Merge branch 'maint-0.2.8' into maint-0.2.9

"ours" merge to avoid version bump.

8 years agoMerge branch 'maint-0.2.5' into maint-0.2.8
Nick Mathewson [Fri, 1 Dec 2017 14:34:47 +0000 (09:34 -0500)] 
Merge branch 'maint-0.2.5' into maint-0.2.8

"ours" merge to avoid version bump.

8 years agobump to 0.2.9.14-dev
Nick Mathewson [Fri, 1 Dec 2017 14:34:00 +0000 (09:34 -0500)] 
bump to 0.2.9.14-dev

8 years agobump to 0.2.8.17-dev
Nick Mathewson [Fri, 1 Dec 2017 14:33:51 +0000 (09:33 -0500)] 
bump to 0.2.8.17-dev

8 years agobump to 0.2.5.16-dev
Nick Mathewson [Fri, 1 Dec 2017 14:33:41 +0000 (09:33 -0500)] 
bump to 0.2.5.16-dev

8 years agoversion bump to 0.2.9.14
Nick Mathewson [Thu, 30 Nov 2017 17:24:07 +0000 (12:24 -0500)] 
version bump to 0.2.9.14

8 years agoMerge branch 'maint-0.2.8' into maint-0.2.9
Nick Mathewson [Thu, 30 Nov 2017 17:22:38 +0000 (12:22 -0500)] 
Merge branch 'maint-0.2.8' into maint-0.2.9

"ours" merge to avoid version bump.

8 years agoversion bump to 0.2.8.17
Nick Mathewson [Thu, 30 Nov 2017 17:22:32 +0000 (12:22 -0500)] 
version bump to 0.2.8.17

8 years agoMerge branch 'maint-0.2.5' into maint-0.2.8
Nick Mathewson [Thu, 30 Nov 2017 17:21:36 +0000 (12:21 -0500)] 
Merge branch 'maint-0.2.5' into maint-0.2.8

"ours" to avoid version bump

8 years agobump to 0.2.5.16
Nick Mathewson [Thu, 30 Nov 2017 17:19:48 +0000 (12:19 -0500)] 
bump to 0.2.5.16

8 years agoMerge branch 'maint-0.2.8' into maint-0.2.9
Nick Mathewson [Thu, 30 Nov 2017 17:07:59 +0000 (12:07 -0500)] 
Merge branch 'maint-0.2.8' into maint-0.2.9

8 years agoMerge branch 'maint-0.2.5' into maint-0.2.8
Nick Mathewson [Thu, 30 Nov 2017 17:07:59 +0000 (12:07 -0500)] 
Merge branch 'maint-0.2.5' into maint-0.2.8

8 years agoMerge branch 'trove-2017-010_029' into maint-0.2.9
Nick Mathewson [Thu, 30 Nov 2017 17:07:26 +0000 (12:07 -0500)] 
Merge branch 'trove-2017-010_029' into maint-0.2.9

8 years agoMerge branch 'trove-2017-012_025' into maint-0.2.5
Nick Mathewson [Thu, 30 Nov 2017 17:06:21 +0000 (12:06 -0500)] 
Merge branch 'trove-2017-012_025' into maint-0.2.5

8 years agoMerge branch 'trove-2017-011_025' into maint-0.2.5
Nick Mathewson [Thu, 30 Nov 2017 17:06:17 +0000 (12:06 -0500)] 
Merge branch 'trove-2017-011_025' into maint-0.2.5

8 years agoMerge branch 'trove-2017-009_025' into maint-0.2.5
Nick Mathewson [Thu, 30 Nov 2017 17:05:59 +0000 (12:05 -0500)] 
Merge branch 'trove-2017-009_025' into maint-0.2.5

8 years agoFix changes file
Nick Mathewson [Thu, 30 Nov 2017 16:52:40 +0000 (11:52 -0500)] 
Fix changes file

8 years agoMerge branch 'bug21394_029' into maint-0.2.9
Nick Mathewson [Thu, 30 Nov 2017 16:48:06 +0000 (11:48 -0500)] 
Merge branch 'bug21394_029' into maint-0.2.9

8 years agoUse local descriptor object to exclude self in path selection
David Goulet [Wed, 29 Nov 2017 00:02:00 +0000 (19:02 -0500)] 
Use local descriptor object to exclude self in path selection

TROVE-2017-12. Severity: Medium

When choosing a random node for a circuit, directly use our router
descriptor to exclude ourself instead of the one in the global
descriptor list. That list could be empty because tor could be
downloading them which could lead to not excluding ourself.

Closes #21534

8 years agohs-v2: Remove any expiring intro from the retry list
David Goulet [Tue, 21 Nov 2017 15:16:08 +0000 (10:16 -0500)] 
hs-v2: Remove any expiring intro from the retry list

TROVE-2017-13. Severity: High.

In the unlikely case that a hidden service could be missing intro circuit(s),
that it didn't have enough directory information to open new circuits and that
an intro point was about to expire, a use-after-free is possible because of
the intro point object being both in the retry list and expiring list at the
same time.

The intro object would get freed after the circuit failed to open and then
access a second time when cleaned up from the expiring list.

Fixes #24313

8 years agoAvoid asking for passphrase on junky PEM input
Nick Mathewson [Sat, 11 Nov 2017 19:21:37 +0000 (14:21 -0500)] 
Avoid asking for passphrase on junky PEM input

Fixes bug 24246 and TROVE-2017-011.

This bug is so old, it's in Matej's code.  Seems to have been
introduced with e01522bbed6eea.

8 years agoHandle NULL input to protover_compute_for_old_tor()
Nick Mathewson [Sat, 11 Nov 2017 18:56:35 +0000 (13:56 -0500)] 
Handle NULL input to protover_compute_for_old_tor()

Fixes bug 24245; bugfix on 0.2.9.4-alpha. TROVE-2017-010.

8 years agoFix length of replaycache-checked data.
Nick Mathewson [Sat, 11 Nov 2017 18:40:21 +0000 (13:40 -0500)] 
Fix length of replaycache-checked data.

This is a regression; we should have been checking only the
public-key encrypted portion.  Fixes bug 24244, TROVE-2017-009, and
CVE-2017-8819.

8 years agorelay: Change bandwidth stats interval to 24 hours
David Goulet [Wed, 22 Nov 2017 14:25:07 +0000 (09:25 -0500)] 
relay: Change bandwidth stats interval to 24 hours

Going from 4 hours to 24 hours in order to try reduce the efficiency of guard
discovery attacks.

Closes #23856

Signed-off-by: David Goulet <dgoulet@torproject.org>
8 years agoMerge branch 'maint-0.2.8' into maint-0.2.9
Nick Mathewson [Mon, 27 Nov 2017 14:09:34 +0000 (09:09 -0500)] 
Merge branch 'maint-0.2.8' into maint-0.2.9