mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-06 19:41:15 +01:00
Write a releasenotes file for 0.3.5.7
This commit is contained in:
@@ -19,7 +19,7 @@ Changes in version 0.3.5.7 - 2019-01-07
|
||||
changed; if you use stem, you may need to update to the latest version
|
||||
so it will recognize them.
|
||||
|
||||
We have designated 0.3.5 as a "long-term support" (LTS) series: We
|
||||
We have designated 0.3.5 as a "long-term support" (LTS) series: we
|
||||
will continue to patch major bugs in typical configurations of 0.3.5
|
||||
until at least 1 Feb 2022. (We do not plan to provide long-term
|
||||
support for embedding, Rust support, NSS support, running a directory
|
||||
|
||||
+726
@@ -2,6 +2,732 @@ This document summarizes new features and bugfixes in each stable
|
||||
release 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.5.7 - 2019-01-07
|
||||
Tor 0.3.5.7 is the first stable release in its series; it includes
|
||||
compilation and portability fixes, and a fix for a severe problem
|
||||
affecting directory caches.
|
||||
|
||||
The Tor 0.3.5 series includes several new features and performance
|
||||
improvements, including client authorization for v3 onion services,
|
||||
cleanups to bootstrap reporting, support for improved bandwidth-
|
||||
measurement tools, experimental support for NSS in place of OpenSSL,
|
||||
and much more. It also begins a full reorganization of Tor's code
|
||||
layout, for improved modularity and maintainability in the future.
|
||||
Finally, there is the usual set of performance improvements and
|
||||
bugfixes that we try to do in every release series.
|
||||
|
||||
There are a couple of changes in the 0.3.5 that may affect
|
||||
compatibility. First, the default version for newly created onion
|
||||
services is now v3. Use the HiddenServiceVersion option if you want to
|
||||
override this. Second, some log messages related to bootstrapping have
|
||||
changed; if you use stem, you may need to update to the latest version
|
||||
so it will recognize them.
|
||||
|
||||
We have designated 0.3.5 as a "long-term support" (LTS) series: we
|
||||
will continue to patch major bugs in typical configurations of 0.3.5
|
||||
until at least 1 Feb 2022. (We do not plan to provide long-term
|
||||
support for embedding, Rust support, NSS support, running a directory
|
||||
authority, or unsupported platforms. For these, you will need to stick
|
||||
with the latest stable release.)
|
||||
|
||||
Below are the changes since 0.3.4.9. For a complete list of changes
|
||||
since 0.3.5.6-rc, see the ChangeLog file.
|
||||
|
||||
o Major features (bootstrap):
|
||||
- Don't report directory progress until after a connection to a
|
||||
relay or bridge has succeeded. Previously, we'd report 80%
|
||||
progress based on cached directory information when we couldn't
|
||||
even connect to the network. Closes ticket 27169.
|
||||
|
||||
o Major features (new code layout):
|
||||
- Nearly all of Tor's source code has been moved around into more
|
||||
logical places. The "common" directory is now divided into a set
|
||||
of libraries in "lib", and files in the "or" directory have been
|
||||
split into "core" (logic absolutely needed for onion routing),
|
||||
"feature" (independent modules in Tor), and "app" (to configure
|
||||
and invoke the rest of Tor). See doc/HACKING/CodeStructure.md for
|
||||
more information. Closes ticket 26481.
|
||||
|
||||
This refactoring is not complete: although the libraries have been
|
||||
refactored to be acyclic, the main body of Tor is still too
|
||||
interconnected. We will attempt to improve this in the future.
|
||||
|
||||
o Major features (onion services v3):
|
||||
- Implement onion service client authorization at the descriptor
|
||||
level: only authorized clients can decrypt a service's descriptor
|
||||
to find out how to contact it. A new torrc option was added to
|
||||
control this client side: ClientOnionAuthDir <path>. On the
|
||||
service side, if the "authorized_clients/" directory exists in the
|
||||
onion service directory path, client configurations are read from
|
||||
the files within. See the manpage for more details. Closes ticket
|
||||
27547. Patch done by Suphanat Chunhapanya (haxxpop).
|
||||
- Improve revision counter generation in next-gen onion services.
|
||||
Onion services can now scale by hosting multiple instances on
|
||||
different hosts without synchronization between them, which was
|
||||
previously impossible because descriptors would get rejected by
|
||||
HSDirs. Addresses ticket 25552.
|
||||
- Version 3 onion services can now use the per-service
|
||||
HiddenServiceExportCircuitID option to differentiate client
|
||||
circuits. It communicates with the service by using the HAProxy
|
||||
protocol to assign virtual IP addresses to inbound client
|
||||
circuits. Closes ticket 4700. Patch by Mahrud Sayrafi.
|
||||
|
||||
o Major features (onion services, UI change):
|
||||
- For a newly created onion service, the default version is now 3.
|
||||
Tor still supports existing version 2 services, but the operator
|
||||
now needs to set "HiddenServiceVersion 2" in order to create a new
|
||||
version 2 service. For existing services, Tor now learns the
|
||||
version by reading the key file. Closes ticket 27215.
|
||||
|
||||
o Major features (portability, cryptography, experimental, TLS):
|
||||
- Tor now has the option to compile with the NSS library instead of
|
||||
OpenSSL. This feature is experimental, and we expect that bugs may
|
||||
remain. It is mainly intended for environments where Tor's
|
||||
performance is not CPU-bound, and where NSS is already known to be
|
||||
installed. To try it out, configure Tor with the --enable-nss
|
||||
flag. Closes tickets 26631, 26815, and 26816.
|
||||
|
||||
If you are experimenting with this option and using an old cached
|
||||
consensus, Tor may fail to start. To solve this, delete your
|
||||
"cached-consensus" and "cached-microdesc-consensus" files,
|
||||
(if present), and restart Tor.
|
||||
|
||||
o Major features (relay, UI change):
|
||||
- Relays no longer run as exits by default. If the "ExitRelay"
|
||||
option is auto (or unset), and no exit policy is specified with
|
||||
ExitPolicy or ReducedExitPolicy, we now treat ExitRelay as 0.
|
||||
Previously in this case, we allowed exit traffic and logged a
|
||||
warning message. Closes ticket 21530. Patch by Neel Chauhan.
|
||||
- Tor now validates that the ContactInfo config option is valid UTF-
|
||||
8 when parsing torrc. Closes ticket 27428.
|
||||
|
||||
o Major bugfixes (compilation):
|
||||
- Fix compilation on ARM (and other less-used CPUs) when compiling
|
||||
with OpenSSL before 1.1. Fixes bug 27781; bugfix on 0.3.4.1-alpha.
|
||||
|
||||
o Major bugfixes (compilation, rust):
|
||||
- Rust tests can now build and run successfully with the
|
||||
--enable-fragile-hardening option enabled. Doing this currently
|
||||
requires the rust beta channel; it will be possible with stable
|
||||
rust once Rust version 1.31 is released. Patch from Alex Crichton.
|
||||
Fixes bugs 27272, 27273, and 27274. Bugfix on 0.3.1.1-alpha.
|
||||
|
||||
o Major bugfixes (directory authority):
|
||||
- Actually check that the address we get from DirAuthority
|
||||
configuration line is valid IPv4. Explicitly disallow DirAuthority
|
||||
address to be a DNS hostname. Fixes bug 26488; bugfix
|
||||
on 0.1.2.10-rc.
|
||||
|
||||
o Major bugfixes (embedding, main loop):
|
||||
- When DisableNetwork becomes set, actually disable periodic events
|
||||
that are already enabled. (Previously, we would refrain from
|
||||
enabling new ones, but we would leave the old ones turned on.)
|
||||
Fixes bug 28348; bugfix on 0.3.4.1-alpha.
|
||||
|
||||
o Major bugfixes (main loop, bootstrap):
|
||||
- Make sure Tor bootstraps and works properly if only the
|
||||
ControlPort is set. Prior to this fix, Tor would only bootstrap
|
||||
when a client port was set (Socks, Trans, NATD, DNS or HTTPTunnel
|
||||
port). Fixes bug 27849; bugfix on 0.3.4.1-alpha.
|
||||
|
||||
o Major bugfixes (OpenSSL, portability):
|
||||
- Fix our usage of named groups when running as a TLS 1.3 client in
|
||||
OpenSSL 1.1.1. Previously, we only initialized EC groups when
|
||||
running as a relay, which caused clients to fail to negotiate TLS
|
||||
1.3 with relays. Fixes bug 28245; bugfix on 0.2.9.15 (when TLS 1.3
|
||||
support was added).
|
||||
|
||||
o Major bugfixes (relay bandwidth statistics):
|
||||
- When we close relayed circuits, report the data in the circuit
|
||||
queues as being written in our relay bandwidth stats. This
|
||||
mitigates guard discovery and other attacks that close circuits
|
||||
for the explicit purpose of noticing this discrepancy in
|
||||
statistics. Fixes bug 23512; bugfix on 0.0.8pre3.
|
||||
|
||||
o Major bugfixes (relay):
|
||||
- When our write bandwidth limit is exhausted, stop writing on the
|
||||
connection. Previously, we had a typo in the code that would make
|
||||
us stop reading instead, leading to relay connections being stuck
|
||||
indefinitely and consuming kernel RAM. Fixes bug 28089; bugfix
|
||||
on 0.3.4.1-alpha.
|
||||
- Always reactivate linked connections in the main loop so long as
|
||||
any linked connection has been active. Previously, connections
|
||||
serving directory information wouldn't get reactivated after the
|
||||
first chunk of data was sent (usually 32KB), which would prevent
|
||||
clients from bootstrapping. Fixes bug 28912; bugfix on
|
||||
0.3.4.1-alpha. Patch by "cypherpunks3".
|
||||
|
||||
o Major bugfixes (restart-in-process):
|
||||
- Fix a use-after-free error that could be caused by passing Tor an
|
||||
impossible set of options that would fail during options_act().
|
||||
Fixes bug 27708; bugfix on 0.3.3.1-alpha.
|
||||
|
||||
o Minor features (admin tools):
|
||||
- Add a new --key-expiration option to print the expiration date of
|
||||
the signing cert in an ed25519_signing_cert file. Resolves
|
||||
issue 19506.
|
||||
|
||||
o Minor features (build):
|
||||
- If you pass the "--enable-pic" option to configure, Tor will try
|
||||
to tell the compiler to build position-independent code suitable
|
||||
to link into a dynamic library. (The default remains -fPIE, for
|
||||
code suitable for a relocatable executable.) Closes ticket 23846.
|
||||
|
||||
o Minor features (code correctness, testing):
|
||||
- Tor's build process now includes a "check-includes" make target to
|
||||
verify that no module of Tor relies on any headers from a higher-
|
||||
level module. We hope to use this feature over time to help
|
||||
refactor our codebase. Closes ticket 26447.
|
||||
|
||||
o Minor features (code layout):
|
||||
- We have a new "lowest-level" error-handling API for use by code
|
||||
invoked from within the logging module. With this interface, the
|
||||
logging code is no longer at risk of calling into itself if a
|
||||
failure occurs while it is trying to log something. Closes
|
||||
ticket 26427.
|
||||
|
||||
o Minor features (compilation):
|
||||
- When possible, place our warning flags in a separate file, to
|
||||
avoid flooding verbose build logs. Closes ticket 28924.
|
||||
- Tor's configure script now supports a --with-malloc= option to
|
||||
select your malloc implementation. Supported options are
|
||||
"tcmalloc", "jemalloc", "openbsd" (deprecated), and "system" (the
|
||||
default). Addresses part of ticket 20424. Based on a patch from
|
||||
Alex Xu.
|
||||
|
||||
o Minor features (config):
|
||||
- The "auto" keyword in torrc is now case-insensitive. Closes
|
||||
ticket 26663.
|
||||
|
||||
o Minor features (continuous integration):
|
||||
- Add a Travis CI build for --enable-nss on Linux gcc. Closes
|
||||
ticket 27751.
|
||||
- Add new CI job to Travis configuration to run stem-based
|
||||
integration tests. Closes ticket 27913.
|
||||
- Use the Travis Homebrew addon to install packages on macOS during
|
||||
Travis CI. The package list is the same, but the Homebrew addon
|
||||
does not do a `brew update` by default. Implements ticket 27738.
|
||||
- Report what program produced the mysterious core file that we
|
||||
occasionally see on Travis CI during make distcheck. Closes
|
||||
ticket 28024.
|
||||
- Don't do a distcheck with --disable-module-dirauth in Travis.
|
||||
Implements ticket 27252.
|
||||
- Install libcap-dev and libseccomp2-dev so these optional
|
||||
dependencies get tested on Travis CI. Closes ticket 26560.
|
||||
- Only run one online rust build in Travis, to reduce network
|
||||
errors. Skip offline rust builds on Travis for Linux gcc, because
|
||||
they're redundant. Implements ticket 27252.
|
||||
- Skip gcc on OSX in Travis CI, because it's rarely used. Skip a
|
||||
duplicate hardening-off build in Travis on Tor 0.2.9. Skip gcc on
|
||||
Linux with default settings, because all the non-default builds
|
||||
use gcc on Linux. Implements ticket 27252.
|
||||
|
||||
o Minor features (continuous integration, Windows):
|
||||
- Always show the configure and test logs, and upload them as build
|
||||
artifacts, when building for Windows using Appveyor CI.
|
||||
Implements 28459.
|
||||
- Build tor on Windows Server 2012 R2 and Windows Server 2016 using
|
||||
Appveyor's CI. Closes ticket 28318.
|
||||
|
||||
o Minor features (controller):
|
||||
- Emit CIRC_BW events as soon as we detect that we processed an
|
||||
invalid or otherwise dropped cell on a circuit. This allows
|
||||
vanguards and other controllers to react more quickly to dropped
|
||||
cells. Closes ticket 27678.
|
||||
- For purposes of CIRC_BW-based dropped cell detection, track half-
|
||||
closed stream ids, and allow their ENDs, SENDMEs, DATA and path
|
||||
bias check cells to arrive without counting it as dropped until
|
||||
either the END arrives, or the windows are empty. Closes
|
||||
ticket 25573.
|
||||
- Implement a 'GETINFO md/all' controller command to enable getting
|
||||
all known microdescriptors. Closes ticket 8323.
|
||||
- The GETINFO command now support an "uptime" argument, to return
|
||||
Tor's uptime in seconds. Closes ticket 25132.
|
||||
|
||||
o Minor features (denial-of-service avoidance):
|
||||
- Make our OOM handler aware of the DNS cache so that it doesn't
|
||||
fill up the memory. This check is important for our DoS mitigation
|
||||
subsystem. Closes ticket 18642. Patch by Neel Chauhan.
|
||||
|
||||
o Minor features (development):
|
||||
- Tor's makefile now supports running the "clippy" Rust style tool
|
||||
on our Rust code. Closes ticket 22156.
|
||||
|
||||
o Minor features (directory authority):
|
||||
- There is no longer an artificial upper limit on the length of
|
||||
bandwidth lines. Closes ticket 26223.
|
||||
- When a bandwidth file is used to obtain the bandwidth measurements,
|
||||
include this bandwidth file headers in the votes. Closes
|
||||
ticket 3723.
|
||||
- Improved support for networks with only a single authority or a
|
||||
single fallback directory. Patch from Gabriel Somlo. Closes
|
||||
ticket 25928.
|
||||
|
||||
o Minor features (embedding API):
|
||||
- The Tor controller API now supports a function to launch Tor with
|
||||
a preconstructed owning controller FD, so that embedding
|
||||
applications don't need to manage controller ports and
|
||||
authentication. Closes ticket 24204.
|
||||
- The Tor controller API now has a function that returns the name
|
||||
and version of the backend implementing the API. Closes
|
||||
ticket 26947.
|
||||
|
||||
o Minor features (fallback directory list):
|
||||
- Replace the 150 fallbacks originally introduced in Tor
|
||||
0.3.3.1-alpha in January 2018 (of which ~115 were still
|
||||
functional), with a list of 157 fallbacks (92 new, 65 existing, 85
|
||||
removed) generated in December 2018. Closes ticket 24803.
|
||||
|
||||
o Minor features (geoip):
|
||||
- Update geoip and geoip6 to the January 3 2019 Maxmind GeoLite2
|
||||
Country database. Closes ticket 29012.
|
||||
|
||||
o Minor features (memory management):
|
||||
- Get Libevent to use the same memory allocator as Tor, by calling
|
||||
event_set_mem_functions() during initialization. Resolves
|
||||
ticket 8415.
|
||||
|
||||
o Minor features (memory usage):
|
||||
- When not using them, store legacy TAP public onion keys in DER-
|
||||
encoded format, rather than as expanded public keys. This should
|
||||
save several megabytes on typical clients. Closes ticket 27246.
|
||||
|
||||
o Minor features (OpenSSL bug workaround):
|
||||
- Work around a bug in OpenSSL 1.1.1a, which prevented the TLS 1.3
|
||||
key export function from handling long labels. When this bug is
|
||||
detected, Tor will disable TLS 1.3. We recommend upgrading to a
|
||||
version of OpenSSL without this bug when it becomes available.
|
||||
Closes ticket 28973.
|
||||
|
||||
o Minor features (OpenSSL):
|
||||
- When possible, use RFC5869 HKDF implementation from OpenSSL rather
|
||||
than our own. Resolves ticket 19979.
|
||||
|
||||
o Minor features (performance):
|
||||
- Remove about 96% of the work from the function that we run at
|
||||
startup to test our curve25519_basepoint implementation. Since
|
||||
this function has yet to find an actual failure, we now only run
|
||||
it for 8 iterations instead of 200. Based on our profile
|
||||
information, this change should save around 8% of our startup time
|
||||
on typical desktops, and may have a similar effect on other
|
||||
platforms. Closes ticket 28838.
|
||||
- Stop re-validating our hardcoded Diffie-Hellman parameters on
|
||||
every startup. Doing this wasted time and cycles, especially on
|
||||
low-powered devices. Closes ticket 28851.
|
||||
|
||||
o Minor features (Rust, code quality):
|
||||
- Improve rust code quality in the rust protover implementation by
|
||||
making it more idiomatic. Includes changing an internal API to
|
||||
take &str instead of &String. Closes ticket 26492.
|
||||
|
||||
o Minor features (testing):
|
||||
- Add scripts/test/chutney-git-bisect.sh, for bisecting using
|
||||
chutney. Implements ticket 27211.
|
||||
|
||||
o Minor features (tor-resolve):
|
||||
- The tor-resolve utility can now be used with IPv6 SOCKS proxies.
|
||||
Side-effect of the refactoring for ticket 26526.
|
||||
|
||||
o Minor features (UI):
|
||||
- Log each included configuration file or directory as we read it,
|
||||
to provide more visibility about where Tor is reading from. Patch
|
||||
from Unto Sten; closes ticket 27186.
|
||||
- Lower log level of "Scheduler type KIST has been enabled" to INFO.
|
||||
Closes ticket 26703.
|
||||
|
||||
o Minor bugfixes (32-bit OSX and iOS, timing):
|
||||
- Fix an integer overflow bug in our optimized 32-bit millisecond-
|
||||
difference algorithm for 32-bit Apple platforms. Previously, it
|
||||
would overflow when calculating the difference between two times
|
||||
more than 47 days apart. Fixes part of bug 27139; bugfix
|
||||
on 0.3.4.1-alpha.
|
||||
- Improve the precision of our 32-bit millisecond difference
|
||||
algorithm for 32-bit Apple platforms. Fixes part of bug 27139;
|
||||
bugfix on 0.3.4.1-alpha.
|
||||
- Relax the tolerance on the mainloop/update_time_jumps test when
|
||||
running on 32-bit Apple platforms. Fixes part of bug 27139; bugfix
|
||||
on 0.3.4.1-alpha.
|
||||
|
||||
o Minor bugfixes (bootstrap):
|
||||
- Try harder to get descriptors in non-exit test networks, by using
|
||||
the mid weight for the third hop when there are no exits. Fixes
|
||||
bug 27237; bugfix on 0.2.6.2-alpha.
|
||||
|
||||
o Minor bugfixes (C correctness):
|
||||
- Avoid casting smartlist index to int implicitly, as it may trigger
|
||||
a warning (-Wshorten-64-to-32). Fixes bug 26282; bugfix on
|
||||
0.2.3.13-alpha, 0.2.7.1-alpha and 0.2.1.1-alpha.
|
||||
- Use time_t for all values in
|
||||
predicted_ports_prediction_time_remaining(). Rework the code that
|
||||
computes difference between durations/timestamps. Fixes bug 27165;
|
||||
bugfix on 0.3.1.1-alpha.
|
||||
|
||||
o Minor bugfixes (client, memory usage):
|
||||
- When not running as a directory cache, there is no need to store
|
||||
the text of the current consensus networkstatus in RAM.
|
||||
Previously, however, clients would store it anyway, at a cost of
|
||||
over 5 MB. Now, they do not. Fixes bug 27247; bugfix
|
||||
on 0.3.0.1-alpha.
|
||||
|
||||
o Minor bugfixes (client, ReachableAddresses):
|
||||
- Instead of adding a "reject *:*" line to ReachableAddresses when
|
||||
loading the configuration, add one to the policy after parsing it
|
||||
in parse_reachable_addresses(). This prevents extra "reject *.*"
|
||||
lines from accumulating on reloads. Fixes bug 20874; bugfix on
|
||||
0.1.1.5-alpha. Patch by Neel Chauhan.
|
||||
|
||||
o Minor bugfixes (code quality):
|
||||
- Rename sandbox_getaddrinfo() and other functions to no longer
|
||||
misleadingly suggest that they are sandbox-only. Fixes bug 26525;
|
||||
bugfix on 0.2.7.1-alpha.
|
||||
|
||||
o Minor bugfixes (code safety):
|
||||
- Rewrite our assertion macros so that they no longer suppress the
|
||||
compiler's -Wparentheses warnings. Fixes bug 27709; bugfix
|
||||
on 0.0.6.
|
||||
|
||||
o Minor bugfixes (compilation):
|
||||
- Initialize a variable unconditionally in aes_new_cipher(), since
|
||||
some compilers cannot tell that we always initialize it before
|
||||
use. Fixes bug 28413; bugfix on 0.2.9.3-alpha.
|
||||
|
||||
o Minor bugfixes (configuration):
|
||||
- Refuse to start with relative file paths and RunAsDaemon set
|
||||
(regression from the fix for bug 22731). Fixes bug 28298; bugfix
|
||||
on 0.3.3.1-alpha.
|
||||
|
||||
o Minor bugfixes (configuration, Onion Services):
|
||||
- In rend_service_parse_port_config(), disallow any input to remain
|
||||
after address-port pair was parsed. This will catch address and
|
||||
port being whitespace-separated by mistake of the user. Fixes bug
|
||||
27044; bugfix on 0.2.9.10.
|
||||
|
||||
o Minor bugfixes (connection, relay):
|
||||
- Avoid a logging a BUG() stacktrace when closing connection held
|
||||
open because the write side is rate limited but not the read side.
|
||||
Now, the connection read side is simply shut down until Tor is
|
||||
able to flush the connection and close it. Fixes bug 27750; bugfix
|
||||
on 0.3.4.1-alpha.
|
||||
|
||||
o Minor bugfixes (continuous integration, Windows):
|
||||
- Stop reinstalling identical packages in our Windows CI. Fixes bug
|
||||
27464; bugfix on 0.3.4.1-alpha.
|
||||
- Install only the necessary mingw packages during our appveyor
|
||||
builds. This change makes the build a little faster, and prevents
|
||||
a conflict with a preinstalled mingw openssl that appveyor now
|
||||
ships. Fixes bugs 27765 and 27943; bugfix on 0.3.4.2-alpha.
|
||||
- Explicitly specify the path to the OpenSSL library and do not
|
||||
download OpenSSL from Pacman, but instead use the library that is
|
||||
already provided by AppVeyor. Fixes bug 28574; bugfix on master.
|
||||
- Manually configure the zstd compiler options, when building using
|
||||
mingw on Appveyor Windows CI. The MSYS2 mingw zstd package does
|
||||
not come with a pkg-config file. Fixes bug 28454; bugfix
|
||||
on 0.3.4.1-alpha.
|
||||
- Stop using an external OpenSSL install, and stop installing MSYS2
|
||||
packages, when building using mingw on Appveyor Windows CI. Fixes
|
||||
bug 28399; bugfix on 0.3.4.1-alpha.
|
||||
|
||||
o Minor bugfixes (controller):
|
||||
- Consider all routerinfo errors other than "not a server" to be
|
||||
transient for the purpose of "GETINFO exit-policy/*" controller
|
||||
request. Print stacktrace in the unlikely case of failing to
|
||||
recompute routerinfo digest. Fixes bug 27034; bugfix
|
||||
on 0.3.4.1-alpha.
|
||||
|
||||
o Minor bugfixes (correctness):
|
||||
- Fix an unreached code path where we checked the value of
|
||||
"hostname" inside send_resolved_hostname_cell(). Previously, we
|
||||
used it before checking it; now we check it first. Fixes bug
|
||||
28879; bugfix on 0.1.2.7-alpha.
|
||||
|
||||
o Minor bugfixes (directory connection shutdown):
|
||||
- Avoid a double-close when shutting down a stalled directory
|
||||
connection. Fixes bug 26896; bugfix on 0.3.4.1-alpha.
|
||||
|
||||
o Minor bugfixes (directory permissions):
|
||||
- When a user requests a group-readable DataDirectory, give it to
|
||||
them. Previously, when the DataDirectory and the CacheDirectory
|
||||
were the same, the default setting (0) for
|
||||
CacheDirectoryGroupReadable would override the setting for
|
||||
DataDirectoryGroupReadable. Fixes bug 26913; bugfix
|
||||
on 0.3.3.1-alpha.
|
||||
|
||||
o Minor bugfixes (HTTP tunnel):
|
||||
- Fix a bug warning when closing an HTTP tunnel connection due to an
|
||||
HTTP request we couldn't handle. Fixes bug 26470; bugfix
|
||||
on 0.3.2.1-alpha.
|
||||
|
||||
o Minor bugfixes (ipv6):
|
||||
- In addrs_in_same_network_family(), we choose the subnet size based
|
||||
on the IP version (IPv4 or IPv6). Previously, we chose a fixed
|
||||
subnet size of /16 for both IPv4 and IPv6 addresses. Fixes bug
|
||||
15518; bugfix on 0.2.3.1-alpha. Patch by Neel Chauhan.
|
||||
|
||||
o Minor bugfixes (Linux seccomp2 sandbox):
|
||||
- Permit the "shutdown()" system call, which is apparently used by
|
||||
OpenSSL under some circumstances. Fixes bug 28183; bugfix
|
||||
on 0.2.5.1-alpha.
|
||||
|
||||
o Minor bugfixes (logging):
|
||||
- Stop talking about the Named flag in log messages. Clients have
|
||||
ignored the Named flag since 0.3.2. Fixes bug 28441; bugfix
|
||||
on 0.3.2.1-alpha.
|
||||
- As a precaution, do an early return from log_addr_has_changed() if
|
||||
Tor is running as client. Also, log a stack trace for debugging as
|
||||
this function should only be called when Tor runs as server. Fixes
|
||||
bug 26892; bugfix on 0.1.1.9-alpha.
|
||||
- Refrain from mentioning bug 21018 in the logs, as it is already
|
||||
fixed. Fixes bug 25477; bugfix on 0.2.9.8.
|
||||
|
||||
o Minor bugfixes (logging, documentation):
|
||||
- When SafeLogging is enabled, scrub IP address in
|
||||
channel_tls_process_netinfo_cell(). Also, add a note to manpage
|
||||
that scrubbing is not guaranteed on loglevels below Notice. Fixes
|
||||
bug 26882; bugfix on 0.2.4.10-alpha.
|
||||
|
||||
o Minor bugfixes (memory leaks):
|
||||
- Fix a harmless memory leak in libtorrunner.a. Fixes bug 28419;
|
||||
bugfix on 0.3.3.1-alpha. Patch from Martin Kepplinger.
|
||||
- Fix a small memory leak when calling Tor with --dump-config. Fixes
|
||||
bug 27893; bugfix on 0.3.2.1-alpha.
|
||||
|
||||
o Minor bugfixes (netflow padding):
|
||||
- Ensure circuitmux queues are empty before scheduling or sending
|
||||
padding. Fixes bug 25505; bugfix on 0.3.1.1-alpha.
|
||||
|
||||
o Minor bugfixes (onion service v2):
|
||||
- Log at level "info", not "warning", in the case that we do not
|
||||
have a consensus when a .onion request comes in. This can happen
|
||||
normally while bootstrapping. Fixes bug 27040; bugfix
|
||||
on 0.2.8.2-alpha.
|
||||
|
||||
o Minor bugfixes (onion service v3):
|
||||
- When deleting an ephemeral onion service (DEL_ONION), do not close
|
||||
any rendezvous circuits in order to let the existing client
|
||||
connections finish by themselves or closed by the application. The
|
||||
HS v2 is doing that already so now we have the same behavior for
|
||||
all versions. Fixes bug 28619; bugfix on 0.3.3.1-alpha.
|
||||
- Build the service descriptor's signing key certificate before
|
||||
uploading, so we always have a fresh one: leaving no chances for
|
||||
it to expire service side. Fixes bug 27838; bugfix
|
||||
on 0.3.2.1-alpha.
|
||||
- Stop dumping a stack trace when trying to connect to an intro
|
||||
point without having a descriptor for it. Fixes bug 27774; bugfix
|
||||
on 0.3.2.1-alpha.
|
||||
- When selecting a v3 rendezvous point, don't only look at the
|
||||
protover, but also check whether the curve25519 onion key is
|
||||
present. This way we avoid picking a relay that supports the v3
|
||||
rendezvous but for which we don't have the microdescriptor. Fixes
|
||||
bug 27797; bugfix on 0.3.2.1-alpha.
|
||||
- Close all SOCKS request (for the same .onion) if the newly fetched
|
||||
descriptor is unusable. Before that, we would close only the first
|
||||
one leaving the other hanging and let to time out by themselves.
|
||||
Fixes bug 27410; bugfix on 0.3.2.1-alpha.
|
||||
- When the onion service directory can't be created or has the wrong
|
||||
permissions, do not log a stack trace. Fixes bug 27335; bugfix
|
||||
on 0.3.2.1-alpha.
|
||||
- On an intro point for a version 3 onion service, stop closing
|
||||
introduction circuits on an NACK. This lets the client decide
|
||||
whether to reuse the circuit or discard it. Previously, we closed
|
||||
intro circuits when sending NACKs. Fixes bug 27841; bugfix on
|
||||
0.3.2.1-alpha. Patch by Neel Chaunan.
|
||||
- When replacing a descriptor in the client cache, make sure to
|
||||
close all client introduction circuits for the old descriptor, so
|
||||
we don't end up with unusable leftover circuits. Fixes bug 27471;
|
||||
bugfix on 0.3.2.1-alpha.
|
||||
|
||||
o Minor bugfixes (OS compatibility):
|
||||
- Properly handle configuration changes that move a listener to/from
|
||||
wildcard IP address. If the first attempt to bind a socket fails,
|
||||
close the old listener and try binding the socket again. Fixes bug
|
||||
17873; bugfix on 0.0.8pre-1.
|
||||
|
||||
o Minor bugfixes (performance)::
|
||||
- Rework node_is_a_configured_bridge() to no longer call
|
||||
node_get_all_orports(), which was performing too many memory
|
||||
allocations. Fixes bug 27224; bugfix on 0.2.3.9.
|
||||
|
||||
o Minor bugfixes (protover):
|
||||
- Reject protocol names containing bytes other than alphanumeric
|
||||
characters and hyphens ([A-Za-z0-9-]). Fixes bug 27316; bugfix
|
||||
on 0.2.9.4-alpha.
|
||||
|
||||
o Minor bugfixes (protover, rust):
|
||||
- Reject extra commas in version strings. Fixes bug 27197; bugfix
|
||||
on 0.3.3.3-alpha.
|
||||
- protover_all_supported() would attempt to allocate up to 16GB on
|
||||
some inputs, leading to a potential memory DoS. Fixes bug 27206;
|
||||
bugfix on 0.3.3.5-rc.
|
||||
- Compute protover votes correctly in the rust version of the
|
||||
protover code. Previously, the protover rewrite in 24031 allowed
|
||||
repeated votes from the same voter for the same protocol version
|
||||
to be counted multiple times in protover_compute_vote(). Fixes bug
|
||||
27649; bugfix on 0.3.3.5-rc.
|
||||
- Reject protover names that contain invalid characters. Fixes bug
|
||||
27687; bugfix on 0.3.3.1-alpha.
|
||||
|
||||
o Minor bugfixes (relay shutdown, systemd):
|
||||
- Notify systemd of ShutdownWaitLength so it can be set to longer
|
||||
than systemd's TimeoutStopSec. In Tor's systemd service file, set
|
||||
TimeoutSec to 60 seconds to allow Tor some time to shut down.
|
||||
Fixes bug 28113; bugfix on 0.2.6.2-alpha.
|
||||
|
||||
o Minor bugfixes (relay statistics):
|
||||
- Update relay descriptor on bandwidth changes only when the uptime
|
||||
is smaller than 24h, in order to reduce the efficiency of guard
|
||||
discovery attacks. Fixes bug 24104; bugfix on 0.1.1.6-alpha.
|
||||
|
||||
o Minor bugfixes (relay):
|
||||
- Consider the fact that we'll be making direct connections to our
|
||||
entry and guard nodes when computing the fraction of nodes that
|
||||
have their descriptors. Also, if we are using bridges and there is
|
||||
at least one bridge with a full descriptor, treat the fraction of
|
||||
guards available as 100%. Fixes bug 25886; bugfix on 0.2.4.10-alpha.
|
||||
Patch by Neel Chauhan.
|
||||
- Update the message logged on relays when DirCache is disabled.
|
||||
Since 0.3.3.5-rc, authorities require DirCache (V2Dir) for the
|
||||
Guard flag. Fixes bug 24312; bugfix on 0.3.3.5-rc.
|
||||
|
||||
o Minor bugfixes (testing):
|
||||
- Stop running stem's unit tests as part of "make test-stem", but
|
||||
continue to run stem's unit and online tests during "make test-
|
||||
stem-full". Fixes bug 28568; bugfix on 0.2.6.3-alpha.
|
||||
- Stop leaking memory in an entry guard unit test. Fixes bug 28554;
|
||||
bugfix on 0.3.0.1-alpha.
|
||||
- Make the hs_service tests use the same time source when creating
|
||||
the introduction point and when testing it. Now tests work better
|
||||
on very slow systems like ARM or Travis. Fixes bug 27810; bugfix
|
||||
on 0.3.2.1-alpha.
|
||||
- Revise the "conditionvar_timeout" test so that it succeeds even on
|
||||
heavily loaded systems where the test threads are not scheduled
|
||||
within 200 msec. Fixes bug 27073; bugfix on 0.2.6.3-alpha.
|
||||
- Fix two unit tests to work when HOME environment variable is not
|
||||
set. Fixes bug 27096; bugfix on 0.2.8.1-alpha.
|
||||
- If a unit test running in a subprocess exits abnormally or with a
|
||||
nonzero status code, treat the test as having failed, even if the
|
||||
test reported success. Without this fix, memory leaks don't cause
|
||||
the tests to fail, even with LeakSanitizer. Fixes bug 27658;
|
||||
bugfix on 0.2.2.4-alpha.
|
||||
- When logging a version mismatch in our openssl_version tests,
|
||||
report the actual offending version strings. Fixes bug 26152;
|
||||
bugfix on 0.2.9.1-alpha.
|
||||
- Fix forking tests on Windows when there is a space somewhere in
|
||||
the path. Fixes bug 26437; bugfix on 0.2.2.4-alpha.
|
||||
|
||||
o Minor bugfixes (Windows):
|
||||
- Correctly identify Windows 8.1, Windows 10, and Windows Server
|
||||
2008 and later from their NT versions. Fixes bug 28096; bugfix on
|
||||
0.2.2.34; reported by Keifer Bly.
|
||||
- On recent Windows versions, the GetVersionEx() function may report
|
||||
an earlier Windows version than the running OS. To avoid user
|
||||
confusion, add "[or later]" to Tor's version string on affected
|
||||
versions of Windows. Fixes bug 28096; bugfix on 0.2.2.34; reported
|
||||
by Keifer Bly.
|
||||
- Remove Windows versions that were never supported by the
|
||||
GetVersionEx() function. Stop duplicating the latest Windows
|
||||
version in get_uname(). Fixes bug 28096; bugfix on 0.2.2.34;
|
||||
reported by Keifer Bly.
|
||||
|
||||
o Code simplification and refactoring:
|
||||
- When parsing a port configuration, make it more obvious to static
|
||||
analyzer tools that we always initialize the address. Closes
|
||||
ticket 28881.
|
||||
- Divide more large Tor source files -- especially ones that span
|
||||
multiple areas of functionality -- into smaller parts, including
|
||||
onion.c and main.c. Closes ticket 26747.
|
||||
- Divide the "routerparse.c" module into separate modules for each
|
||||
group of parsed objects. Closes ticket 27924.
|
||||
- Move protover_rust.c to the same place protover.c was moved to.
|
||||
Closes ticket 27814.
|
||||
- Split directory.c into separate pieces for client, server, and
|
||||
common functionality. Closes ticket 26744.
|
||||
- Split the non-statistics-related parts from the rephist.c and
|
||||
geoip.c modules. Closes ticket 27892.
|
||||
- Split the router.c file into relay-only and shared components, to
|
||||
help with future modularization. Closes ticket 27864.
|
||||
- Divide the routerlist.c and dirserv.c modules into smaller parts.
|
||||
Closes ticket 27799.
|
||||
- 'updateFallbackDirs.py' now ignores the blacklist file, as it's not
|
||||
longer needed. Closes ticket 26502.
|
||||
- Include paths to header files within Tor are now qualified by
|
||||
directory within the top-level src directory.
|
||||
- Many structures have been removed from the centralized "or.h"
|
||||
header, and moved into their own headers. This will allow us to
|
||||
reduce the number of places in the code that rely on each
|
||||
structure's contents and layout. Closes ticket 26383.
|
||||
- Remove ATTR_NONNULL macro from codebase. Resolves ticket 26527.
|
||||
- Remove GetAdaptersAddresses_fn_t. The code that used it was
|
||||
removed as part of the 26481 refactor. Closes ticket 27467.
|
||||
- Rework Tor SOCKS server code to use Trunnel and benefit from
|
||||
autogenerated functions for parsing and generating SOCKS wire
|
||||
format. New implementation is cleaner, more maintainable and
|
||||
should be less prone to heartbleed-style vulnerabilities.
|
||||
Implements a significant fraction of ticket 3569.
|
||||
- Split sampled_guards_update_from_consensus() and
|
||||
select_entry_guard_for_circuit() into subfunctions. In
|
||||
entry_guards_update_primary() unite three smartlist enumerations
|
||||
into one and move smartlist comparison code out of the function.
|
||||
Closes ticket 21349.
|
||||
- Tor now assumes that you have standards-conformant stdint.h and
|
||||
inttypes.h headers when compiling. Closes ticket 26626.
|
||||
- Unify our bloom filter logic. Previously we had two copies of this
|
||||
code: one for routerlist filtering, and one for address set
|
||||
calculations. Closes ticket 26510.
|
||||
- Use the simpler strcmpstart() helper in
|
||||
rend_parse_v2_service_descriptor instead of strncmp(). Closes
|
||||
ticket 27630.
|
||||
- Utility functions that can perform a DNS lookup are now wholly
|
||||
separated from those that can't, in separate headers and C
|
||||
modules. Closes ticket 26526.
|
||||
|
||||
o Documentation:
|
||||
- In the tor-resolve(1) manpage, fix the reference to socks-
|
||||
extensions.txt by adding a web URL. Resolves ticket 27853.
|
||||
- Mention that we require Python to be 2.7 or newer for some
|
||||
integration tests that we ship with Tor. Resolves ticket 27677.
|
||||
- Copy paragraph and URL to Tor's code of conduct document from
|
||||
CONTRIBUTING to new CODE_OF_CONDUCT file. Resolves ticket 26638.
|
||||
- Remove old instructions from INSTALL document. Closes ticket 26588.
|
||||
- Warn users that they should not include MyFamily line(s) in their
|
||||
torrc when running Tor bridge. Closes ticket 26908.
|
||||
|
||||
o Removed features:
|
||||
- Tor no longer supports building with the dmalloc library. For
|
||||
debugging memory issues, we suggest using gperftools or msan
|
||||
instead. Closes ticket 26426.
|
||||
- Tor no longer attempts to run on Windows environments without the
|
||||
GetAdaptersAddresses() function. This function has existed since
|
||||
Windows XP, which is itself already older than we support.
|
||||
- Remove Tor2web functionality for version 2 onion services. The
|
||||
Tor2webMode and Tor2webRendezvousPoints options are now obsolete.
|
||||
(This feature was never shipped in vanilla Tor and it was only
|
||||
possible to use this feature by building the support at compile
|
||||
time. Tor2webMode is not implemented for version 3 onion services.)
|
||||
Closes ticket 26367.
|
||||
|
||||
o Testing:
|
||||
- Increase logging and tag all log entries with timestamps in
|
||||
test_rebind.py. Provides diagnostics for issue 28229.
|
||||
|
||||
o Code simplification and refactoring (shared random, dirauth):
|
||||
- Change many tor_assert() to use BUG() instead. The idea is to not
|
||||
crash a dirauth but rather scream loudly with a stacktrace and let
|
||||
it continue run. The shared random subsystem is very resilient and
|
||||
if anything wrong happens with it, at worst a non coherent value
|
||||
will be put in the vote and discarded by the other authorities.
|
||||
Closes ticket 19566.
|
||||
|
||||
o Documentation (onion services):
|
||||
- Improve HSv3 client authorization by making some options more
|
||||
explicit and detailed. Closes ticket 28026. Patch by Mike Tigas.
|
||||
- Document in the man page that changing ClientOnionAuthDir value or
|
||||
adding a new file in the directory will not work at runtime upon
|
||||
sending a HUP if Sandbox 1. Closes ticket 28128.
|
||||
- Note in the man page that the only real way to fully revoke an
|
||||
onion service v3 client authorization is by restarting the tor
|
||||
process. Closes ticket 28275.
|
||||
|
||||
|
||||
Changes in version 0.3.4.9 - 2018-11-02
|
||||
Tor 0.3.4.9 is the second stable release in its series; it backports
|
||||
numerous fixes, including a fix for a bandwidth management bug that
|
||||
|
||||
Reference in New Issue
Block a user