Tor Browser 8.0.2 is now available from the Tor Browser Project page [1]
and also from our distribution directory [2].
1: https://www.torproject.org/download/download-easy.html
2: https://www.torproject.org/dist/torbrowser/8.0.2/
This release features important security updates [3] to Firefox. We
picked up the necessary patches, but because we needed to start building
before Mozilla was ready with a first candidate build, we did not bump
the Firefox version to 60.2.2esr. Thus, users are fine with Tor Browser
8.0.2 even though the Firefox version is 60.2.1esr.
3: https://www.mozilla.org/en-US/security/advisories/mfsa2018-24/
_Known Issues_
We already collected a number of unresolved bugs since Tor Browser 7.5.6
and tagged them with our tbb-8.0-issues [4] keyword to keep them on our
radar. The most important current issues are:
4: https://trac.torproject.org/projects/tor/query?status=!closed&keywords=…
* WebGL is broken [5] right now.
5: https://trac.torproject.org/projects/tor/ticket/27290
* Accessibility support is broken [6] on Windows. We are considering
options to address this issue right now.
6: https://trac.torproject.org/projects/tor/ticket/27503
* Tor Browser 8 is not starting anymore on some older Ubuntu/Mint Linux
systems [7]. We still have issues to reproduce this bug but hope we
can fix it in the next release.
7: https://trac.torproject.org/projects/tor/ticket/27508
* Tor Browser 8 is not starting anymore on CentOS 6 [8]. We have a
fix in our 8.5a2 release to give it a bit of testing. Users affected
by this bug may resort to that alpha version for now. We plan to
backport the patch in the next stable release.
8: https://trac.torproject.org/projects/tor/ticket/27552
* NoScript is not saving per-site permissions anymore [9]. We have a
potential patch for this bug in our 8.5a2 release as well and plan
to backport it, too, in the next stable release in case no issues
with it are found.
9: https://trac.torproject.org/projects/tor/ticket/27175
* While preparing the 8.0.2 release we encountered intermittent
reproducibility failures [10] for Linux (64bit) bundles.
10: https://trac.torproject.org/projects/tor/ticket/27937
The full changelog since Tor Browser 8.0.1 is:
* All platforms
* Update Firefox to 60.2.1esr
* Backport fix for Mozilla bug 1493900 and 1493903
* OS X
* Backport fix for Mozilla bug 1489785 for macOS 10.14 compatibility
Tor Browser 8.0.1 is now available from the Tor Browser Project page [1]
and also from our distribution directory [2].
1: https://www.torproject.org/download/download-easy.html
2: https://www.torproject.org/dist/torbrowser/8.0.1/
This release features important security updates [3] to Firefox. Note
that we just picked up the necessary patches this time but did not bump
the Firefox version to 60.2.1esr as we needed to start building before
Mozilla was ready. Thus, users are fine with Tor Browser 8.0.1 even if
the Firefox version says 60.2.0esr.
3: https://www.mozilla.org/en-US/security/advisories/mfsa2018-23/
Moreover, Alex Catarineu from Cliqz found a mistake we made that would
make it possible to trick a user into installing an unsigned Torbutton
extension. Thus, all users are encouraged to update older Tor Browser
versions to 8.0.1 and keep in mind that installing third party extensions
is potentially dangerous to Tor Browser's privacy guarantees and
therefore strongly discouraged.
Tor Browser 8.0.1 is shipping the first stable Tor in the 0.3.4 series
(0.3.4.8) which solves an annoying crash bug [4] on older macOS systems
(10.9.x).
4: https://trac.torproject.org/projects/tor/ticket/27482
We found a better solution to our User Agent treatment [5]: on desktop
platforms Tor Browser will send a Windows User Agent at the network
level now while still allowing to query the unspoofed User Agent with
JavaScript. This takes concerns about any server passively logging the
User Agent into account while still avoiding broken websites as good as
we can. Thanks to everyone who helped with this issue.
5: https://trac.torproject.org/projects/tor/ticket/26146
Finally, we included a banner for signing up to Tor News which allows
anyone to stay up-to-date about things going on in the Tor universe
(which is, admittedly, sometimes hard to keep track of).
_Known Issues_
We already collected a number of unresolved bugs since Tor Browser
7.5.6 and tagged them with our tbb-8.0-issues [6] keyword to keep them
on our radar. While we fixed a number of them for the 8.0.1 release,
there are still issues remaining. The most important ones are listed
below:
6: https://trac.torproject.org/projects/tor/query?status=!closed&keywords=…
* WebGL is broken [7] right now.
7: https://trac.torproject.org/projects/tor/ticket/27290
* Accessibility support is broken [8] on Windows. We are considering
options to address this issue right now.
8: https://trac.torproject.org/projects/tor/ticket/27503
* Tor Browser 8 is not starting anymore on some older Ubuntu/Mint
Linux systems [9]. We still have issues to reproduce this bug but
hope we can fix it in the next release.
9: https://trac.torproject.org/projects/tor/ticket/27508
* Tor Browser 8 is not starting anymore on CentOS 6 [10]. We have a
fix in our upcoming 8.5a2 to give it a bit of testing. Users affected
by this bug may resort to that alpha version for now. We plan to
backport the patch in the next stable release.
10: https://trac.torproject.org/projects/tor/ticket/27552
* NoScript is not saving per-site permissions anymore [11]. We have
a potential patch for this bug in our 8.5a2 release as well and
plan to backport it, too, in the next stable release in case no
issues with it are found.
11: https://trac.torproject.org/projects/tor/ticket/27175
Note: The changelog file has an incorrect release date (September 24
instead of September 22).
The full changelog since Tor Browser 8.0 is:
* All platforms
* Update Tor to 0.3.4.8
* Update Torbutton to 2.0.7
* Bug 27097: Tor News signup banner
* Bug 27663: Add New Identity menuitem again
* Bug 26624: Only block OBJECT on highest slider level
* Bug 26555: Don't show IP address for meek or snowflake
* Bug 27478: Torbutton icons for dark theme
* Bug 27506+14520: Move status version to upper left corner for RTL locales
* Bug 27427: Fix NoScript IPC for about:blank by whitelisting messages
* Bug 27558: Update the link to "Your Guard note may not change" text
* Translations update
* Update Tor Launcher to 0.2.16.6
* Bug 27469: Adapt Moat URLs
* Translations update
* Clean-up
* Update NoScript to 10.1.9.6
* Bug 27763: Restrict Torbutton signing exemption to mobile
* Bug 26146: Spoof HTTP User-Agent header for desktop platforms
* Bug 27543: QR code is broken on web.whatsapp.com
* Bug 27264: Bookmark items are not visible on the boomark toolbar
* Bug 27535: Enable TLS 1.3 draft version
* Backport of Mozilla bug 1490585, 1475775, and 1489744
* OS X
* Bug 27482: Fix crash during start-up on macOS 10.9.x systems
* Linux
* Bug 26556: Fix broken Tor Browser icon path on Linux
Hello, everyone!
(If you are about to reply saying "please take me off this list",
instead please follow these instructions:
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-announce/
. If you have trouble, it is probably because you subscribed using a
different address than the one you are trying to unsubscribe with. You
will have to enter the actual email address you used when you
subscribed.)
After months of work, Tor 0.3.4.8 is now available! This is the first
stable release in the 0.3.4 series, and we hope you find it useful.
You can download the source code from the usual place on the website's
download page, under "source code". Packages should be available
within the next several weeks, with a new Tor Browser by some time
next week.
Also today we are releasing updates for our other supported stable
series: Tor 0.2.9.17, Tor 0.3.2.12, and Tor 0.3.3.10. You can
download the source code for older supported releases from
https://dist.torproject.org/. Their changelogs are available at:
https://gitweb.torproject.org/tor.git/tree/ChangeLog?h=tor-0.2.9.17https://gitweb.torproject.org/tor.git/tree/ChangeLog?h=tor-0.3.2.12https://gitweb.torproject.org/tor.git/tree/ChangeLog?h=tor-0.3.3.10
Below is the list of changes in Tor 0.3.4.8 since 0.3.3.9. For a list
of only those changes made since 0.3.4.8-rc, see the 0.3.4.8
changelog.
Changes in version 0.3.4.8 - 2018-09-10
Tor 0.3.4.8 is the first stable release in its series; it includes
compilation and portability fixes.
The Tor 0.3.4 series includes improvements for running Tor in
low-power and embedded environments, which should help performance in
general. We've begun work on better modularity, and included preliminary
changes on the directory authority side to accommodate a new bandwidth
measurement system. We've also integrated more continuous-integration
systems into our development process, and made corresponding changes to
Tor's testing infrastructure. Finally, we've continued to refine
our anti-denial-of-service code.
Below are the changes since 0.3.3.9. For a list of only the changes
since 0.3.4.7-rc, see the ChangeLog file.
o New system requirements:
- Tor no longer tries to support old operating systems without
mmap() or some local equivalent. Apparently, compilation on such
systems has been broken for some time, without anybody noticing or
complaining. Closes ticket 25398.
o Major features (directory authority, modularization):
- The directory authority subsystem has been modularized. The code
is now located in src/or/dirauth/, and is compiled in by default.
To disable the module, the configure option
--disable-module-dirauth has been added. This module may be
disabled by default in some future release. Closes ticket 25610.
o Major features (main loop, CPU usage):
- When Tor is disabled (via DisableNetwork or via hibernation), it
no longer needs to run any per-second events. This change should
make it easier for mobile applications to disable Tor while the
device is sleeping, or Tor is not running. Closes ticket 26063.
- Tor no longer enables all of its periodic events by default.
Previously, Tor would enable all possible main loop events,
regardless of whether it needed them. Furthermore, many of these
events are now disabled when Tor is hibernating or DisableNetwork
is set. This is a big step towards reducing client CPU usage by
reducing the amount of wake-ups the daemon does. Closes tickets
25376 and 25762.
- The bandwidth-limitation logic has been refactored so that
bandwidth calculations are performed on-demand, rather than every
TokenBucketRefillInterval milliseconds. This change should improve
the granularity of our bandwidth calculations, and limit the
number of times that the Tor process needs to wake up when it is
idle. Closes ticket 25373.
- Move responsibility for many operations from a once-per-second
callback to a callback that is only scheduled as needed. Moving
this functionality has allowed us to disable the callback when
Tor's network is disabled. Once enough items are removed from our
once-per-second callback, we can eliminate it entirely to conserve
CPU when idle. The functionality removed includes: closing
connections, circuits, and channels (ticket 25932); consensus
voting (25937); flushing log callbacks (25951); honoring delayed
SIGNEWNYM requests (25949); rescanning the consensus cache
(25931); saving the state file to disk (25948); warning relay
operators about unreachable ports (25952); and keeping track of
Tor's uptime (26009).
o Minor features (accounting):
- When Tor becomes dormant, it now uses a scheduled event to wake up
at the right time. Previously, we would use the per-second timer
to check whether to wake up, but we no longer have any per-second
timers enabled when the network is disabled. Closes ticket 26064.
o Minor features (bug workaround):
- Compile correctly on systems that provide the C11 stdatomic.h
header, but where C11 atomic functions don't actually compile.
Closes ticket 26779; workaround for Debian issue 903709.
o Minor features (code quality):
- Add optional spell-checking for the Tor codebase, using the
"misspell" program. To use this feature, run "make check-typos".
Closes ticket 25024.
o Minor features (compatibility):
- Tell OpenSSL to maintain backward compatibility with previous
RSA1024/DH1024 users in Tor. With OpenSSL 1.1.1-pre6, these
ciphers are disabled by default. Closes ticket 27344.
- Tor now detects versions of OpenSSL 1.1.0 and later compiled with
the no-deprecated option, and builds correctly with them. Closes
tickets 19429, 19981, and 25353.
o Minor features (compilation):
- When compiling with --enable-openbsd-malloc or --enable-tcmalloc,
tell the compiler not to include the system malloc implementation.
Fixes bug 20424; bugfix on 0.2.0.20-rc.
- Don't try to use a pragma to temporarily disable the
-Wunused-const-variable warning if the compiler doesn't support
it. Fixes bug 26785; bugfix on 0.3.2.11.
- When building Tor, prefer to use Python 3 over Python 2, and more
recent (contemplated) versions over older ones. Closes
ticket 26372.
o Minor features (compression, zstd):
- When running with zstd, Tor now considers using advanced functions
that the zstd maintainers have labeled as potentially unstable. To
prevent breakage, Tor will only use this functionality when the
runtime version of the zstd library matches the version with which
Tor was compiled. Closes ticket 25162.
o Minor features (configuration):
- The "DownloadSchedule" options have been renamed to end with
"DownloadInitialDelay". The old names are still allowed, but will
produce a warning. Comma-separated lists are still permitted for
these options, but all values after the first are ignored (as they
have been since 0.2.9). Closes ticket 23354.
o Minor features (continuous integration):
- Log the compiler path and version during Appveyor builds.
Implements ticket 27449.
- Show config.log and test-suite.log after failed Appveyor builds.
Also upload the zipped full logs as a build artifact. Implements
ticket 27430.
- Backport Travis rust distcheck to 0.3.3. Closes ticket 24629.
- Enable macOS builds in our Travis CI configuration. Closes
ticket 24629.
- Install libcap-dev and libseccomp2-dev so these optional
dependencies get tested on Travis CI. Closes ticket 26560.
- Only post Appveyor IRC notifications when the build fails.
Implements ticket 27275.
- Run asciidoc during Travis CI. Implements ticket 27087.
- Use ccache in our Travis CI configuration. Closes ticket 26952.
- Add the necessary configuration files for continuous integration
testing on Windows, via the Appveyor platform. Closes ticket
25549. Patches from Marcin Cieślak and Isis Lovecruft.
o Minor features (continuous integration, rust):
- Use cargo cache in our Travis CI configuration. Closes
ticket 26952.
o Minor features (control port):
- Introduce GETINFO "current-time/{local,utc}" to return the local
and UTC times respectively in ISO format. This helps a controller
like Tor Browser detect a time-related error. Closes ticket 25511.
Patch by Neel Chauhan.
- Introduce new fields to the CIRC_BW event. There are two new
fields in each of the read and written directions. The DELIVERED
fields report the total valid data on the circuit, as measured by
the payload sizes of verified and error-checked relay command
cells. The OVERHEAD fields report the total unused bytes in each
of these cells. Closes ticket 25903.
o Minor features (controller):
- The control port now exposes the list of HTTPTunnelPorts and
ExtOrPorts via GETINFO net/listeners/httptunnel and
net/listeners/extor respectively. Closes ticket 26647.
o Minor features (directory authorities):
- Stop warning about incomplete bw lines before the first complete
bw line has been found, so that additional header lines can be
ignored. Fixes bug 25960; bugfix on 0.2.2.1-alpha
- Authorities no longer vote to make the subprotocol version
"LinkAuth=1" a requirement: it is unsupportable with NSS, and
hasn't been needed since Tor 0.3.0.1-alpha. Closes ticket 27286.
o Minor features (directory authority):
- Directory authorities now open their key-pinning files as O_SYNC,
to limit their chances of accidentally writing partial lines.
Closes ticket 23909.
o Minor features (directory authority, forward compatibility):
- Make the lines of the measured bandwidth file able to contain
their entries in any order. Previously, the node_id entry needed
to come first. Closes ticket 26004.
o Minor features (entry guards):
- Introduce a new torrc option NumPrimaryGuards for controlling the
number of primary guards. Closes ticket 25843.
o Minor features (geoip):
- Update geoip and geoip6 to the August 7 2018 Maxmind GeoLite2
Country database. Closes ticket 27089.
o Minor features (performance):
- Avoid a needless call to malloc() when processing an incoming
relay cell. Closes ticket 24914.
- Make our timing-wheel code run a tiny bit faster on 32-bit
platforms, by preferring 32-bit math to 64-bit. Closes
ticket 24688.
- Avoid a needless malloc()/free() pair every time we handle an ntor
handshake. Closes ticket 25150.
o Minor features (Rust, portability):
- Rust cross-compilation is now supported. Closes ticket 25895.
o Minor features (testing):
- Add a unit test for voting_schedule_get_start_of_next_interval().
Closes ticket 26014, and helps make unit test coverage
more deterministic.
- A new unittests module specifically for testing the functions in
the (new-ish) bridges.c module has been created with new
unittests, raising the code coverage percentages. Closes 25425.
- We now have improved testing for addressmap_get_virtual_address()
function. This should improve our test coverage, and make our test
coverage more deterministic. Closes ticket 25993.
o Minor features (timekeeping, circuit scheduling):
- When keeping track of how busy each circuit have been recently on
a given connection, use coarse-grained monotonic timers rather
than gettimeofday(). This change should marginally increase
accuracy and performance. Implements part of ticket 25927.
o Minor features (unit tests):
- Test complete bandwidth measurements files, and test that
incomplete bandwidth lines only give warnings when the end of the
header has not been detected. Fixes bug 25947; bugfix
on 0.2.2.1-alpha
o Minor bugfixes (bandwidth management):
- Consider ourselves "low on write bandwidth" if we have exhausted
our write bandwidth some time in the last second. This was the
documented behavior before, but the actual behavior was to change
this value every TokenBucketRefillInterval. Fixes bug 25828;
bugfix on 0.2.3.5-alpha.
o Minor bugfixes (C correctness):
- Add a missing lock acquisition in the shutdown code of the control
subsystem. Fixes bug 25675; bugfix on 0.2.7.3-rc. Found by
Coverity; this is CID 1433643.
o Minor bugfixes (code style):
- Fixed multiple includes of transports.h in src/or/connection.c
Fixes bug 25261; bugfix on 0.2.5.1-alpha.
- Remove the unused variable n_possible from the function
channel_get_for_extend(). Fixes bug 25645; bugfix on 0.2.4.4-alpha
o Minor bugfixes (compilation):
- Silence a spurious compiler warning on the GetAdaptersAddresses
function pointer cast. This issue is already fixed by 26481 in
0.3.5 and later, by removing the lookup and cast. Fixes bug 27465;
bugfix on 0.2.3.11-alpha.
- Stop calling SetProcessDEPPolicy() on 64-bit Windows. It is not
supported, and always fails. Some compilers warn about the
function pointer cast on 64-bit Windows. Fixes bug 27461; bugfix
on 0.2.2.23-alpha.
- Fix a compilation warning on some versions of GCC when building
code that calls routerinfo_get_my_routerinfo() twice, assuming
that the second call will succeed if the first one did. Fixes bug
26269; bugfix on 0.2.8.2-alpha.
- Refrain from compiling unit testing related object files when
--disable-unittests is set to configure script. Fixes bug 24891;
bugfix on 0.2.5.1-alpha.
- The --enable-fatal-warnings flag now affects Rust code as well.
Closes ticket 26245.
- Avoid a compiler warning when casting the return value of
smartlist_len() to double with DEBUG_SMARTLIST enabled. Fixes bug
26283; bugfix on 0.2.4.10-alpha.
o Minor bugfixes (compilation, windows):
- Don't link or search for pthreads when building for Windows, even
if we are using build environment (like mingw) that provides a
pthreads library. Fixes bug 27081; bugfix on 0.1.0.1-rc.
o Minor bugfixes (continuous integration):
- Build with zstd on macOS. Fixes bug 27090; bugfix on 0.3.1.5-alpha.
- Skip a pair of unreliable key generation tests on Windows, until
the underlying issue in bug 26076 is resolved. Fixes bug 26830 and
bug 26853; bugfix on 0.2.7.3-rc and 0.3.2.1-alpha respectively.
o Minor bugfixes (control port):
- Respond with more human-readable error messages to GETINFO exit-
policy/* requests. Also, let controller know if an error is
transient (response code 551) or not (response code 552). Fixes
bug 25852; bugfix on 0.2.8.1-alpha.
- Parse the "HSADDRESS=" parameter in HSPOST commands properly.
Previously, it was misparsed and ignored. Fixes bug 26523; bugfix
on 0.3.3.1-alpha. Patch by "akwizgran".
- Make CIRC_BW event reflect the total of all data sent on a
circuit, including padding and dropped cells. Also fix a mis-
counting bug when STREAM_BW events were enabled. Fixes bug 25400;
bugfix on 0.2.5.2-alpha.
o Minor bugfixes (correctness, flow control):
- Upon receiving a stream-level SENDME cell, verify that our window
has not grown too large. Fixes bug 26214; bugfix on svn
r54 (pre-0.0.1)
o Minor bugfixes (directory authority):
- When voting for recommended versions, make sure that all of the
versions are well-formed and parsable. Fixes bug 26485; bugfix
on 0.1.1.6-alpha.
o Minor bugfixes (directory client):
- When unverified-consensus is verified, rename it to cached-
consenus. Fixes bug 4187; bugfix on 0.2.0.3-alpha.
- Fixed launching a certificate fetch always during the scheduled
periodic consensus fetch by fetching only in those cases when
consensus are waiting for certs. Fixes bug 24740; bugfix
on 0.2.9.1-alpha.
o Minor bugfixes (error reporting):
- Improve tolerance for directory authorities with skewed clocks.
Previously, an authority with a clock more than 60 seconds ahead
could cause a client with a correct clock to warn that the
client's clock was behind. Now the clocks of a majority of
directory authorities have to be ahead of the client before this
warning will occur. Fixes bug 25756; bugfix on 0.2.2.25-alpha.
o Minor bugfixes (in-process restart):
- Always call tor_free_all() when leaving tor_run_main(). When we
did not, restarting tor in-process would cause an assertion
failure. Fixes bug 26948; bugfix on 0.3.3.1-alpha.
o Minor bugfixes (Linux seccomp2 sandbox):
- Fix a bug in our sandboxing rules for the openat() syscall.
Previously, no openat() call would be permitted, which would break
filesystem operations on recent glibc versions. Fixes bug 25440;
bugfix on 0.2.9.15. Diagnosis and patch from Daniel Pinto.
o Minor bugfixes (logging):
- Improve the log message when connection initiators fail to
authenticate direct connections to relays. Fixes bug 26927; bugfix
on 0.3.0.1-alpha.
o Minor bugfixes (onion services):
- Silence a spurious compiler warning in
rend_client_send_introduction(). Fixes bug 27463; bugfix
on 0.1.1.2-alpha.
- Fix bug that causes services to not ever rotate their descriptors
if they were getting SIGHUPed often. Fixes bug 26932; bugfix
on 0.3.2.1-alpha.
- Recompute some consensus information after detecting a clock jump,
or after transitioning from a non-live consensus to a live
consensus. We do this to avoid having an outdated state, and
miscalculating the index for next-generation onion services. Fixes
bug 24977; bugfix on 0.3.2.1-alpha.
o Minor bugfixes (portability):
- Fix compilation of the unit tests on GNU/Hurd, which does not
define PATH_MAX. Fixes bug 26873; bugfix on 0.3.3.1-alpha. Patch
from "paulusASol".
- Work around two different bugs in the OS X 10.10 and later SDKs
that would prevent us from successfully targeting earlier versions
of OS X. Fixes bug 26876; bugfix on 0.3.3.1-alpha.
- Do not align mmap length, as it is not required by POSIX, and the
getpagesize function is deprecated. Fixes bug 25399; bugfix
on 0.1.1.23.
o Minor bugfixes (portability, FreeBSD):
- In have_enough_mem_for_dircache(), the variable DIRCACHE_MIN_MEM_MB
does not stringify on FreeBSD, so we switch to tor_asprintf().
Fixes bug 20887; bugfix on 0.2.8.1-alpha. Patch by Neel Chauhan.
o Minor bugfixes (relay statistics):
- When a relay is collecting internal statistics about how many
create cell requests it has seen of each type, accurately count
the requests from relays that temporarily fall out of the
consensus. (To be extra conservative, we were already ignoring
requests from clients in our counts, and we continue ignoring them
here.) Fixes bug 24910; bugfix on 0.2.4.17-rc.
o Minor bugfixes (rust):
- Backport test_rust.sh from master. Fixes bug 26497; bugfix
on 0.3.1.5-alpha.
- Protover parsing was accepting the presence of whitespace in
version strings, which the C implementation would choke on, e.g.
"Desc=1\t,2". Fixes bug 27177; bugfix on 0.3.3.5-rc.
- Protover parsing was ignoring a 2nd hyphen and everything after
it, accepting entries like "Link=1-5-foo". Fixes bug 27164; bugfix
on 0.3.3.1-alpha.
- Stop setting $CARGO_HOME. cargo will use the user's $CARGO_HOME, or
$HOME/.cargo by default. Fixes bug 26497; bugfix on 0.3.1.5-alpha.
- cd to ${abs_top_builddir}/src/rust before running cargo in
src/test/test_rust.sh. This makes the working directory consistent
between builds and tests. Fixes bug 26497; bugfix on 0.3.3.2-alpha.
o Minor bugfixes (single onion services, Tor2web):
- Log a protocol warning when single onion services or Tor2web
clients fail to authenticate direct connections to relays. Fixes
bug 26924; bugfix on 0.2.9.1-alpha.
o Minor bugfixes (test coverage tools):
- Update our "cov-diff" script to handle output from the latest
version of gcov, and to remove extraneous timestamp information
from its output. Fixes bugs 26101 and 26102; bugfix
on 0.2.5.1-alpha.
o Minor bugfixes (testing):
- Disable core dumps in test_bt.sh, to avoid failures in "make
distcheck". Fixes bug 26787; bugfix on 0.2.5.2-alpha.
- When testing workqueue event-cancellation, make sure that we
actually cancel an event, and that cancel each event with equal
probability. (It was previously possible, though extremely
unlikely, for our event-canceling test not to cancel any events.)
Fixes bug 26008; bugfix on 0.2.6.3-alpha.
- Repeat part of the test in test_client_pick_intro() a number of
times, to give it consistent coverage. Fixes bug 25996; bugfix
on 0.3.2.1-alpha.
- Remove randomness from the hs_common/responsible_hsdirs test, so
that it always takes the same path through the function it tests.
Fixes bug 25997; bugfix on 0.3.2.1-alpha.
- Change the behavior of the "channel/outbound" test so that it
never causes a 10-second rollover for the EWMA circuitmux code.
Previously, this behavior would happen randomly, and result in
fluctuating test coverage. Fixes bug 25994; bugfix
on 0.3.3.1-alpha.
- Use X509_new() to allocate certificates that will be freed later
with X509_free(). Previously, some parts of the unit tests had
used tor_malloc_zero(), which is incorrect, and which caused test
failures on Windows when they were built with extra hardening.
Fixes bugs 25943 and 25944; bugfix on 0.2.8.1-alpha. Patch by
Marcin Cieślak.
- While running the circuit_timeout test, fix the PRNG to a
deterministic AES stream, so that the test coverage from this test
will itself be deterministic. Fixes bug 25995; bugfix
on 0.2.2.2-alpha.
o Minor bugfixes (testing, bootstrap):
- When calculating bootstrap progress, check exit policies and the
exit flag. Previously, Tor would only check the exit flag, which
caused race conditions in small and fast networks like chutney.
Fixes bug 27236; bugfix on 0.2.6.3-alpha.
o Minor bugfixes (testing, chutney):
- When running make test-network-all, use the mixed+hs-v2 network.
(A previous fix to chutney removed v3 onion services from the
mixed+hs-v23 network, so seeing "mixed+hs-v23" in tests is
confusing.) Fixes bug 27345; bugfix on 0.3.2.1-alpha.
- Before running make test-network-all, delete old logs and test
result files, to avoid spurious failures. Fixes bug 27295; bugfix
on 0.2.7.3-rc.
o Minor bugfixes (testing, openssl compatibility):
- Our "tortls/cert_matches_key" unit test no longer relies on
OpenSSL internals. Previously, it relied on unsupported OpenSSL
behavior in a way that caused it to crash with OpenSSL 1.0.2p.
Fixes bug 27226; bugfix on 0.2.5.1-alpha.
o Minor bugfixes (v3 onion services):
- Stop sending ed25519 link specifiers in v3 onion service introduce
cells and descriptors, when the rendezvous or introduction point
doesn't support ed25519 link authentication. Fixes bug 26627;
bugfix on 0.3.2.4-alpha.
o Minor bugfixes (vanguards):
- Allow the last hop in a vanguard circuit to be the same as our
first, to prevent the adversary from influencing guard node choice
by choice of last hop. Also prevent the creation of A - B - A
paths, or A - A paths, which are forbidden by relays. Fixes bug
25870; bugfix on 0.3.3.1-alpha.
o Minor bugfixes (Windows, compilation):
- Silence a compilation warning on MSVC 2017 and clang-cl. Fixes bug
27185; bugfix on 0.2.2.2-alpha.
o Code simplification and refactoring:
- Remove duplicate code in parse_{c,s}method_line and bootstrap
their functionalities into a single function. Fixes bug 6236;
bugfix on 0.2.3.6-alpha.
- We remove the PortForwsrding and PortForwardingHelper options,
related functions, and the port_forwarding tests. These options
were used by the now-deprecated Vidalia to help ordinary users
become Tor relays or bridges. Closes ticket 25409. Patch by
Neel Chauhan.
- In order to make the OR and dir checking function in router.c less
confusing we renamed some functions and
consider_testing_reachability() has been split into
router_should_check_reachability() and
router_do_reachability_checks(). Also we improved the documentation
in some functions. Closes ticket 18918.
- Initial work to isolate Libevent usage to a handful of modules in
our codebase, to simplify our call structure, and so that we can
more easily change event loops in the future if needed. Closes
ticket 23750.
- Introduce a function to call getsockname() and return tor_addr_t,
to save a little complexity throughout the codebase. Closes
ticket 18105.
- Make hsdir_index in node_t a hsdir_index_t rather than a pointer
as hsdir_index is always present. Also, we move hsdir_index_t into
or.h. Closes ticket 23094. Patch by Neel Chauhan.
- Merge functions used for describing nodes and suppress the
functions that do not allocate memory for the output buffer
string. NODE_DESC_BUF_LEN constant and format_node_description()
function cannot be used externally from router.c module anymore.
Closes ticket 25432. Patch by valentecaio.
- Our main loop has been simplified so that all important operations
happen inside events. Previously, some operations had to happen
outside the event loop, to prevent infinite sequences of event
activations. Closes ticket 25374.
- Put a SHA1 public key digest in hs_service_intro_point_t, and use
it in register_intro_circ() and service_intro_point_new(). This
prevents the digest from being re-calculated each time. Closes
ticket 23107. Patch by Neel Chauhan.
- Refactor token-bucket implementations to use a common backend.
Closes ticket 25766.
- Remove extern declaration of stats_n_seconds_working variable from
main, protecting its accesses with get_uptime() and reset_uptime()
functions. Closes ticket 25081, patch by “valentecaio”.
- Remove our previous logic for "cached gettimeofday()" -- our
coarse monotonic timers are fast enough for this purpose, and far
less error-prone. Implements part of ticket 25927.
- Remove the return value for fascist_firewall_choose_address_base(),
and sister functions such as fascist_firewall_choose_address_node()
and fascist_firewall_choose_address_rs(). Also, while we're here,
initialize the ap argument as leaving it uninitialized can pose a
security hazard. Closes ticket 24734. Patch by Neel Chauhan.
- Rename two fields of connection_t struct. timestamp_lastwritten is
renamed to timestamp_last_write_allowed and timestamp_lastread is
renamed to timestamp_last_read_allowed. Closes ticket 24714, patch
by "valentecaio".
- Since Tor requires C99, remove our old workaround code for libc
implementations where free(NULL) doesn't work. Closes ticket 24484.
- Use our standard rate-limiting code to deal with excessive
libevent failures, rather than the hand-rolled logic we had
before. Closes ticket 26016.
- We remove the return value of node_get_prim_orport() and
node_get_prim_dirport(), and introduce node_get_prim_orport() in
node_ipv6_or_preferred() and node_ipv6_dir_preferred() in order to
check for a null address. Closes ticket 23873. Patch by
Neel Chauhan.
- We switch to should_record_bridge_info() in
geoip_note_client_seen() and options_need_geoip_info() instead of
accessing the configuration values directly. Fixes bug 25290;
bugfix on 0.2.1.6-alpha. Patch by Neel Chauhan.
o Deprecated features:
- As we are not recommending 0.2.5 anymore, we require relays that
once had an ed25519 key associated with their RSA key to always
have that key, instead of allowing them to drop back to a version
that didn't support ed25519. This means they need to use a new RSA
key if the want to downgrade to an older version of tor without
ed25519. Closes ticket 20522.
o Removed features:
- Directory authorities will no longer support voting according to
any consensus method before consensus method 25. This keeps
authorities compatible with all authorities running 0.2.9.8 and
later, and does not break any clients or relays. Implements ticket
24378 and proposal 290.
- The PortForwarding and PortForwardingHelper features have been
removed. The reasoning is, given that implementations of NAT
traversal protocols within common consumer grade routers are
frequently buggy, and that the target audience for a NAT punching
feature is a perhaps less-technically-inclined relay operator,
when the helper fails to setup traversal the problems are usually
deep, ugly, and very router specific, making them horrendously
impossible for technical support to reliable assist with, and thus
resulting in frustration all around. Unfortunately, relay
operators who would like to run relays behind NATs will need to
become more familiar with the port forwarding configurations on
their local router. Closes 25409.
- The TestingEnableTbEmptyEvent option has been removed. It was used
in testing simulations to measure how often connection buckets
were emptied, in order to improve our scheduling, but it has not
been actively used in years. Closes ticket 25760.
- The old "round-robin" circuit multiplexer (circuitmux)
implementation has been removed, along with a fairly large set of
code that existed to support it. It has not been the default
circuitmux since we introduced the "EWMA" circuitmux in 0.2.4.x,
but it still required an unreasonable amount of memory and CPU.
Closes ticket 25268.
For the past year, we have been collecting feedback on how we can make
Tor Browser work better for you.
Tor Browser 8.0, our first stable release based on Firefox 60 ESR, is
now available from the Tor Browser Project page [1] and also from our
distribution directory [2]. This release is all about users first.
1: https://www.torproject.org/download/download-easy.html
2: https://www.torproject.org/dist/torbrowser/8.0/
Tor Browser 8.0 comes with a series of user experience improvements that
address a set of long-term Tor Browser issues you’ve told us about. To
meet our users' needs, Tor Browser has a new user onboarding experience;
an updated landing page that follows our styleguide [3]; additional
language support; and new behaviors for bridge fetching, displaying a
circuit, and visiting .onion sites.
3: https://styleguide.torproject.org/
_New User Onboarding_
For the most part, using Tor is like using any other browser (and it is
based on Firefox), but there are some usage differences and cool things
happening behind the scenes that users should be aware of. Our new
onboarding experience aims to better let you know about unique aspects
of Tor Browser and how to maximize those for your best browsing experience.
[4][5]
4: https://extra.torproject.org/blog/2018-09-05-tor-browser-80/tb8-onboarding-…
5: https://extra.torproject.org/blog/2018-09-05-tor-browser-80/tb8-circuit-dis…
_Improved Bridge Fetching_
For users where Tor is blocked, we have previously offered a handful of
bridges in the browser to bypass censorship. But to receive additional
bridges, you had to send an email or visit a website, which posed a set
of problems. To simplify how you request bridges, we now have a new
bridge configuration flow when you when you launch Tor. Now all you
have to do is solve a captcha in Tor Launcher, and you’ll get a bridge
IP. We hope this simplification will allow more people to bypass
censorship and browse the internet freely and privately. [6]
6: https://extra.torproject.org/blog/2018-09-05-tor-browser-80/tb8-bridges-sma…
_Better Language Support_
Millions of people around the world use Tor, but not everyone has been
able to use Tor in their language. In Tor Browser 8, we’ve added
resources and support for nine previously unsupported languages: Catalan,
Irish, Indonesian, Icelandic, Norwegian, Danish, Hebrew, Swedish, and
Traditional Chinese.
Apart from those highlights, a number of other component and toolchains
got an update for this major release. In particular, we now ship Tor
0.3.3.9 with OpenSSL 1.0.2p and Libevent 2.1.8. Moreover, we switched
to the pure WebExtension version of NoScript (version 10.1.9.1) which
we still need to provide the security slider functionality. Additionally,
we start shipping 64bit builds for Windows users which should enhance
Tor Browser stability compared to the 32bit bundles.
Providing this many improvements for our users could only be possible
with collaboration between the Tor Browser team and Tor's UX team,
Community team, Services Admin team, and our volunteers. We would like
to thank everyone for working hard over the past year to bring all
these new features to our users.
_Known Issues_
We already collected a number of unresolved bugs since Tor Browser
7.5.6 and tagged them with our ff60-esr keyword [7] to keep them on our
radar. The most important ones are listed below:
7: https://trac.torproject.org/projects/tor/query?status=!closed&keywords=…
* WebGL is broken right now
* We disable Stylo on macOS due to reproducibility issues [8] we need
to investigate and fix. This will likely not get fixed for Tor Browser 8,
as we need some baking time on our nightly/alpha channel before we
are sure there are no reproducibility/stability regressions. The
tentative plan is to get it ready for Tor Browser 8.5.
8: https://trac.torproject.org/projects/tor/ticket/26475
Note: This release is signed with a new GPG subkey as the old one expired
a couple of days ago. You might need to refresh your copy of the public
part of the Tor Browser signing key before doing the verification. The
fingerprint of the new subkey is:
1107 75B5 D101 FB36 BC6C 911B EB77 4491 D9FF 06E2
_Give Feedback_
This is only the beginning of our efforts to put users first. If you
find a bug or have a suggestion for how we could improve this release,
please let us know [9].
9: https://trac.torproject.org/projects/tor/wiki/doc/community/HowToReportBugF…
_Changelog_
The full changelog since Tor Browser 7.5.6 is:
* All platforms
* Update Firefox to 60.2.0esr
* Update Tor to 0.3.3.9
* Update OpenSSL to 1.0.2p
* Update Libevent to 2.1.8
* Update Torbutton to 2.0.6
* Bug 26960: Implement new about:tor start page
* Bug 26961: Implement new user onboarding
* Bug 26962: Circuit display onboarding
* Bug 27301: Improve about:tor behavior and appearance
* Bug 27214: Improve the onboarding text
* Bug 26321: Move 'New Identity', 'New Circuit' to File, hamburger menus
* Bug 26100: Adapt Torbutton to Firefox 60 ESR
* Bug 26520: Fix sec slider/NoScript for TOR_SKIP_LAUNCH=1
* Bug 27401: Start listening for NoScript before it loads
* Bug 26430: New Torbutton icon
* Bug 24309: Move circuit display to the identity popup
* Bug 26884: Use Torbutton to provide security slider on mobile
* Bug 26128: Adapt security slider to the WebExtensions version of NoScript
* Bug 27276: Adapt to new NoScript messaging protocol
* Bug 23247: Show security state of .onions
* Bug 26129: Show our about:tor page on startup
* Bug 26235: Hide new unusable items from help menu
* Bug 26058: Remove workaround for hiding 'sign in to sync' button
* Bug 26590: Use new svg.disabled pref in security slider
* Bug 26655: Adjust color and size of onion button
* Bug 26500: Reposition circuit display relay icon for RTL locales
* Bug 26409: Remove spoofed locale implementation
* Bug 26189: Remove content-policy.js
* Bug 26544: Images are not centered anymore
* Bug 26490: Remove the security slider notification
* Bug 25126: Make about:tor layout responsive
* Bug 27097: Add text for Tor News signup widget
* Bug 21245: Add da translation to Torbutton and keep track of it
* Bug 27129+20628: Add locales ca, ga, id, is, nb, da, he, sv, and zh-TW
* Translations update
* Update Tor Launcher to 0.2.16.3
* Bug 23136: Moat integration (fetch bridges for the user)
* Bug 25750: Update Tor Launcher to make it compatible with Firefox 60 ESR
* Bug 26985: Help button icons missing
* Bug 25509: Improve the proxy help text
* Bug 26466: Remove sv-SE from tracking for releases
* Bug 27129+20628: Add locales ca, ga, id, is, nb, da, he, sv, and zh-TW
* Translations update
* Update HTTPS Everywhere to 2018.8.22
* Update NoScript to 10.1.9.1
* Update meek to 0.31
* Bug 26477: Make meek extension compatible with ESR 60
* Update obfs4proxy to v0.0.7 (bug 25356)
* Bug 27082: Enable a limited UITour for user onboarding
* Bug 26961: New user onboarding
* Bug 26962: New feature onboarding
* Bug 27403: The onboarding bubble is not always displayed
* Bug 27283: Fix first-party isolation for UI tour
* Bug 27213: Update about:tbupdate to new (about:tor) layout
* Bug 14952+24553: Enable HTTP2 and AltSvc
* Bug 25735: Tor Browser stalls while loading Facebook login page
* Bug 17252: Enable TLS session identifiers with first-party isolation
* Bug 26353: Prevent speculative connects that violate first-party isolation
* Bug 26670: Make canvas permission prompt respect first-party isolation
* Bug 24056: Use en-US strings in HTML forms if locale is spoofed to english
* Bug 26456: HTTP .onion sites inherit previous page's certificate information
* Bug 26561: .onion images are not displayed
* Bug 26321: Move 'New Identity', 'New Circuit' to File, hamburger menus
* Bug 26833: Backport Mozilla's bug 1473247
* Bug 26628: Backport Mozilla's bug 1470156
* Bug 26237: Clean up toolbar for ESR60-based Tor Browser
* Bug 26519: Avoid Firefox icons in ESR60
* Bug 26039: Load our preferences that modify extensions (fixup)
* Bug 26515: Update Tor Browser blog post URLs
* Bug 26216: Fix broken MAR file generation
* Bug 26409: Remove spoofed locale implementation
* Bug 25543: Rebase Tor Browser patches for ESR60
* Bug 23247: Show security state of .onions
* Bug 26039: Load our preferences that modify extensions
* Bug 17965: Isolate HPKP and HSTS to URL bar domain
* Bug 21787: Spoof en-US for date picker
* Bug 21607: Disable WebVR for now until it is properly audited
* Bug 21549: Disable wasm for now until it is properly audited
* Bug 26614: Disable Web Authentication API until it is properly audited
* Bug 27281: Enable Reader View mode again
* Bug 26114: Don't expose navigator.mozAddonManager to websites
* Bug 21850: Update about:tbupdate handling for e10s
* Bug 26048: Fix potentially confusing "restart to update" message
* Bug 27221: Purge startup cache if Tor Browser version changed
* Bug 26049: Reduce delay for showing update prompt to 1 hour
* Bug 26365: Add potential AltSvc support
* Bug 9145: Fix broken hardware acceleration on Windows and enable it
* Bug 26045: Add new MAR signing keys
* Bug 25215: Revert bug 18619 (we are not disabling IndexedDB any longer)
* Bug 19910: Rip out optimistic data socks handshake variant (#3875)
* Bug 22564: Hide Firefox Sync
* Bug 25090: Disable updater telemetry
* Bug 26127: Make sure Torbutton and Tor Launcher are not treated as legacy extensions
* Bug 13575: Disable randomised Firefox HTTP cache decay user tests
* Bug 22548: Firefox downgrades VP9 videos to VP8 for some users
* Bug 24995: Include git hash in tor --version
* Bug 27268+27257+27262+26603 : Preferences clean-up
* Bug 26073: Migrate general.useragent.locale to intl.locale.requested
* Bug 27129+20628: Make Tor Browser available in ca, ga, id, is, nb, da, he, sv, and zh-TW
* Bug 12927: Include Hebrew translation into Tor Browser
* Bug 21245: Add danish (da) translation
* Windows
* Bug 20636+10026: Create 64bit Tor Browser for Windows
* Bug 26239+24197: Enable content sandboxing for 64bit Windows builds
* Bug 26514: Fix intermittent updater failures on Win64 (Error 19)
* Bug 26874: Fix UNC path restrictions failure in Tor Browser 8.0a9
* Bug 12968: Enable HEASLR in Windows x86_64 builds
* Bug 26381: Work around endless loop during page load and about:tor not loading
* Bug 27411: Fix broken security slider and NoScript interaction on Windows
* Bug 22581: Fix shutdown crash
* Bug 25266: PT config should include full names of executable files
* Bug 26304: Update zlib to version 1.2.11
* Update tbb-windows-installer to 0.4
* Bug 26355: Update tbb-windows-installer to check for Windows7+
* Bug 26355: Require Windows7+ for updates to Tor Browser 8
* OS X
* Bug 24136: After loading file:// URLs clicking on links is broken on OS X
* Bug 24243: Tor Browser only renders HTML for local pages via file://
* Bug 24263: Tor Browser does not run extension scripts if loaded via about:debugging
* Bug 22794: Don't open AF_INET/AF_INET6 sockets when AF_LOCAL is configured
* Linux
* Bug 22794: Don't open AF_INET/AF_INET6 sockets when AF_LOCAL is configured
* Bug 25485: Unbreak Tor Browser on systems with newer libstdc++
* Bug 20866: Fix OpenGL software rendering on systems with newer libstdc++
* Bug 26951+18022: Fix execdesktop argument passing
* Bug 24136: After loading file:// URLs clicking on links is broken on Linux
* Bug 24243: Tor Browser only renders HTML for local pages via file://
* Bug 24263: Tor Browser does not run extension scripts if loaded via about:debugging
* Bug 20283: Tor Browser should run without a `/proc` filesystem.
* Bug 26354: Set SSE2 support as minimal requirement for Tor Browser 8
* Build System
* All
* Bug 26362+26410: Use old MAR format for first ESR60-based stable
* Bug 27020: RBM build fails with runc version 1.0.1
* Bug 26949: Use GitHub repository for STIX
* Bug 26773: Add --verbose to the ./mach build flag for firefox
* Bug 26319: Don't package up Tor Browser in the `mach package` step
* Bug 27178: add support for xz compression in mar files
* Clean up
* Windows
* Bug 26203: Adapt tor-browser-build/tor-browser for Windows
* Bug 26204: Bundle d3dcompiler_47.dll for Tor Browser 8
* Bug 26205: Don't build the uninstaller for Windows during Firefox compilation
* Bug 26206: Ship pthread related dll where needed
* Bug 26396: Build libwinpthread reproducible
* Bug 25837: Integrate fxc2 into our build setup for Windows builds
* Bug 27152: Use mozilla/fxc2.git for the fxc2 repository
* Bug 25894: Get a rust cross-compiler for Windows
* Bug 25554: Bump mingw-w64 version for ESR 60
* Bug 23561: Fix nsis builds for Windows 64
* Bug 13469: Windows installer is missing many languages from NSIS file
* Bug 23231: Remove our STL Wrappers workaround for Windows 64bit
* Bug 26370: Don't copy msvcr100.dll and libssp-0.dll twice
* Bug 26476: Work around Tor Browser crashes due to fix for bug 1467041
* Bug 18287: Use SHA-2 signature for Tor Browser setup executables
* Bug 25420: Update GCC to 6.4.0
* Bug 16472: Update Binutils to 2.26.1
* Bug 20302: Fix FTE compilation for Windows with GCC 6.4.0
* Bug 25111: Don't compile Yasm on our own anymore for Windows Tor Browser
* Bug 18691: Switch Windows builds from precise to jessie
* OS X
* Bug 24632: Update macOS toolchain for ESR 60
* Bug 9711: Build our own cctools for macOS cross-compilation
* Bug 25548: Update macOS SDK for Tor Browser builds to 10.11
* Bug 26003: Clean up our mozconfig-osx-x86_64 file
* Bug 26195: Use new cctools in our macosx-toolchain project
* Bug 25975: Get a rust cross-compiler for macOS
* Bug 26475: Disable Stylo to make macOS build reproducible
* Bug 26489: Fix .app directory name in tools/dmg2mar
* Linux
* Bug 26073: Patch tor-browser-build for transition to ESR 60
* Bug 25481: Rust support for tor-browser and tor
* Bug 25304: Update GCC to 6.4.0
* Bug 16472: Update Binutils to 2.26.1
(If you are about to reply saying "please take me off
this list", instead please follow these instructions:
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-announce/
You will have to enter the actual email address you used to subscribe.)
The main people who need to upgrade are people who operate a bridge relay
-- so their bridge address can resume being given out to censored users,
and so their stats can resume being included in the metrics pages.
Changes in version 0.3.3.9 - 2018-07-13
Tor 0.3.3.9 moves to a new bridge authority, meaning people running
bridge relays should upgrade.
o Directory authority changes:
- The "Bifroest" bridge authority has been retired; the new bridge
authority is "Serge", and it is operated by George from the
TorBSD project. Closes ticket 26771.
We also put out new stable releases for 0.2.9.16 and 0.3.2.11, and those
releases include other backported fixes:
https://gitweb.torproject.org/tor.git/tree/ReleaseNotes?h=tor-0.2.9.16https://gitweb.torproject.org/tor.git/tree/ReleaseNotes?h=tor-0.3.2.11
--Roger
Hello, everyone!
(If you are about to reply saying "please take me off this list",
instead please follow these instructions:
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-announce/
. If you have trouble, it is probably because you subscribed using a
different address than the one you are trying to unsubscribe with.
You will have to enter the actual email address you used to
subscribe.)
Source code for Tor 0.3.3.8 is now available; You can download the
source code from the usual place on the website. Packages should be
available within the next several weeks, with a new Tor Browser by
some time in September. (Don't worry, this isn't an urgent release
for clients.)
There's also a non-stable release (0.3.4.4-rc) coming out today: for
that announcement, see the tor-talk mailing list.
=====
Changes in version 0.3.3.8 - 2018-07-09
Tor 0.3.3.8 backports several changes from the 0.3.4.x series, including
fixes for a memory leak affecting directory authorities.
o Major bugfixes (directory authority, backport from 0.3.4.3-alpha):
- Stop leaking memory on directory authorities when planning to
vote. This bug was crashing authorities by exhausting their
memory. Fixes bug 26435; bugfix on 0.3.3.6.
o Major bugfixes (rust, testing, backport from 0.3.4.3-alpha):
- Make sure that failing tests in Rust will actually cause the build
to fail: previously, they were ignored. Fixes bug 26258; bugfix
on 0.3.3.4-alpha.
o Minor features (compilation, backport from 0.3.4.4-rc):
- When building Tor, prefer to use Python 3 over Python 2, and more
recent (contemplated) versions over older ones. Closes
ticket 26372.
o Minor features (geoip):
- Update geoip and geoip6 to the July 3 2018 Maxmind GeoLite2
Country database. Closes ticket 26674.
o Minor features (relay, diagnostic, backport from 0.3.4.3-alpha):
- Add several checks to detect whether Tor relays are uploading
their descriptors without specifying why they regenerated them.
Diagnostic for ticket 25686.
o Minor bugfixes (circuit path selection, backport from 0.3.4.1-alpha):
- Don't count path selection failures as circuit build failures.
This change should eliminate cases where Tor blames its guard or
the network for situations like insufficient microdescriptors
and/or overly restrictive torrc settings. Fixes bug 25705; bugfix
on 0.3.3.1-alpha.
o Minor bugfixes (compilation, backport from 0.3.4.4-rc):
- Fix a compilation warning on some versions of GCC when building
code that calls routerinfo_get_my_routerinfo() twice, assuming
that the second call will succeed if the first one did. Fixes bug
26269; bugfix on 0.2.8.2-alpha.
o Minor bugfixes (control port, backport from 0.3.4.4-rc):
- Handle the HSADDRESS= argument to the HSPOST command properly.
(Previously, this argument was misparsed and thus ignored.) Fixes
bug 26523; bugfix on 0.3.3.1-alpha. Patch by "akwizgran".
o Minor bugfixes (memory, correctness, backport from 0.3.4.4-rc):
- Fix a number of small memory leaks identified by coverity. Fixes
bug 26467; bugfix on numerous Tor versions.
o Minor bugfixes (relay, backport from 0.3.4.3-alpha):
- Relays now correctly block attempts to re-extend to the previous
relay by Ed25519 identity. Previously they would warn in this
case, but not actually reject the attempt. Fixes bug 26158; bugfix
on 0.3.0.1-alpha.
o Minor bugfixes (restart-in-process, backport from 0.3.4.1-alpha):
- When shutting down, Tor now clears all the flags in the control.c
module. This should prevent a bug where authentication cookies are
not generated on restart. Fixes bug 25512; bugfix on 0.3.3.1-alpha.
o Minor bugfixes (testing, compatibility, backport from 0.3.4.4-rc):
- When running the hs_ntor_ref.py test, make sure only to pass
strings (rather than "bytes" objects) to the Python subprocess
module. Python 3 on Windows seems to require this. Fixes bug
26535; bugfix on 0.3.1.1-alpha.
- When running the ntor_ref.py test, make sure only to pass strings
(rather than "bytes" objects) to the Python subprocess module.
Python 3 on Windows seems to require this. Fixes bug 26535; bugfix
on 0.2.5.5-alpha.
Tor Browser 7.5.6 is now available from the Tor Browser Project page [1]
and also from our distribution directory.
1: https://www.torproject.org/download/download-easy.html
2: https://www.torproject.org/dist/torbrowser/7.5.6/
This release features important security updates [3] to Firefox.
3: https://www.mozilla.org/en-US/security/advisories/mfsa2018-17/
Tor Browser 7.5.6 updates Firefox to 52.9.0esr and includes newer
versions of NoScript and HTTPS Everywhere. Moreover, we added the latest
Tor stable version, 0.3.3.7 [4].
4: https://blog.torproject.org/tor-0337-released
This Tor Browser version additionally contains a number of backported
patches from the alpha, most notably the feature to treat cookies set
by .onion domain as secure as well [5].
5: https://trac.torproject.org/projects/tor/ticket/21537
For Windows users we activated an option that prevents an accidental
proxy bypass when dealing with UNC paths [6].
6: https://trac.torproject.org/projects/tor/ticket/26424
The full changelog since Tor Browser 7.5.5 is:
* All platforms
* Update Firefox to 52.9.0esr
* Update Tor to 0.3.3.7
* Update Tor Launcher to 0.2.14.5
* Bug 20890: Increase control port connection timeout
* Update HTTPS Everywhere to 2018.6.21
* Bug 26451: Prevent HTTPS Everywhere from freezing the browser
* Update NoScript to 5.1.8.6
* Bug 21537: Mark .onion cookies as secure
* Bug 25938: Backport fix for cross-origin header leak (bug 1334776)
* Bug 25721: Backport patches from Mozilla's bug 1448771
* Bug 25147+25458: Sanitize HTML fragments for chrome documents
* Bug 26221: Backport fix for leak in SHA256 in nsHttpConnectionInfo.cpp
* Windows
* Bug 26424: Disable UNC paths to prevent possible proxy bypasses
Hello, everyone!
(If you are about to reply saying "please take me off this list",
instead please follow these instructions:
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-announce/
. If you have trouble, it is probably because you subscribed using a
different address than the one you are trying to unsubscribe with.
You will have to enter the actual email address you used to
subscribe.)
Source code for Tor 0.3.3.7 is now available; You can download the
source code from the usual place on the website. Packages should be
available within the next several weeks, with a new Tor Browser in the
next couple of weeks.
There is also a new alpha release today; that one is announced on
tor-talk@ as usual.
=============
Changes in version 0.3.3.7 - 2018-06-12
Tor 0.3.3.7 backports several changes from the 0.3.4.x series, including
fixes for bugs affecting compatibility and stability.
o Directory authority changes:
- Add an IPv6 address for the "dannenberg" directory authority.
Closes ticket 26343.
o Minor features (geoip):
- Update geoip and geoip6 to the June 7 2018 Maxmind GeoLite2
Country database. Closes ticket 26351.
o Minor bugfixes (compatibility, openssl, backport from 0.3.4.2-alpha):
- Work around a change in OpenSSL 1.1.1 where return values that
would previously indicate "no password" now indicate an empty
password. Without this workaround, Tor instances running with
OpenSSL 1.1.1 would accept descriptors that other Tor instances
would reject. Fixes bug 26116; bugfix on 0.2.5.16.
o Minor bugfixes (compilation, backport from 0.3.4.2-alpha):
- Silence unused-const-variable warnings in zstd.h with some GCC
versions. Fixes bug 26272; bugfix on 0.3.1.1-alpha.
o Minor bugfixes (controller, backport from 0.3.4.2-alpha):
- Improve accuracy of the BUILDTIMEOUT_SET control port event's
TIMEOUT_RATE and CLOSE_RATE fields. (We were previously
miscounting the total number of circuits for these field values.)
Fixes bug 26121; bugfix on 0.3.3.1-alpha.
o Minor bugfixes (hardening, backport from 0.3.4.2-alpha):
- Prevent a possible out-of-bounds smartlist read in
protover_compute_vote(). Fixes bug 26196; bugfix on 0.2.9.4-alpha.
o Minor bugfixes (path selection, backport from 0.3.4.1-alpha):
- Only select relays when they have the descriptors we prefer to use
for them. This change fixes a bug where we could select a relay
because it had _some_ descriptor, but reject it later with a
nonfatal assertion error because it didn't have the exact one we
wanted. Fixes bugs 25691 and 25692; bugfix on 0.3.3.4-alpha.
Hello, everyone!
(If you are about to reply saying "please take me off this list",
instead please follow these instructions:
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-announce/
. If you have trouble, it is probably because you subscribed using a
different address than the one you are trying to unsubscribe with.
You will have to enter the actual email address you used to
subscribe.)
After months of work, Tor 0.3.3.6 is now available! This is the
first stable release in the 0.3.3.x series, and we hope you find it
useful.
You can download the source code from the usual place on the website.
If you don't build Tor from source, don't worry! Packages should be
available within the next several weeks, with a new
Tor Browser by some time in June.
=====
Changes in version 0.3.3.6 - 2018-05-22
Tor 0.3.3.6 is the first stable release in the 0.3.3 series. It
backports several important fixes from the 0.3.4.1-alpha.
The Tor 0.3.3 series includes controller support and other
improvements for v3 onion services, official support for embedding Tor
within other applications, and our first non-trivial module written in
the Rust programming language. (Rust is still not enabled by default
when building Tor.) And as usual, there are numerous other smaller
bugfixes, features, and improvements.
Below are the changes since 0.3.2.10. For a list of only the changes
since 0.3.3.5-rc, see the ChangeLog file.
o New system requirements:
- When built with Rust, Tor now depends on version 0.2.39 of the
libc crate. Closes tickets 25310 and 25664.
o Major features (embedding):
- There is now a documented stable API for programs that need to
embed Tor. See tor_api.h for full documentation and known bugs.
Closes ticket 23684.
- Tor now has support for restarting in the same process.
Controllers that run Tor using the "tor_api.h" interface can now
restart Tor after Tor has exited. This support is incomplete,
however: we fixed crash bugs that prevented it from working at
all, but many bugs probably remain, including a possibility of
security issues. Implements ticket 24581.
o Major features (IPv6, directory documents):
- Add consensus method 27, which adds IPv6 ORPorts to the microdesc
consensus. This information makes it easier for IPv6 clients to
bootstrap and choose reachable entry guards. Implements
ticket 23826.
- Add consensus method 28, which removes IPv6 ORPorts from
microdescriptors. Now that the consensus contains IPv6 ORPorts,
they are redundant in microdescs. This change will be used by Tor
clients on 0.2.8.x and later. (That is to say, with all Tor
clients that have IPv6 bootstrap and guard support.) Implements
ticket 23828.
- Expand the documentation for AuthDirHasIPv6Connectivity when it is
set by different numbers of authorities. Fixes 23870
on 0.2.4.1-alpha.
o Major features (onion service v3, control port):
- The control port now supports commands and events for v3 onion
services. It is now possible to create ephemeral v3 services using
ADD_ONION. Additionally, several events (HS_DESC, HS_DESC_CONTENT,
CIRC and CIRC_MINOR) and commands (GETINFO, HSPOST, ADD_ONION and
DEL_ONION) have been extended to support v3 onion services. Closes
ticket 20699; implements proposal 284.
o Major features (onion services):
- Provide torrc options to pin the second and third hops of onion
service circuits to a list of nodes. The option HSLayer2Guards
pins the second hop, and the option HSLayer3Guards pins the third
hop. These options are for use in conjunction with experiments
with "vanguards" for preventing guard enumeration attacks. Closes
ticket 13837.
- When v3 onion service clients send introduce cells, they now
include the IPv6 address of the rendezvous point, if it has one.
Current v3 onion services running 0.3.2 ignore IPv6 addresses, but
in future Tor versions, IPv6-only v3 single onion services will be
able to use IPv6 addresses to connect directly to the rendezvous
point. Closes ticket 23577. Patch by Neel Chauhan.
o Major features (relay):
- Implement an option, ReducedExitPolicy, to allow an Tor exit relay
operator to use a more reasonable ("reduced") exit policy, rather
than the default one. If you want to run an exit node without
thinking too hard about which ports to allow, this one is for you.
Closes ticket 13605. Patch from Neel Chauhan.
o Major features (rust, portability, experimental):
- Tor now ships with an optional implementation of one of its
smaller modules (protover.c) in the Rust programming language. To
try it out, install a Rust build environment, and configure Tor
with "--enable-rust --enable-cargo-online-mode". This should not
cause any user-visible changes, but should help us gain more
experience with Rust, and plan future Rust integration work.
Implementation by Chelsea Komlo. Closes ticket 22840.
o Major bugfixes (directory authorities, security, backport from
0.3.4.1-alpha):
- When directory authorities read a zero-byte bandwidth file, they
would previously log a warning with the contents of an
uninitialised buffer. They now log a warning about the empty file
instead. Fixes bug 26007; bugfix on 0.2.2.1-alpha.
o Major bugfixes (security, directory authority, denial-of-service):
- Fix a bug that could have allowed an attacker to force a directory
authority to use up all its RAM by passing it a maliciously
crafted protocol versions string. Fixes bug 25517; bugfix on
0.2.9.4-alpha. This issue is also tracked as TROVE-2018-005.
o Major bugfixes (crash, backport from 0.3.4.1-alpha):
- Avoid a rare assertion failure in the circuit build timeout code
if we fail to allow any circuits to actually complete. Fixes bug
25733; bugfix on 0.2.2.2-alpha.
o Major bugfixes (netflow padding):
- Stop adding unneeded channel padding right after we finish
flushing to a connection that has been trying to flush for many
seconds. Instead, treat all partial or complete flushes as
activity on the channel, which will defer the time until we need
to add padding. This fix should resolve confusing and scary log
messages like "Channel padding timeout scheduled 221453ms in the
past." Fixes bug 22212; bugfix on 0.3.1.1-alpha.
o Major bugfixes (networking):
- Tor will no longer reject IPv6 address strings from Tor Browser
when they are passed as hostnames in SOCKS5 requests. Fixes bug
25036, bugfix on Tor 0.3.1.2.
o Major bugfixes (onion service, backport from 0.3.4.1-alpha):
- Correctly detect when onion services get disabled after HUP. Fixes
bug 25761; bugfix on 0.3.2.1.
o Major bugfixes (performance, load balancing):
- Directory authorities no longer vote in favor of the Guard flag
for relays without directory support. Starting in Tor
0.3.0.1-alpha, clients have been avoiding using such relays in the
Guard position, leading to increasingly broken load balancing for
the 5%-or-so of Guards that don't advertise directory support.
Fixes bug 22310; bugfix on 0.3.0.6.
o Major bugfixes (relay):
- If we have failed to connect to a relay and received a connection
refused, timeout, or similar error (at the TCP level), do not try
that same address/port again for 60 seconds after the failure has
occurred. Fixes bug 24767; bugfix on 0.0.6.
o Major bugfixes (relay, denial of service, backport from 0.3.4.1-alpha):
- Impose a limit on circuit cell queue size. The limit can be
controlled by a consensus parameter. Fixes bug 25226; bugfix
on 0.2.4.14-alpha.
o Minor features (cleanup):
- Tor now deletes the CookieAuthFile and ExtORPortCookieAuthFile
when it stops. Closes ticket 23271.
o Minor features (compatibility, backport from 0.3.4.1-alpha):
- Avoid some compilation warnings with recent versions of LibreSSL.
Closes ticket 26006.
o Minor features (config options):
- Change the way the default value for MaxMemInQueues is calculated.
We now use 40% of the hardware RAM if the system has 8 GB RAM or
more. Otherwise we use the former value of 75%. Closes
ticket 24782.
o Minor features (continuous integration):
- Update the Travis CI configuration to use the stable Rust channel,
now that we have decided to require that. Closes ticket 25714.
o Minor features (continuous integration, backport from 0.3.4.1-alpha):
- Our .travis.yml configuration now includes support for testing the
results of "make distcheck". (It's not uncommon for "make check"
to pass but "make distcheck" to fail.) Closes ticket 25814.
- Our Travis CI configuration now integrates with the Coveralls
coverage analysis tool. Closes ticket 25818.
o Minor features (defensive programming):
- Most of the functions in Tor that free objects have been replaced
with macros that free the objects and set the corresponding
pointers to NULL. This change should help prevent a large class of
dangling pointer bugs. Closes ticket 24337.
- Where possible, the tor_free() macro now only evaluates its input
once. Part of ticket 24337.
- Check that microdesc ed25519 ids are non-zero in
node_get_ed25519_id() before returning them. Implements ticket
24001, patch by "aruna1234".
o Minor features (directory authority):
- When directory authorities are unable to add signatures to a
pending consensus, log the reason why. Closes ticket 24849.
o Minor features (embedding):
- Tor can now start with a preauthenticated control connection
created by the process that launched it. This feature is meant for
use by programs that want to launch and manage a Tor process
without allowing other programs to manage it as well. For more
information, see the __OwningControllerFD option documented in
control-spec.txt. Closes ticket 23900.
- On most errors that would cause Tor to exit, it now tries to
return from the tor_main() function, rather than calling the
system exit() function. Most users won't notice a difference here,
but it should be significant for programs that run Tor inside a
separate thread: they should now be able to survive Tor's exit
conditions rather than having Tor shut down the entire process.
Closes ticket 23848.
- Applications that want to embed Tor can now tell Tor not to
register any of its own POSIX signal handlers, using the
__DisableSignalHandlers option. Closes ticket 24588.
o Minor features (fallback directory list):
- Avoid selecting fallbacks that change their IP addresses too
often. Select more fallbacks by ignoring the Guard flag, and
allowing lower cutoffs for the Running and V2Dir flags. Also allow
a lower bandwidth, and a higher number of fallbacks per operator
(5% of the list). Implements ticket 24785.
- Update the fallback whitelist and blacklist based on opt-ins and
relay changes. Closes tickets 22321, 24678, 22527, 24135,
and 24695.
o Minor features (fallback directory mirror configuration):
- Add a nickname to each fallback in a C comment. This makes it
easier for operators to find their relays, and allows stem to use
nicknames to identify fallbacks. Implements ticket 24600.
- Add a type and version header to the fallback directory mirror
file. Also add a delimiter to the end of each fallback entry. This
helps external parsers like stem and Relay Search. Implements
ticket 24725.
- Add an extrainfo cache flag for each fallback in a C comment. This
allows stem to use fallbacks to fetch extra-info documents, rather
than using authorities. Implements ticket 22759.
- Add the generateFallbackDirLine.py script for automatically
generating fallback directory mirror lines from relay fingerprints.
No more typos! Add the lookupFallbackDirContact.py script for
automatically looking up operator contact info from relay
fingerprints. Implements ticket 24706, patch by teor and atagar.
- Reject any fallback directory mirror that serves an expired
consensus. Implements ticket 20942, patch by "minik".
- Remove commas and equals signs from external string inputs to the
fallback list. This avoids format confusion attacks. Implements
ticket 24726.
- Remove the "weight=10" line from fallback directory mirror
entries. Ticket 24681 will maintain the current fallback weights
by changing Tor's default fallback weight to 10. Implements
ticket 24679.
- Stop logging excessive information about fallback netblocks.
Implements ticket 24791.
o Minor features (forward-compatibility):
- If a relay supports some link authentication protocol that we do
not recognize, then include that relay's ed25519 key when telling
other relays to extend to it. Previously, we treated future
versions as if they were too old to support ed25519 link
authentication. Closes ticket 20895.
o Minor features (geoip):
- Update geoip and geoip6 to the May 1 2018 Maxmind GeoLite2 Country
database. Closes ticket 26104.
o Minor features (heartbeat):
- Add onion service information to our heartbeat logs, displaying
stats about the activity of configured onion services. Closes
ticket 24896.
o Minor features (instrumentation, development):
- Add the MainloopStats option to allow developers to get
instrumentation information from the main event loop via the
heartbeat messages. We hope to use this to improve Tor's behavior
when it's trying to sleep. Closes ticket 24605.
o Minor features (IPv6):
- Make IPv6-only clients wait for microdescs for relays, even if we
were previously using descriptors (or were using them as a bridge)
and have a cached descriptor for them. Implements ticket 23827.
- When a consensus has IPv6 ORPorts, make IPv6-only clients use
them, rather than waiting to download microdescriptors. Implements
ticket 23827.
o Minor features (log messages):
- Improve log message in the out-of-memory handler to include
information about memory usage from the different compression
backends. Closes ticket 25372.
- Improve a warning message that happens when we fail to re-parse an
old router because of an expired certificate. Closes ticket 20020.
- Make the log more quantitative when we hit MaxMemInQueues
threshold exposing some values. Closes ticket 24501.
o Minor features (logging):
- Clarify the log messages produced when getrandom() or a related
entropy-generation mechanism gives an error. Closes ticket 25120.
- Added support for the Android logging subsystem. Closes
ticket 24362.
o Minor features (performance):
- Support predictive circuit building for onion service circuits
with multiple layers of guards. Closes ticket 23101.
- Use stdatomic.h where available, rather than mutexes, to implement
atomic_counter_t. Closes ticket 23953.
o Minor features (performance, 32-bit):
- Improve performance on 32-bit systems by avoiding 64-bit division
when calculating the timestamp in milliseconds for channel padding
computations. Implements ticket 24613.
- Improve performance on 32-bit systems by avoiding 64-bit division
when timestamping cells and buffer chunks for OOM calculations.
Implements ticket 24374.
o Minor features (performance, OSX, iOS):
- Use the mach_approximate_time() function (when available) to
implement coarse monotonic time. Having a coarse time function
should avoid a large number of system calls, and improve
performance slightly, especially under load. Closes ticket 24427.
o Minor features (performance, windows):
- Improve performance on Windows Vista and Windows 7 by adjusting
TCP send window size according to the recommendation from
SIO_IDEAL_SEND_BACKLOG_QUERY. Closes ticket 22798. Patch
from Vort.
o Minor features (sandbox):
- Explicitly permit the poll() system call when the Linux
seccomp2-based sandbox is enabled: apparently, some versions of
libc use poll() when calling getpwnam(). Closes ticket 25313.
o Minor features (storage, configuration):
- Users can store cached directory documents somewhere other than
the DataDirectory by using the CacheDirectory option. Similarly,
the storage location for relay's keys can be overridden with the
KeyDirectory option. Closes ticket 22703.
o Minor features (testing):
- Add a "make test-rust" target to run the rust tests only. Closes
ticket 25071.
o Minor features (testing, debugging, embedding):
- For development purposes, Tor now has a mode in which it runs for
a few seconds, then stops, and starts again without exiting the
process. This mode is meant to help us debug various issues with
ticket 23847. To use this feature, compile with
--enable-restart-debugging, and set the TOR_DEBUG_RESTART
environment variable. This is expected to crash a lot, and is
really meant for developers only. It will likely be removed in a
future release. Implements ticket 24583.
o Minor bugfixes (build, rust):
- Fix output of autoconf checks to display success messages for Rust
dependencies and a suitable rustc compiler version. Fixes bug
24612; bugfix on 0.3.1.3-alpha.
- Don't pass the --quiet option to cargo: it seems to suppress some
errors, which is not what we want to do when building. Fixes bug
24518; bugfix on 0.3.1.7.
- Build correctly when building from outside Tor's source tree with
the TOR_RUST_DEPENDENCIES option set. Fixes bug 22768; bugfix
on 0.3.1.7.
o Minor bugfixes (C correctness):
- Fix a very unlikely (impossible, we believe) null pointer
dereference. Fixes bug 25629; bugfix on 0.2.9.15. Found by
Coverity; this is CID 1430932.
o Minor bugfixes (channel, client):
- Better identify client connection when reporting to the geoip
client cache. Fixes bug 24904; bugfix on 0.3.1.7.
o Minor bugfixes (circuit, cannibalization):
- Don't cannibalize preemptively-built circuits if we no longer
recognize their first hop. This situation can happen if our Guard
relay went off the consensus after the circuit was created. Fixes
bug 24469; bugfix on 0.0.6.
o Minor bugfixes (client, backport from 0.3.4.1-alpha):
- Don't consider Tor running as a client if the ControlPort is open,
but no actual client ports are open. Fixes bug 26062; bugfix
on 0.2.9.4-alpha.
o Minor bugfixes (compilation):
- Fix a C99 compliance issue in our configuration script that caused
compilation issues when compiling Tor with certain versions of
xtools. Fixes bug 25474; bugfix on 0.3.2.5-alpha.
o Minor bugfixes (controller):
- Restore the correct operation of the RESOLVE command, which had
been broken since we added the ability to enable/disable DNS on
specific listener ports. Fixes bug 25617; bugfix on 0.2.9.3-alpha.
- Avoid a (nonfatal) assertion failure when extending a one-hop
circuit from the controller to become a multihop circuit. Fixes
bug 24903; bugfix on 0.2.5.2-alpha.
o Minor bugfixes (correctness):
- Remove a nonworking, unnecessary check to see whether a circuit
hop's identity digest was set when the circuit failed. Fixes bug
24927; bugfix on 0.2.4.4-alpha.
o Minor bugfixes (correctness, client, backport from 0.3.4.1-alpha):
- Upon receiving a malformed connected cell, stop processing the
cell immediately. Previously we would mark the connection for
close, but continue processing the cell as if the connection were
open. Fixes bug 26072; bugfix on 0.2.4.7-alpha.
o Minor bugfixes (directory authorities, IPv6):
- When creating a routerstatus (vote) from a routerinfo (descriptor),
set the IPv6 address to the unspecified IPv6 address, and
explicitly initialize the port to zero. Fixes bug 24488; bugfix
on 0.2.4.1-alpha.
o Minor bugfixes (documentation):
- Document that the PerConnBW{Rate,Burst} options will fall back to
their corresponding consensus parameters only if those parameters
are set. Previously we had claimed that these values would always
be set in the consensus. Fixes bug 25296; bugfix on 0.2.2.7-alpha.
o Minor bugfixes (documentation, backport from 0.3.4.1-alpha):
- Stop saying in the manual that clients cache ipv4 dns answers from
exit relays. We haven't used them since 0.2.6.3-alpha, and in
ticket 24050 we stopped even caching them as of 0.3.2.6-alpha, but
we forgot to say so in the man page. Fixes bug 26052; bugfix
on 0.3.2.6-alpha.
o Minor bugfixes (exit relay DNS retries):
- Re-attempt timed-out DNS queries 3 times before failure, since our
timeout is 5 seconds for them, but clients wait 10-15. Also allow
slightly more timeouts per resolver when an exit has multiple
resolvers configured. Fixes bug 21394; bugfix on 0.3.1.9.
o Minor bugfixes (fallback directory mirrors):
- Make updateFallbackDirs.py search harder for python. (Some OSs
don't put it in /usr/bin.) Fixes bug 24708; bugfix
on 0.2.8.1-alpha.
o Minor bugfixes (hibernation, bandwidth accounting, shutdown):
- When hibernating, close connections normally and allow them to
flush. Fixes bug 23571; bugfix on 0.2.4.7-alpha. Also fixes
bug 7267.
- Do not attempt to launch self-reachability tests when entering
hibernation. Fixes a case of bug 12062; bugfix on 0.0.9pre5.
- Resolve several bugs related to descriptor fetching on bridge
clients with bandwidth accounting enabled. (This combination is
not recommended!) Fixes a case of bug 12062; bugfix
on 0.2.0.3-alpha.
- When hibernating, do not attempt to launch DNS checks. Fixes a
case of bug 12062; bugfix on 0.1.2.2-alpha.
- When hibernating, do not try to upload or download descriptors.
Fixes a case of bug 12062; bugfix on 0.0.9pre5.
o Minor bugfixes (IPv6, bridges):
- Tor now always sets IPv6 preferences for bridges. Fixes bug 24573;
bugfix on 0.2.8.2-alpha.
- Tor now sets IPv6 address in the routerstatus as well as in the
router descriptors when updating addresses for a bridge. Closes
ticket 24572; bugfix on 0.2.4.5-alpha. Patch by "ffmancera".
o Minor bugfixes (Linux seccomp2 sandbox):
- When running with the sandbox enabled, reload configuration files
correctly even when %include was used. Previously we would crash.
Fixes bug 22605; bugfix on 0.3.1. Patch from Daniel Pinto.
o Minor bugfixes (Linux seccomp2 sandbox, backport from 0.3.4.1-alpha):
- Allow the nanosleep() system call, which glibc uses to implement
sleep() and usleep(). Fixes bug 24969; bugfix on 0.2.5.1-alpha.
o Minor bugfixes (logging):
- Fix a (mostly harmless) race condition when invoking
LOG_PROTOCOL_WARN message from a subthread while the torrc options
are changing. Fixes bug 23954; bugfix on 0.1.1.9-alpha.
o Minor bugfixes (man page, SocksPort):
- Remove dead code from the old "SocksSocket" option, and rename
SocksSocketsGroupWritable to UnixSocksGroupWritable. The old
option still works, but is deprecated. Fixes bug 24343; bugfix
on 0.2.6.3.
o Minor bugfixes (memory leaks):
- Avoid possible at-exit memory leaks related to use of Libevent's
event_base_once() function. (This function tends to leak memory if
the event_base is closed before the event fires.) Fixes bug 24584;
bugfix on 0.2.8.1-alpha.
- Fix a harmless memory leak in tor-resolve. Fixes bug 24582; bugfix
on 0.2.1.1-alpha.
o Minor bugfixes (network IPv6 test):
- Tor's test scripts now check if "ping -6 ::1" works when the user
runs "make test-network-all". Fixes bug 24677; bugfix on
0.2.9.3-alpha. Patch by "ffmancera".
o Minor bugfixes (networking):
- string_is_valid_hostname() will not consider IP strings to be
valid hostnames. Fixes bug 25055; bugfix on Tor 0.2.5.5.
o Minor bugfixes (onion service v3):
- Avoid an assertion failure when the next onion service descriptor
rotation type is out of sync with the consensus's valid-after
time. Instead, log a warning message with extra information, so we
can better hunt down the cause of this assertion. Fixes bug 25306;
bugfix on 0.3.2.1-alpha.
o Minor bugfixes (onion service, backport from 0.3.4.1-alpha):
- Fix a memory leak when a v3 onion service is configured and gets a
SIGHUP signal. Fixes bug 25901; bugfix on 0.3.2.1-alpha.
- When parsing the descriptor signature, look for the token plus an
extra white-space at the end. This is more correct but also will
allow us to support new fields that might start with "signature".
Fixes bug 26069; bugfix on 0.3.0.1-alpha.
o Minor bugfixes (onion services):
- If we are configured to offer a single onion service, don't log
long-term established one hop rendezvous points in the heartbeat.
Fixes bug 25116; bugfix on 0.2.9.6-rc.
o Minor bugfixes (performance):
- Reduce the number of circuits that will be opened at once during
the circuit build timeout phase. This is done by increasing the
idle timeout to 3 minutes, and lowering the maximum number of
concurrent learning circuits to 10. Fixes bug 24769; bugfix
on 0.3.1.1-alpha.
- Avoid calling protocol_list_supports_protocol() from inside tight
loops when running with cached routerinfo_t objects. Instead,
summarize the relevant protocols as flags in the routerinfo_t, as
we do for routerstatus_t objects. This change simplifies our code
a little, and saves a large amount of short-term memory allocation
operations. Fixes bug 25008; bugfix on 0.2.9.4-alpha.
o Minor bugfixes (performance, timeouts):
- Consider circuits for timeout as soon as they complete a hop. This
is more accurate than applying the timeout in
circuit_expire_building() because that function is only called
once per second, which is now too slow for typical timeouts on the
current network. Fixes bug 23114; bugfix on 0.2.2.2-alpha.
- Use onion service circuits (and other circuits longer than 3 hops)
to calculate a circuit build timeout. Previously, Tor only
calculated its build timeout based on circuits that planned to be
exactly 3 hops long. With this change, we include measurements
from all circuits at the point where they complete their third
hop. Fixes bug 23100; bugfix on 0.2.2.2-alpha.
o Minor bugfixes (relay, crash, backport from 0.3.4.1-alpha):
- Avoid a crash when running with DirPort set but ORPort tuned off.
Fixes a case of bug 23693; bugfix on 0.3.1.1-alpha.
o Minor bugfixes (Rust FFI):
- Fix a minor memory leak which would happen whenever the C code
would call the Rust implementation of
protover_get_supported_protocols(). This was due to the C version
returning a static string, whereas the Rust version newly allocated
a CString to pass accross the FFI boundary. Consequently, the C
code was not expecting to need to free() what it was given. Fixes
bug 25127; bugfix on 0.3.2.1-alpha.
o Minor bugfixes (spelling):
- Use the "misspell" tool to detect and fix typos throughout the
source code. Fixes bug 23650; bugfix on various versions of Tor.
Patch from Deepesh Pathak.
o Minor bugfixes (testing):
- Avoid intermittent test failures due to a test that had relied on
onion service introduction point creation finishing within 5
seconds of real clock time. Fixes bug 25450; bugfix
on 0.3.1.3-alpha.
- Give out Exit flags in bootstrapping networks. Fixes bug 24137;
bugfix on 0.2.3.1-alpha.
o Minor bugfixes (unit test, monotonic time):
- Increase a constant (1msec to 10msec) in the monotonic time test
that makes sure the nsec/usec/msec times read are synchronized.
This change was needed to accommodate slow systems like armel or
when the clock_gettime() is not a VDSO on the running kernel.
Fixes bug 25113; bugfix on 0.2.9.1.
o Code simplification and refactoring:
- Move the list of default directory authorities to its own file.
Closes ticket 24854. Patch by "beastr0".
- Remove the old (deterministic) directory retry logic entirely:
We've used exponential backoff exclusively for some time. Closes
ticket 23814.
- Remove the unused nodelist_recompute_all_hsdir_indices(). Closes
ticket 25108.
- Remove a series of counters used to track circuit extend attempts
and connection status but that in reality we aren't using for
anything other than stats logged by a SIGUSR1 signal. Closes
ticket 25163.
- Remove /usr/athena from search path in configure.ac. Closes
ticket 24363.
- Remove duplicate code in node_has_curve25519_onion_key() and
node_get_curve25519_onion_key(), and add a check for a zero
microdesc curve25519 onion key. Closes ticket 23966, patch by
"aruna1234" and teor.
- Rewrite channel_rsa_id_group_set_badness to reduce temporary
memory allocations with large numbers of OR connections (e.g.
relays). Closes ticket 24119.
- Separate the function that deletes ephemeral files when Tor
stops gracefully.
- Small changes to Tor's buf_t API to make it suitable for use as a
general-purpose safe string constructor. Closes ticket 22342.
- Switch -Wnormalized=id to -Wnormalized=nfkc in configure.ac to
avoid source code identifier confusion. Closes ticket 24467.
- The tor_git_revision[] constant no longer needs to be redeclared
by everything that links against the rest of Tor. Done as part of
ticket 23845, to simplify our external API.
- We make extend_info_from_node() use node_get_curve25519_onion_key()
introduced in ticket 23577 to access the curve25519 public keys
rather than accessing it directly. Closes ticket 23760. Patch by
Neel Chauhan.
- Add a function to log channels' scheduler state changes to aid
debugging efforts. Closes ticket 24531.
o Documentation:
- Improved the documentation of AccountingStart parameter. Closes
ticket 23635.
- Update the documentation for "Log" to include the current list of
logging domains. Closes ticket 25378.
- Add documentation on how to build tor with Rust dependencies
without having to be online. Closes ticket 22907; bugfix
on 0.3.0.3-alpha.
- Clarify the behavior of RelayBandwidth{Rate,Burst} with client
traffic. Closes ticket 24318.
- Document that OutboundBindAddress doesn't apply to DNS requests.
Closes ticket 22145. Patch from Aruna Maurya.
o Code simplification and refactoring (channels):
- Remove the incoming and outgoing channel queues. These were never
used, but still took up a step in our fast path.
- The majority of the channel unit tests have been rewritten and the
code coverage has now been raised to 83.6% for channel.c. Closes
ticket 23709.
- Remove other dead code from the channel subsystem: All together,
this cleanup has removed more than 1500 lines of code overall and
adding very little except for unit test.
o Code simplification and refactoring (circuit rendezvous):
- Split the client-side rendezvous circuit lookup into two
functions: one that returns only established circuits and another
that returns all kinds of circuits. Closes ticket 23459.
o Code simplification and refactoring (controller):
- Make most of the variables in networkstatus_getinfo_by_purpose()
const. Implements ticket 24489.
o Documentation (backport from 0.3.4.1-alpha):
- Correct an IPv6 error in the documentation for ExitPolicy. Closes
ticket 25857. Patch from "CTassisF".
o Documentation (man page):
- The HiddenServiceVersion torrc option accepts only one number:
either version 2 or 3. Closes ticket 25026; bugfix
on 0.3.2.2-alpha.
o Documentation (manpage, denial of service):
- Provide more detail about the denial-of-service options, by
listing each mitigation and explaining how they relate. Closes
ticket 25248.