|
@@ -3,6 +3,598 @@ of Tor. If you want to see more detailed descriptions of the changes in
|
|
|
each development snapshot, see the ChangeLog file.
|
|
|
|
|
|
|
|
|
+Changes in version 0.3.0.6 - 2017-04-26
|
|
|
+ Tor 0.3.0.6 is the first stable release of the Tor 0.3.0 series.
|
|
|
+
|
|
|
+ With the 0.3.0 series, clients and relays now use Ed25519 keys to
|
|
|
+ authenticate their link connections to relays, rather than the old
|
|
|
+ RSA1024 keys that they used before. (Circuit crypto has been
|
|
|
+ Curve25519-authenticated since 0.2.4.8-alpha.) We have also replaced
|
|
|
+ the guard selection and replacement algorithm to behave more robustly
|
|
|
+ in the presence of unreliable networks, and to resist guard-
|
|
|
+ capture attacks.
|
|
|
+
|
|
|
+ This series also includes numerous other small features and bugfixes,
|
|
|
+ along with more groundwork for the upcoming hidden-services revamp.
|
|
|
+
|
|
|
+ Per our stable release policy, we plan to support the Tor 0.3.0
|
|
|
+ release series for at least the next nine months, or for three months
|
|
|
+ after the first stable release of the 0.3.1 series: whichever is
|
|
|
+ longer. If you need a release with long-term support, we recommend
|
|
|
+ that you stay with the 0.2.9 series.
|
|
|
+
|
|
|
+ Below are the changes since 0.2.9.10. For a list of only the changes
|
|
|
+ since 0.3.0.5-rc, see the ChangeLog file.
|
|
|
+
|
|
|
+ o Major features (directory authority, security):
|
|
|
+ - The default for AuthDirPinKeys is now 1: directory authorities
|
|
|
+ will reject relays where the RSA identity key matches a previously
|
|
|
+ seen value, but the Ed25519 key has changed. Closes ticket 18319.
|
|
|
+
|
|
|
+ o Major features (guard selection algorithm):
|
|
|
+ - Tor's guard selection algorithm has been redesigned from the
|
|
|
+ ground up, to better support unreliable networks and restrictive
|
|
|
+ sets of entry nodes, and to better resist guard-capture attacks by
|
|
|
+ hostile local networks. Implements proposal 271; closes
|
|
|
+ ticket 19877.
|
|
|
+
|
|
|
+ o Major features (next-generation hidden services):
|
|
|
+ - Relays can now handle v3 ESTABLISH_INTRO cells as specified by
|
|
|
+ prop224 aka "Next Generation Hidden Services". Service and clients
|
|
|
+ don't use this functionality yet. Closes ticket 19043. Based on
|
|
|
+ initial code by Alec Heifetz.
|
|
|
+ - Relays now support the HSDir version 3 protocol, so that they can
|
|
|
+ can store and serve v3 descriptors. This is part of the next-
|
|
|
+ generation onion service work detailled in proposal 224. Closes
|
|
|
+ ticket 17238.
|
|
|
+
|
|
|
+ o Major features (protocol, ed25519 identity keys):
|
|
|
+ - Clients now support including Ed25519 identity keys in the EXTEND2
|
|
|
+ cells they generate. By default, this is controlled by a consensus
|
|
|
+ parameter, currently disabled. You can turn this feature on for
|
|
|
+ testing by setting ExtendByEd25519ID in your configuration. This
|
|
|
+ might make your traffic appear different than the traffic
|
|
|
+ generated by other users, however. Implements part of ticket
|
|
|
+ 15056; part of proposal 220.
|
|
|
+ - Relays now understand requests to extend to other relays by their
|
|
|
+ Ed25519 identity keys. When an Ed25519 identity key is included in
|
|
|
+ an EXTEND2 cell, the relay will only extend the circuit if the
|
|
|
+ other relay can prove ownership of that identity. Implements part
|
|
|
+ of ticket 15056; part of proposal 220.
|
|
|
+ - Relays now use Ed25519 to prove their Ed25519 identities and to
|
|
|
+ one another, and to clients. This algorithm is faster and more
|
|
|
+ secure than the RSA-based handshake we've been doing until now.
|
|
|
+ Implements the second big part of proposal 220; Closes
|
|
|
+ ticket 15055.
|
|
|
+
|
|
|
+ o Major features (security):
|
|
|
+ - Change the algorithm used to decide DNS TTLs on client and server
|
|
|
+ side, to better resist DNS-based correlation attacks like the
|
|
|
+ DefecTor attack of Greschbach, Pulls, Roberts, Winter, and
|
|
|
+ Feamster. Now relays only return one of two possible DNS TTL
|
|
|
+ values, and clients are willing to believe DNS TTL values up to 3
|
|
|
+ hours long. Closes ticket 19769.
|
|
|
+
|
|
|
+ o Major bugfixes (client, onion service, also in 0.2.9.9):
|
|
|
+ - Fix a client-side onion service reachability bug, where multiple
|
|
|
+ socks requests to an onion service (or a single slow request)
|
|
|
+ could cause us to mistakenly mark some of the service's
|
|
|
+ introduction points as failed, and we cache that failure so
|
|
|
+ eventually we run out and can't reach the service. Also resolves a
|
|
|
+ mysterious "Remote server sent bogus reason code 65021" log
|
|
|
+ warning. The bug was introduced in ticket 17218, where we tried to
|
|
|
+ remember the circuit end reason as a uint16_t, which mangled
|
|
|
+ negative values. Partially fixes bug 21056 and fixes bug 20307;
|
|
|
+ bugfix on 0.2.8.1-alpha.
|
|
|
+
|
|
|
+ o Major bugfixes (crash, directory connections):
|
|
|
+ - Fix a rare crash when sending a begin cell on a circuit whose
|
|
|
+ linked directory connection had already been closed. Fixes bug
|
|
|
+ 21576; bugfix on 0.2.9.3-alpha. Reported by Alec Muffett.
|
|
|
+
|
|
|
+ o Major bugfixes (directory authority):
|
|
|
+ - During voting, when marking a relay as a probable sybil, do not
|
|
|
+ clear its BadExit flag: sybils can still be bad in other ways
|
|
|
+ too. (We still clear the other flags.) Fixes bug 21108; bugfix
|
|
|
+ on 0.2.0.13-alpha.
|
|
|
+
|
|
|
+ o Major bugfixes (DNS):
|
|
|
+ - Fix a bug that prevented exit nodes from caching DNS records for
|
|
|
+ more than 60 seconds. Fixes bug 19025; bugfix on 0.2.4.7-alpha.
|
|
|
+
|
|
|
+ o Major bugfixes (IPv6 Exits):
|
|
|
+ - Stop rejecting all IPv6 traffic on Exits whose exit policy rejects
|
|
|
+ any IPv6 addresses. Instead, only reject a port over IPv6 if the
|
|
|
+ exit policy rejects that port on more than an IPv6 /16 of
|
|
|
+ addresses. This bug was made worse by 17027 in 0.2.8.1-alpha,
|
|
|
+ which rejected a relay's own IPv6 address by default. Fixes bug
|
|
|
+ 21357; bugfix on commit 004f3f4e53 in 0.2.4.7-alpha.
|
|
|
+
|
|
|
+ o Major bugfixes (parsing):
|
|
|
+ - Fix an integer underflow bug when comparing malformed Tor
|
|
|
+ versions. This bug could crash Tor when built with
|
|
|
+ --enable-expensive-hardening, or on Tor 0.2.9.1-alpha through Tor
|
|
|
+ 0.2.9.8, which were built with -ftrapv by default. In other cases
|
|
|
+ it was harmless. Part of TROVE-2017-001. Fixes bug 21278; bugfix
|
|
|
+ on 0.0.8pre1. Found by OSS-Fuzz.
|
|
|
+ - When parsing a malformed content-length field from an HTTP
|
|
|
+ message, do not read off the end of the buffer. This bug was a
|
|
|
+ potential remote denial-of-service attack against Tor clients and
|
|
|
+ relays. A workaround was released in October 2016, to prevent this
|
|
|
+ bug from crashing Tor. This is a fix for the underlying issue,
|
|
|
+ which should no longer matter (if you applied the earlier patch).
|
|
|
+ Fixes bug 20894; bugfix on 0.2.0.16-alpha. Bug found by fuzzing
|
|
|
+ using AFL (http://lcamtuf.coredump.cx/afl/).
|
|
|
+
|
|
|
+ o Major bugfixes (scheduler):
|
|
|
+ - Actually compare circuit policies in ewma_cmp_cmux(). This bug
|
|
|
+ caused the channel scheduler to behave more or less randomly,
|
|
|
+ rather than preferring channels with higher-priority circuits.
|
|
|
+ Fixes bug 20459; bugfix on 0.2.6.2-alpha.
|
|
|
+
|
|
|
+ o Major bugfixes (security, also in 0.2.9.9):
|
|
|
+ - Downgrade the "-ftrapv" option from "always on" to "only on when
|
|
|
+ --enable-expensive-hardening is provided." This hardening option,
|
|
|
+ like others, can turn survivable bugs into crashes--and having it
|
|
|
+ on by default made a (relatively harmless) integer overflow bug
|
|
|
+ into a denial-of-service bug. Fixes bug 21278 (TROVE-2017-001);
|
|
|
+ bugfix on 0.2.9.1-alpha.
|
|
|
+
|
|
|
+ o Minor feature (client):
|
|
|
+ - Enable IPv6 traffic on the SocksPort by default. To disable this,
|
|
|
+ a user will have to specify "NoIPv6Traffic". Closes ticket 21269.
|
|
|
+
|
|
|
+ o Minor feature (fallback scripts):
|
|
|
+ - Add a check_existing mode to updateFallbackDirs.py, which checks
|
|
|
+ if fallbacks in the hard-coded list are working. Closes ticket
|
|
|
+ 20174. Patch by haxxpop.
|
|
|
+
|
|
|
+ o Minor feature (protocol versioning):
|
|
|
+ - Add new protocol version for proposal 224. HSIntro now advertises
|
|
|
+ version "3-4" and HSDir version "1-2". Fixes ticket 20656.
|
|
|
+
|
|
|
+ o Minor features (ciphersuite selection):
|
|
|
+ - Allow relays to accept a wider range of ciphersuites, including
|
|
|
+ chacha20-poly1305 and AES-CCM. Closes the other part of 15426.
|
|
|
+ - Clients now advertise a list of ciphersuites closer to the ones
|
|
|
+ preferred by Firefox. Closes part of ticket 15426.
|
|
|
+
|
|
|
+ o Minor features (controller):
|
|
|
+ - Add "GETINFO sr/current" and "GETINFO sr/previous" keys, to expose
|
|
|
+ shared-random values to the controller. Closes ticket 19925.
|
|
|
+ - When HSFETCH arguments cannot be parsed, say "Invalid argument"
|
|
|
+ rather than "unrecognized." Closes ticket 20389; patch from
|
|
|
+ Ivan Markin.
|
|
|
+
|
|
|
+ o Minor features (controller, configuration):
|
|
|
+ - Each of the *Port options, such as SocksPort, ORPort, ControlPort,
|
|
|
+ and so on, now comes with a __*Port variant that will not be saved
|
|
|
+ to the torrc file by the controller's SAVECONF command. This
|
|
|
+ change allows TorBrowser to set up a single-use domain socket for
|
|
|
+ each time it launches Tor. Closes ticket 20956.
|
|
|
+ - The GETCONF command can now query options that may only be
|
|
|
+ meaningful in context-sensitive lists. This allows the controller
|
|
|
+ to query the mixed SocksPort/__SocksPort style options introduced
|
|
|
+ in feature 20956. Implements ticket 21300.
|
|
|
+
|
|
|
+ o Minor features (diagnostic, directory client):
|
|
|
+ - Warn when we find an unexpected inconsistency in directory
|
|
|
+ download status objects. Prevents some negative consequences of
|
|
|
+ bug 20593.
|
|
|
+
|
|
|
+ o Minor features (directory authorities):
|
|
|
+ - Directory authorities now reject descriptors that claim to be
|
|
|
+ malformed versions of Tor. Helps prevent exploitation of
|
|
|
+ bug 21278.
|
|
|
+ - Reject version numbers with components that exceed INT32_MAX.
|
|
|
+ Otherwise 32-bit and 64-bit platforms would behave inconsistently.
|
|
|
+ Fixes bug 21450; bugfix on 0.0.8pre1.
|
|
|
+
|
|
|
+ o Minor features (directory authority):
|
|
|
+ - Add a new authority-only AuthDirTestEd25519LinkKeys option (on by
|
|
|
+ default) to control whether authorities should try to probe relays
|
|
|
+ by their Ed25519 link keys. This option will go away in a few
|
|
|
+ releases--unless we encounter major trouble in our ed25519 link
|
|
|
+ protocol rollout, in which case it will serve as a safety option.
|
|
|
+
|
|
|
+ o Minor features (directory cache):
|
|
|
+ - Relays and bridges will now refuse to serve the consensus they
|
|
|
+ have if they know it is too old for a client to use. Closes
|
|
|
+ ticket 20511.
|
|
|
+
|
|
|
+ o Minor features (ed25519 link handshake):
|
|
|
+ - Advertise support for the ed25519 link handshake using the
|
|
|
+ subprotocol-versions mechanism, so that clients can tell which
|
|
|
+ relays can identity themselves by Ed25519 ID. Closes ticket 20552.
|
|
|
+
|
|
|
+ o Minor features (entry guards):
|
|
|
+ - Add UseEntryGuards to TEST_OPTIONS_DEFAULT_VALUES in order to not
|
|
|
+ break regression tests.
|
|
|
+ - Require UseEntryGuards when UseBridges is set, in order to make
|
|
|
+ sure bridges aren't bypassed. Resolves ticket 20502.
|
|
|
+
|
|
|
+ o Minor features (fallback directories):
|
|
|
+ - Allow 3 fallback relays per operator, which is safe now that we
|
|
|
+ are choosing 200 fallback relays. Closes ticket 20912.
|
|
|
+ - Annotate updateFallbackDirs.py with the bandwidth and consensus
|
|
|
+ weight for each candidate fallback. Closes ticket 20878.
|
|
|
+ - Display the relay fingerprint when downloading consensuses from
|
|
|
+ fallbacks. Closes ticket 20908.
|
|
|
+ - Exclude relays affected by bug 20499 from the fallback list.
|
|
|
+ Exclude relays from the fallback list if they are running versions
|
|
|
+ known to be affected by bug 20499, or if in our tests they deliver
|
|
|
+ a stale consensus (i.e. one that expired more than 24 hours ago).
|
|
|
+ Closes ticket 20539.
|
|
|
+ - Make it easier to change the output sort order of fallbacks.
|
|
|
+ Closes ticket 20822.
|
|
|
+ - Reduce the minimum fallback bandwidth to 1 MByte/s. Part of
|
|
|
+ ticket 18828.
|
|
|
+ - Require fallback directories to have the same address and port for
|
|
|
+ 7 days (now that we have enough relays with this stability).
|
|
|
+ Relays whose OnionOO stability timer is reset on restart by bug
|
|
|
+ 18050 should upgrade to Tor 0.2.8.7 or later, which has a fix for
|
|
|
+ this issue. Closes ticket 20880; maintains short-term fix
|
|
|
+ in 0.2.8.2-alpha.
|
|
|
+ - Require fallbacks to have flags for 90% of the time (weighted
|
|
|
+ decaying average), rather than 95%. This allows at least 73% of
|
|
|
+ clients to bootstrap in the first 5 seconds without contacting an
|
|
|
+ authority. Part of ticket 18828.
|
|
|
+ - Select 200 fallback directories for each release. Closes
|
|
|
+ ticket 20881.
|
|
|
+
|
|
|
+ o Minor features (fingerprinting resistence, authentication):
|
|
|
+ - Extend the length of RSA keys used for TLS link authentication to
|
|
|
+ 2048 bits. (These weren't used for forward secrecy; for forward
|
|
|
+ secrecy, we used P256.) Closes ticket 13752.
|
|
|
+
|
|
|
+ o Minor features (geoip):
|
|
|
+ - Update geoip and geoip6 to the April 4 2017 Maxmind GeoLite2
|
|
|
+ Country database.
|
|
|
+
|
|
|
+ o Minor features (geoip, also in 0.2.9.9):
|
|
|
+ - Update geoip and geoip6 to the January 4 2017 Maxmind GeoLite2
|
|
|
+ Country database.
|
|
|
+
|
|
|
+ o Minor features (infrastructure):
|
|
|
+ - Implement smartlist_add_strdup() function. Replaces the use of
|
|
|
+ smartlist_add(sl, tor_strdup(str)). Closes ticket 20048.
|
|
|
+
|
|
|
+ o Minor features (linting):
|
|
|
+ - Enhance the changes file linter to warn on Tor versions that are
|
|
|
+ prefixed with "tor-". Closes ticket 21096.
|
|
|
+
|
|
|
+ o Minor features (logging):
|
|
|
+ - In several places, describe unset ed25519 keys as "<unset>",
|
|
|
+ rather than the scary "AAAAAAAA...AAA". Closes ticket 21037.
|
|
|
+
|
|
|
+ o Minor features (portability, compilation):
|
|
|
+ - Autoconf now checks to determine if OpenSSL structures are opaque,
|
|
|
+ instead of explicitly checking for OpenSSL version numbers. Part
|
|
|
+ of ticket 21359.
|
|
|
+ - Support building with recent LibreSSL code that uses opaque
|
|
|
+ structures. Closes ticket 21359.
|
|
|
+
|
|
|
+ o Minor features (relay):
|
|
|
+ - We now allow separation of exit and relay traffic to different
|
|
|
+ source IP addresses, using the OutboundBindAddressExit and
|
|
|
+ OutboundBindAddressOR options respectively. Closes ticket 17975.
|
|
|
+ Written by Michael Sonntag.
|
|
|
+
|
|
|
+ o Minor features (reliability, crash):
|
|
|
+ - Try better to detect problems in buffers where they might grow (or
|
|
|
+ think they have grown) over 2 GB in size. Diagnostic for
|
|
|
+ bug 21369.
|
|
|
+
|
|
|
+ o Minor features (testing):
|
|
|
+ - During 'make test-network-all', if tor logs any warnings, ask
|
|
|
+ chutney to output them. Requires a recent version of chutney with
|
|
|
+ the 21572 patch. Implements 21570.
|
|
|
+
|
|
|
+ o Minor bugfix (control protocol):
|
|
|
+ - The reply to a "GETINFO config/names" request via the control
|
|
|
+ protocol now spells the type "Dependent" correctly. This is a
|
|
|
+ breaking change in the control protocol. (The field seems to be
|
|
|
+ ignored by the most common known controllers.) Fixes bug 18146;
|
|
|
+ bugfix on 0.1.1.4-alpha.
|
|
|
+ - The GETINFO extra-info/digest/<digest> command was broken because
|
|
|
+ of a wrong base16 decode return value check, introduced when
|
|
|
+ refactoring that API. Fixes bug 22034; bugfix on 0.2.9.1-alpha.
|
|
|
+
|
|
|
+ o Minor bugfix (logging):
|
|
|
+ - Don't recommend the use of Tor2web in non-anonymous mode.
|
|
|
+ Recommending Tor2web is a bad idea because the client loses all
|
|
|
+ anonymity. Tor2web should only be used in specific cases by users
|
|
|
+ who *know* and understand the issues. Fixes bug 21294; bugfix
|
|
|
+ on 0.2.9.3-alpha.
|
|
|
+
|
|
|
+ o Minor bugfixes (bug resilience):
|
|
|
+ - Fix an unreachable size_t overflow in base64_decode(). Fixes bug
|
|
|
+ 19222; bugfix on 0.2.0.9-alpha. Found by Guido Vranken; fixed by
|
|
|
+ Hans Jerry Illikainen.
|
|
|
+
|
|
|
+ o Minor bugfixes (build):
|
|
|
+ - Replace obsolete Autoconf macros with their modern equivalent and
|
|
|
+ prevent similar issues in the future. Fixes bug 20990; bugfix
|
|
|
+ on 0.1.0.1-rc.
|
|
|
+
|
|
|
+ o Minor bugfixes (certificate expiration time):
|
|
|
+ - Avoid using link certificates that don't become valid till some
|
|
|
+ time in the future. Fixes bug 21420; bugfix on 0.2.4.11-alpha
|
|
|
+
|
|
|
+ o Minor bugfixes (client):
|
|
|
+ - Always recover from failures in extend_info_from_node(), in an
|
|
|
+ attempt to prevent any recurrence of bug 21242. Fixes bug 21372;
|
|
|
+ bugfix on 0.2.3.1-alpha.
|
|
|
+ - When clients that use bridges start up with a cached consensus on
|
|
|
+ disk, they were ignoring it and downloading a new one. Now they
|
|
|
+ use the cached one. Fixes bug 20269; bugfix on 0.2.3.12-alpha.
|
|
|
+
|
|
|
+ o Minor bugfixes (code correctness):
|
|
|
+ - Repair a couple of (unreachable or harmless) cases of the risky
|
|
|
+ comparison-by-subtraction pattern that caused bug 21278.
|
|
|
+
|
|
|
+ o Minor bugfixes (config):
|
|
|
+ - Don't assert on startup when trying to get the options list and
|
|
|
+ LearnCircuitBuildTimeout is set to 0: we are currently parsing the
|
|
|
+ options so of course they aren't ready yet. Fixes bug 21062;
|
|
|
+ bugfix on 0.2.9.3-alpha.
|
|
|
+
|
|
|
+ o Minor bugfixes (configuration):
|
|
|
+ - Accept non-space whitespace characters after the severity level in
|
|
|
+ the `Log` option. Fixes bug 19965; bugfix on 0.2.1.1-alpha.
|
|
|
+ - Support "TByte" and "TBytes" units in options given in bytes.
|
|
|
+ "TB", "terabyte(s)", "TBit(s)" and "terabit(s)" were already
|
|
|
+ supported. Fixes bug 20622; bugfix on 0.2.0.14-alpha.
|
|
|
+
|
|
|
+ o Minor bugfixes (configure, autoconf):
|
|
|
+ - Rename the configure option --enable-expensive-hardening to
|
|
|
+ --enable-fragile-hardening. Expensive hardening makes the tor
|
|
|
+ daemon abort when some kinds of issues are detected. Thus, it
|
|
|
+ makes tor more at risk of remote crashes but safer against RCE or
|
|
|
+ heartbleed bug category. We now try to explain this issue in a
|
|
|
+ message from the configure script. Fixes bug 21290; bugfix
|
|
|
+ on 0.2.5.4-alpha.
|
|
|
+
|
|
|
+ o Minor bugfixes (consensus weight):
|
|
|
+ - Add new consensus method that initializes bw weights to 1 instead
|
|
|
+ of 0. This prevents a zero weight from making it all the way to
|
|
|
+ the end (happens in small testing networks) and causing an error.
|
|
|
+ Fixes bug 14881; bugfix on 0.2.2.17-alpha.
|
|
|
+
|
|
|
+ o Minor bugfixes (crash prevention):
|
|
|
+ - Fix an (currently untriggerable, but potentially dangerous) crash
|
|
|
+ bug when base32-encoding inputs whose sizes are not a multiple of
|
|
|
+ 5. Fixes bug 21894; bugfix on 0.2.9.1-alpha.
|
|
|
+
|
|
|
+ o Minor bugfixes (dead code):
|
|
|
+ - Remove a redundant check for PidFile changes at runtime in
|
|
|
+ options_transition_allowed(): this check is already performed
|
|
|
+ regardless of whether the sandbox is active. Fixes bug 21123;
|
|
|
+ bugfix on 0.2.5.4-alpha.
|
|
|
+
|
|
|
+ o Minor bugfixes (descriptors):
|
|
|
+ - Correctly recognise downloaded full descriptors as valid, even
|
|
|
+ when using microdescriptors as circuits. This affects clients with
|
|
|
+ FetchUselessDescriptors set, and may affect directory authorities.
|
|
|
+ Fixes bug 20839; bugfix on 0.2.3.2-alpha.
|
|
|
+
|
|
|
+ o Minor bugfixes (directory mirrors):
|
|
|
+ - Allow relays to use directory mirrors without a DirPort: these
|
|
|
+ relays need to be contacted over their ORPorts using a begindir
|
|
|
+ connection. Fixes one case of bug 20711; bugfix on 0.2.8.2-alpha.
|
|
|
+ - Clarify the message logged when a remote relay is unexpectedly
|
|
|
+ missing an ORPort or DirPort: users were confusing this with a
|
|
|
+ local port. Fixes another case of bug 20711; bugfix
|
|
|
+ on 0.2.8.2-alpha.
|
|
|
+
|
|
|
+ o Minor bugfixes (directory system):
|
|
|
+ - Bridges and relays now use microdescriptors (like clients do)
|
|
|
+ rather than old-style router descriptors. Now bridges will blend
|
|
|
+ in with clients in terms of the circuits they build. Fixes bug
|
|
|
+ 6769; bugfix on 0.2.3.2-alpha.
|
|
|
+ - Download all consensus flavors, descriptors, and authority
|
|
|
+ certificates when FetchUselessDescriptors is set, regardless of
|
|
|
+ whether tor is a directory cache or not. Fixes bug 20667; bugfix
|
|
|
+ on all recent tor versions.
|
|
|
+
|
|
|
+ o Minor bugfixes (documentation):
|
|
|
+ - Update the tor manual page to document every option that can not
|
|
|
+ be changed while tor is running. Fixes bug 21122.
|
|
|
+
|
|
|
+ o Minor bugfixes (ed25519 certificates):
|
|
|
+ - Correctly interpret ed25519 certificates that would expire some
|
|
|
+ time after 19 Jan 2038. Fixes bug 20027; bugfix on 0.2.7.2-alpha.
|
|
|
+
|
|
|
+ o Minor bugfixes (fallback directories):
|
|
|
+ - Avoid checking fallback candidates' DirPorts if they are down in
|
|
|
+ OnionOO. When a relay operator has multiple relays, this
|
|
|
+ prioritizes relays that are up over relays that are down. Fixes
|
|
|
+ bug 20926; bugfix on 0.2.8.3-alpha.
|
|
|
+ - Stop failing when OUTPUT_COMMENTS is True in updateFallbackDirs.py.
|
|
|
+ Fixes bug 20877; bugfix on 0.2.8.3-alpha.
|
|
|
+ - Stop failing when a relay has no uptime data in
|
|
|
+ updateFallbackDirs.py. Fixes bug 20945; bugfix on 0.2.8.1-alpha.
|
|
|
+
|
|
|
+ o Minor bugfixes (hidden service):
|
|
|
+ - Clean up the code for expiring intro points with no associated
|
|
|
+ circuits. It was causing, rarely, a service with some expiring
|
|
|
+ introduction points to not open enough additional introduction
|
|
|
+ points. Fixes part of bug 21302; bugfix on 0.2.7.2-alpha.
|
|
|
+ - Resolve two possible underflows which could lead to creating and
|
|
|
+ closing a lot of introduction point circuits in a non-stop loop.
|
|
|
+ Fixes bug 21302; bugfix on 0.2.7.2-alpha.
|
|
|
+ - Stop setting the torrc option HiddenServiceStatistics to "0" just
|
|
|
+ because we're not a bridge or relay. Instead, we preserve whatever
|
|
|
+ value the user set (or didn't set). Fixes bug 21150; bugfix
|
|
|
+ on 0.2.6.2-alpha.
|
|
|
+
|
|
|
+ o Minor bugfixes (hidden services):
|
|
|
+ - Make hidden services check for failed intro point connections,
|
|
|
+ even when they have exceeded their intro point creation limit.
|
|
|
+ Fixes bug 21596; bugfix on 0.2.7.2-alpha. Reported by Alec Muffett.
|
|
|
+ - Make hidden services with 8 to 10 introduction points check for
|
|
|
+ failed circuits immediately after startup. Previously, they would
|
|
|
+ wait for 5 minutes before performing their first checks. Fixes bug
|
|
|
+ 21594; bugfix on 0.2.3.9-alpha. Reported by Alec Muffett.
|
|
|
+ - Stop ignoring misconfigured hidden services. Instead, refuse to
|
|
|
+ start tor until the misconfigurations have been corrected. Fixes
|
|
|
+ bug 20559; bugfix on multiple commits in 0.2.7.1-alpha
|
|
|
+ and earlier.
|
|
|
+
|
|
|
+ o Minor bugfixes (IPv6):
|
|
|
+ - Make IPv6-using clients try harder to find an IPv6 directory
|
|
|
+ server. Fixes bug 20999; bugfix on 0.2.8.2-alpha.
|
|
|
+ - When IPv6 addresses have not been downloaded yet (microdesc
|
|
|
+ consensus documents don't list relay IPv6 addresses), use hard-
|
|
|
+ coded addresses for authorities, fallbacks, and configured
|
|
|
+ bridges. Now IPv6-only clients can use microdescriptors. Fixes bug
|
|
|
+ 20996; bugfix on b167e82 from 19608 in 0.2.8.5-alpha.
|
|
|
+
|
|
|
+ o Minor bugfixes (memory leak at exit):
|
|
|
+ - Fix a small harmless memory leak at exit of the previously unused
|
|
|
+ RSA->Ed identity cross-certificate. Fixes bug 17779; bugfix
|
|
|
+ on 0.2.7.2-alpha.
|
|
|
+
|
|
|
+ o Minor bugfixes (onion services):
|
|
|
+ - Allow the number of introduction points to be as low as 0, rather
|
|
|
+ than as low as 3. Fixes bug 21033; bugfix on 0.2.7.2-alpha.
|
|
|
+
|
|
|
+ o Minor bugfixes (portability):
|
|
|
+ - Use "OpenBSD" compiler macro instead of "OPENBSD" or "__OpenBSD__".
|
|
|
+ It is supported by OpenBSD itself, and also by most OpenBSD
|
|
|
+ variants (such as Bitrig). Fixes bug 20980; bugfix
|
|
|
+ on 0.1.2.1-alpha.
|
|
|
+
|
|
|
+ o Minor bugfixes (portability, also in 0.2.9.9):
|
|
|
+ - Avoid crashing when Tor is built using headers that contain
|
|
|
+ CLOCK_MONOTONIC_COARSE, but then tries to run on an older kernel
|
|
|
+ without CLOCK_MONOTONIC_COARSE. Fixes bug 21035; bugfix
|
|
|
+ on 0.2.9.1-alpha.
|
|
|
+ - Fix Libevent detection on platforms without Libevent 1 headers
|
|
|
+ installed. Fixes bug 21051; bugfix on 0.2.9.1-alpha.
|
|
|
+
|
|
|
+ o Minor bugfixes (relay):
|
|
|
+ - Avoid a double-marked-circuit warning that could happen when we
|
|
|
+ receive DESTROY cells under heavy load. Fixes bug 20059; bugfix
|
|
|
+ on 0.1.0.1-rc.
|
|
|
+ - Honor DataDirectoryGroupReadable when tor is a relay. Previously,
|
|
|
+ initializing the keys would reset the DataDirectory to 0700
|
|
|
+ instead of 0750 even if DataDirectoryGroupReadable was set to 1.
|
|
|
+ Fixes bug 19953; bugfix on 0.0.2pre16. Patch by "redfish".
|
|
|
+
|
|
|
+ o Minor bugfixes (testing):
|
|
|
+ - Fix Raspbian build issues related to missing socket errno in
|
|
|
+ test_util.c. Fixes bug 21116; bugfix on 0.2.8.2. Patch by "hein".
|
|
|
+ - Remove undefined behavior from the backtrace generator by removing
|
|
|
+ its signal handler. Fixes bug 21026; bugfix on 0.2.5.2-alpha.
|
|
|
+ - Use bash in src/test/test-network.sh. This ensures we reliably
|
|
|
+ call chutney's newer tools/test-network.sh when available. Fixes
|
|
|
+ bug 21562; bugfix on 0.2.9.1-alpha.
|
|
|
+
|
|
|
+ o Minor bugfixes (tor-resolve):
|
|
|
+ - The tor-resolve command line tool now rejects hostnames over 255
|
|
|
+ characters in length. Previously, it would silently truncate them,
|
|
|
+ which could lead to bugs. Fixes bug 21280; bugfix on 0.0.9pre5.
|
|
|
+ Patch by "junglefowl".
|
|
|
+
|
|
|
+ o Minor bugfixes (unit tests):
|
|
|
+ - Allow the unit tests to pass even when DNS lookups of bogus
|
|
|
+ addresses do not fail as expected. Fixes bug 20862 and 20863;
|
|
|
+ bugfix on unit tests introduced in 0.2.8.1-alpha
|
|
|
+ through 0.2.9.4-alpha.
|
|
|
+
|
|
|
+ o Minor bugfixes (util):
|
|
|
+ - When finishing writing a file to disk, if we were about to replace
|
|
|
+ the file with the temporary file created before and we fail to
|
|
|
+ replace it, remove the temporary file so it doesn't stay on disk.
|
|
|
+ Fixes bug 20646; bugfix on 0.2.0.7-alpha. Patch by fk.
|
|
|
+
|
|
|
+ o Minor bugfixes (Windows services):
|
|
|
+ - Be sure to initialize the monotonic time subsystem before using
|
|
|
+ it, even when running as an NT service. Fixes bug 21356; bugfix
|
|
|
+ on 0.2.9.1-alpha.
|
|
|
+
|
|
|
+ o Minor bugfixes (Windows):
|
|
|
+ - Check for getpagesize before using it to mmap files. This fixes
|
|
|
+ compilation in some MinGW environments. Fixes bug 20530; bugfix on
|
|
|
+ 0.1.2.1-alpha. Reported by "ice".
|
|
|
+
|
|
|
+ o Code simplification and refactoring:
|
|
|
+ - Abolish all global guard context in entrynodes.c; replace with new
|
|
|
+ guard_selection_t structure as preparation for proposal 271.
|
|
|
+ Closes ticket 19858.
|
|
|
+ - Extract magic numbers in circuituse.c into defined variables.
|
|
|
+ - Introduce rend_service_is_ephemeral() that tells if given onion
|
|
|
+ service is ephemeral. Replace unclear NULL-checkings for service
|
|
|
+ directory with this function. Closes ticket 20526.
|
|
|
+ - Refactor circuit_is_available_for_use to remove unnecessary check.
|
|
|
+ - Refactor circuit_predict_and_launch_new for readability and
|
|
|
+ testability. Closes ticket 18873.
|
|
|
+ - Refactor code to manipulate global_origin_circuit_list into
|
|
|
+ separate functions. Closes ticket 20921.
|
|
|
+ - Refactor large if statement in purpose_needs_anonymity to use
|
|
|
+ switch statement instead. Closes part of ticket 20077.
|
|
|
+ - Refactor the hashing API to return negative values for errors, as
|
|
|
+ is done as throughout the codebase. Closes ticket 20717.
|
|
|
+ - Remove data structures that were used to index or_connection
|
|
|
+ objects by their RSA identity digests. These structures are fully
|
|
|
+ redundant with the similar structures used in the
|
|
|
+ channel abstraction.
|
|
|
+ - Remove duplicate code in the channel_write_*cell() functions.
|
|
|
+ Closes ticket 13827; patch from Pingl.
|
|
|
+ - Remove redundant behavior of is_sensitive_dir_purpose, refactor to
|
|
|
+ use only purpose_needs_anonymity. Closes part of ticket 20077.
|
|
|
+ - The code to generate and parse EXTEND and EXTEND2 cells has been
|
|
|
+ replaced with code automatically generated by the
|
|
|
+ "trunnel" utility.
|
|
|
+
|
|
|
+ o Documentation (formatting):
|
|
|
+ - Clean up formatting of tor.1 man page and HTML doc, where <pre>
|
|
|
+ blocks were incorrectly appearing. Closes ticket 20885.
|
|
|
+
|
|
|
+ o Documentation (man page):
|
|
|
+ - Clarify many options in tor.1 and add some min/max values for
|
|
|
+ HiddenService options. Closes ticket 21058.
|
|
|
+
|
|
|
+ o Documentation:
|
|
|
+ - Change '1' to 'weight_scale' in consensus bw weights calculation
|
|
|
+ comments, as that is reality. Closes ticket 20273. Patch
|
|
|
+ from pastly.
|
|
|
+ - Clarify that when ClientRejectInternalAddresses is enabled (which
|
|
|
+ is the default), multicast DNS hostnames for machines on the local
|
|
|
+ network (of the form *.local) are also rejected. Closes
|
|
|
+ ticket 17070.
|
|
|
+ - Correct the value for AuthDirGuardBWGuarantee in the manpage, from
|
|
|
+ 250 KBytes to 2 MBytes. Fixes bug 20435; bugfix on 0.2.5.6-alpha.
|
|
|
+ - Include the "TBits" unit in Tor's man page. Fixes part of bug
|
|
|
+ 20622; bugfix on 0.2.5.1-alpha.
|
|
|
+ - Small fixes to the fuzzing documentation. Closes ticket 21472.
|
|
|
+ - Stop the man page from incorrectly stating that HiddenServiceDir
|
|
|
+ must already exist. Fixes 20486.
|
|
|
+ - Update the description of the directory server options in the
|
|
|
+ manual page, to clarify that a relay no longer needs to set
|
|
|
+ DirPort in order to be a directory cache. Closes ticket 21720.
|
|
|
+
|
|
|
+ o Removed features:
|
|
|
+ - The AuthDirMaxServersPerAuthAddr option no longer exists: The same
|
|
|
+ limit for relays running on a single IP applies to authority IP
|
|
|
+ addresses as well as to non-authority IP addresses. Closes
|
|
|
+ ticket 20960.
|
|
|
+ - The UseDirectoryGuards torrc option no longer exists: all users
|
|
|
+ that use entry guards will also use directory guards. Related to
|
|
|
+ proposal 271; implements part of ticket 20831.
|
|
|
+
|
|
|
+ o Testing:
|
|
|
+ - Add tests for networkstatus_compute_bw_weights_v10.
|
|
|
+ - Add unit tests circuit_predict_and_launch_new.
|
|
|
+ - Extract dummy_origin_circuit_new so it can be used by other
|
|
|
+ test functions.
|
|
|
+ - New unit tests for tor_htonll(). Closes ticket 19563. Patch
|
|
|
+ from "overcaffeinated".
|
|
|
+ - Perform the coding style checks when running the tests and fail
|
|
|
+ when coding style violations are found. Closes ticket 5500.
|
|
|
+
|
|
|
+
|
|
|
Changes in version 0.2.8.13 - 2017-03-03
|
|
|
Tor 0.2.8.13 backports a security fix from later Tor
|
|
|
releases. Anybody running Tor 0.2.8.12 or earlier should upgrade to this
|