tor-announce
Threads by month
- ----- 2025 -----
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- 2 participants
- 301 discussions
(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.1.7 is now available! This is the first
stable release in the 0.3.2.x series, and we hope you find it useful.
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 the end of the month.
=====
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.2.9 - 2018-01-09
Tor 0.3.2.9 is the first stable release in the 0.3.2 series.
The 0.3.2 series includes our long-anticipated new onion service
design, with numerous security features. (For more information, see
our blog post at https://blog.torproject.org/fall-harvest.) We also
have a new circuit scheduler algorithm for improved performance on
relays everywhere (see https://blog.torproject.org/kist-and-tell)
along with many smaller features and bugfixes.
Per our stable release policy, we plan to support each stable release
series for at least the next nine months, or for three months after
the first stable release of the next series: whichever is longer. If
you need a release with long-term support, we recommend that you stay
with the 0.2.9 series.
Below is a list of the changes since 0.3.1.7. For a list of all
changes since 0.3.2.8-rc, see the ChangeLog file.
o Directory authority changes:
- Add "Bastet" as a ninth directory authority to the default list.
Closes ticket 23910.
- The directory authority "Longclaw" has changed its IP address.
Closes ticket 23592.
- Remove longclaw's IPv6 address, as it will soon change. Authority
IPv6 addresses were originally added in 0.2.8.1-alpha. This leaves
3/8 directory authorities with IPv6 addresses, but there are also
52 fallback directory mirrors with IPv6 addresses. Resolves 19760.
- Add an IPv6 address for the "bastet" directory authority. Closes
ticket 24394.
o Major features (next-generation onion services):
- Tor now supports the next-generation onion services protocol for
clients and services! As part of this release, the core of
proposal 224 has been implemented and is available for
experimentation and testing by our users. This newer version of
onion services ("v3") features many improvements over the legacy
system, including:
a) Better crypto (replaced SHA1/DH/RSA1024
with SHA3/ed25519/curve25519)
b) Improved directory protocol, leaking much less information to
directory servers.
c) Improved directory protocol, with smaller surface for
targeted attacks.
d) Better onion address security against impersonation.
e) More extensible introduction/rendezvous protocol.
f) A cleaner and more modular codebase.
You can identify a next-generation onion address by its length:
they are 56 characters long, as in
"4acth47i6kxnvkewtm6q7ib2s3ufpo5sqbsnzjpbi7utijcltosqemad.onion".
In the future, we will release more options and features for v3
onion services, but we first need a testing period, so that the
current codebase matures and becomes more robust. Planned features
include: offline keys, advanced client authorization, improved
guard algorithms, and statistics. For full details, see
proposal 224.
Legacy ("v2") onion services will still work for the foreseeable
future, and will remain the default until this new codebase gets
tested and hardened. Service operators who want to experiment with
the new system can use the 'HiddenServiceVersion 3' torrc
directive along with the regular onion service configuration
options. For more information, see our blog post at
"https://blog.torproject.org/fall-harvest". Enjoy!
o Major feature (scheduler, channel):
- Tor now uses new schedulers to decide which circuits should
deliver cells first, in order to improve congestion at relays. The
first type is called "KIST" ("Kernel Informed Socket Transport"),
and is only available on Linux-like systems: it uses feedback from
the kernel to prevent the kernel's TCP buffers from growing too
full. The second new scheduler type is called "KISTLite": it
behaves the same as KIST, but runs on systems without kernel
support for inspecting TCP implementation details. The old
scheduler is still available, under the name "Vanilla". To change
the default scheduler preference order, use the new "Schedulers"
option. (The default preference order is "KIST,KISTLite,Vanilla".)
Matt Traudt implemented KIST, based on research by Rob Jansen,
John Geddes, Christ Wacek, Micah Sherr, and Paul Syverson. For
more information, see the design paper at
http://www.robgjansen.com/publications/kist-sec2014.pdf and the
followup implementation paper at https://arxiv.org/abs/1709.01044.
Closes ticket 12541. For more information, see our blog post at
"https://blog.torproject.org/kist-and-tell".
o Major bugfixes (security, general):
- Fix a denial of service bug where an attacker could use a
malformed directory object to cause a Tor instance to pause while
OpenSSL would try to read a passphrase from the terminal. (Tor
instances run without a terminal, which is the case for most Tor
packages, are not impacted.) Fixes bug 24246; bugfix on every
version of Tor. Also tracked as TROVE-2017-011 and CVE-2017-8821.
Found by OSS-Fuzz as testcase 6360145429790720.
o Major bugfixes (security, directory authority):
- Fix a denial of service issue where an attacker could crash a
directory authority using a malformed router descriptor. Fixes bug
24245; bugfix on 0.2.9.4-alpha. Also tracked as TROVE-2017-010
and CVE-2017-8820.
o Major bugfixes (security, onion service v2):
- Fix a use-after-free error that could crash v2 Tor onion services
when they failed to open circuits while expiring introduction
points. Fixes bug 24313; bugfix on 0.2.7.2-alpha. This issue is
also tracked as TROVE-2017-013 and CVE-2017-8823.
- When checking for replays in the INTRODUCE1 cell data for a
(legacy) onion service, correctly detect replays in the RSA-
encrypted part of the cell. We were previously checking for
replays on the entire cell, but those can be circumvented due to
the malleability of Tor's legacy hybrid encryption. This fix helps
prevent a traffic confirmation attack. Fixes bug 24244; bugfix on
0.2.4.1-alpha. This issue is also tracked as TROVE-2017-009
and CVE-2017-8819.
o Major bugfixes (security, relay):
- When running as a relay, make sure that we never build a path
through ourselves, even in the case where we have somehow lost the
version of our descriptor appearing in the consensus. Fixes part
of bug 21534; bugfix on 0.2.0.1-alpha. This issue is also tracked
as TROVE-2017-012 and CVE-2017-8822.
- When running as a relay, make sure that we never choose ourselves
as a guard. Fixes part of bug 21534; bugfix on 0.3.0.1-alpha. This
issue is also tracked as TROVE-2017-012 and CVE-2017-8822.
o Major bugfixes (bootstrapping):
- Fetch descriptors aggressively whenever we lack enough to build
circuits, regardless of how many descriptors we are missing.
Previously, we would delay launching the fetch when we had fewer
than 15 missing descriptors, even if some of those descriptors
were blocking circuits from building. Fixes bug 23985; bugfix on
0.1.1.11-alpha. The effects of this bug became worse in
0.3.0.3-alpha, when we began treating missing descriptors from our
primary guards as a reason to delay circuits.
- Don't try fetching microdescriptors from relays that have failed
to deliver them in the past. Fixes bug 23817; bugfix
on 0.3.0.1-alpha.
o Major bugfixes (circuit prediction):
- Fix circuit prediction logic so that a client doesn't treat a port
as being "handled" by a circuit if that circuit already has
isolation settings on it. This change should make Tor clients more
responsive by improving their chances of having a pre-created
circuit ready for use when a request arrives. Fixes bug 18859;
bugfix on 0.2.3.3-alpha.
o Major bugfixes (exit relays, DNS):
- Fix an issue causing DNS to fail on high-bandwidth exit nodes,
making them nearly unusable. Fixes bugs 21394 and 18580; bugfix on
0.1.2.2-alpha, which introduced eventdns. Thanks to Dhalgren for
identifying and finding a workaround to this bug and to Moritz,
Arthur Edelstein, and Roger for helping to track it down and
analyze it.
o Major bugfixes (relay, crash, assertion failure):
- Fix a timing-based assertion failure that could occur when the
circuit out-of-memory handler freed a connection's output buffer.
Fixes bug 23690; bugfix on 0.2.6.1-alpha.
o Major bugfixes (usability, control port):
- Report trusted clock skew indications as bootstrap errors, so
controllers can more easily alert users when their clocks are
wrong. Fixes bug 23506; bugfix on 0.1.2.6-alpha.
o Minor features (bridge):
- Bridge relays can now set the BridgeDistribution config option to
add a "bridge-distribution-request" line to their bridge
descriptor, which tells BridgeDB how they'd like their bridge
address to be given out. (Note that as of Oct 2017, BridgeDB does
not yet implement this feature.) As a side benefit, this feature
provides a way to distinguish bridge descriptors from non-bridge
descriptors. Implements tickets 18329.
- When handling the USERADDR command on an ExtOrPort, warn when the
transports provides a USERADDR with no port. In a future version,
USERADDR commands of this format may be rejected. Detects problems
related to ticket 23080.
o Minor features (bug detection):
- Log a warning message with a stack trace for any attempt to call
get_options() during option validation. This pattern has caused
subtle bugs in the past. Closes ticket 22281.
o Minor features (build, compilation):
- The "check-changes" feature is now part of the "make check" tests;
we'll use it to try to prevent misformed changes files from
accumulating. Closes ticket 23564.
- Tor builds should now fail if there are any mismatches between the
C type representing a configuration variable and the C type the
data-driven parser uses to store a value there. Previously, we
needed to check these by hand, which sometimes led to mistakes.
Closes ticket 23643.
o Minor features (client):
- You can now use Tor as a tunneled HTTP proxy: use the new
HTTPTunnelPort option to open a port that accepts HTTP CONNECT
requests. Closes ticket 22407.
- Add an extra check to make sure that we always use the newer guard
selection code for picking our guards. Closes ticket 22779.
- When downloading (micro)descriptors, don't split the list into
multiple requests unless we want at least 32 descriptors.
Previously, we split at 4, not 32, which led to significant
overhead in HTTP request size and degradation in compression
performance. Closes ticket 23220.
- Improve log messages when missing descriptors for primary guards.
Resolves ticket 23670.
o Minor features (command line):
- Add a new commandline option, --key-expiration, which prints when
the current signing key is going to expire. Implements ticket
17639; patch by Isis Lovecruft.
o Minor features (control port):
- If an application tries to use the control port as an HTTP proxy,
respond with a meaningful "This is the Tor control port" message,
and log the event. Closes ticket 1667. Patch from Ravi
Chandra Padmala.
- Provide better error message for GETINFO desc/(id|name) when not
fetching router descriptors. Closes ticket 5847. Patch by
Kevin Butler.
- Add GETINFO "{desc,md}/download-enabled", to inform the controller
whether Tor will try to download router descriptors and
microdescriptors respectively. Closes ticket 22684.
- Added new GETINFO targets "ip-to-country/{ipv4,ipv6}-available",
so controllers can tell whether the geoip databases are loaded.
Closes ticket 23237.
- Adds a timestamp field to the CIRC_BW and STREAM_BW bandwidth
events. Closes ticket 19254. Patch by "DonnchaC".
o Minor features (development support):
- Developers can now generate a call-graph for Tor using the
"calltool" python program, which post-processes object dumps. It
should work okay on many Linux and OSX platforms, and might work
elsewhere too. To run it, install calltool from
https://gitweb.torproject.org/user/nickm/calltool.git and run
"make callgraph". Closes ticket 19307.
o Minor features (directory authority):
- Make the "Exit" flag assignment only depend on whether the exit
policy allows connections to ports 80 and 443. Previously relays
would get the Exit flag if they allowed connections to one of
these ports and also port 6667. Resolves ticket 23637.
o Minor features (ed25519):
- Add validation function to checks for torsion components in
ed25519 public keys, used by prop224 client-side code. Closes
ticket 22006. Math help by Ian Goldberg.
o Minor features (exit relay, DNS):
- Improve the clarity and safety of the log message from evdns when
receiving an apparently spoofed DNS reply. Closes ticket 3056.
o Minor features (fallback directory mirrors):
- The fallback directory list has been re-generated based on the
current status of the network. Tor uses fallback directories to
bootstrap when it doesn't yet have up-to-date directory
information. Closes ticket 24801.
- Make the default DirAuthorityFallbackRate 0.1, so that clients
prefer to bootstrap from fallback directory mirrors. This is a
follow-up to 24679, which removed weights from the default
fallbacks. Implements ticket 24681.
o Minor features (geoip):
- Update geoip and geoip6 to the January 5 2018 Maxmind GeoLite2
Country database.
o Minor features (integration, hardening):
- Add a new NoExec option to prevent Tor from running other
programs. When this option is set to 1, Tor will never try to run
another program, regardless of the settings of
PortForwardingHelper, ClientTransportPlugin, or
ServerTransportPlugin. Once NoExec is set, it cannot be disabled
without restarting Tor. Closes ticket 22976.
o Minor features (linux seccomp2 sandbox):
- Update the sandbox rules so that they should now work correctly
with Glibc 2.26. Closes ticket 24315.
o Minor features (logging):
- Provide better warnings when the getrandom() syscall fails. Closes
ticket 24500.
- Downgrade a pair of log messages that could occur when an exit's
resolver gave us an unusual (but not forbidden) response. Closes
ticket 24097.
- Improve the message we log when re-enabling circuit build timeouts
after having received a consensus. Closes ticket 20963.
- Log more circuit information whenever we are about to try to
package a relay cell on a circuit with a nonexistent n_chan.
Attempt to diagnose ticket 8185.
- Improve info-level log identification of particular circuits, to
help with debugging. Closes ticket 23645.
- Improve the warning message for specifying a relay by nickname.
The previous message implied that nickname registration was still
part of the Tor network design, which it isn't. Closes
ticket 20488.
- If the sandbox filter fails to load, suggest to the user that
their kernel might not support seccomp2. Closes ticket 23090.
o Minor features (onion service, circuit, logging):
- Improve logging of many callsite in the circuit subsystem to print
the circuit identifier(s).
- Log when we cleanup an intro point from a service so we know when
and for what reason it happened. Closes ticket 23604.
o Minor features (portability):
- Tor now compiles correctly on arm64 with libseccomp-dev installed.
(It doesn't yet work with the sandbox enabled.) Closes
ticket 24424.
- Check at configure time whether uint8_t is the same type as
unsigned char. Lots of existing code already makes this
assumption, and there could be strict aliasing issues if the
assumption is violated. Closes ticket 22410.
o Minor features (relay):
- When choosing which circuits can be expired as unused, consider
circuits from clients even if those clients used regular CREATE
cells to make them; and do not consider circuits from relays even
if they were made with CREATE_FAST. Part of ticket 22805.
- Reject attempts to use relative file paths when RunAsDaemon is
set. Previously, Tor would accept these, but the directory-
changing step of RunAsDaemon would give strange and/or confusing
results. Closes ticket 22731.
o Minor features (relay statistics):
- Change relay bandwidth reporting stats interval from 4 hours to 24
hours in order to reduce the efficiency of guard discovery
attacks. Fixes ticket 23856.
o Minor features (reverted deprecations):
- The ClientDNSRejectInternalAddresses flag can once again be set in
non-testing Tor networks, so long as they do not use the default
directory authorities. This change also removes the deprecation of
this flag from 0.2.9.2-alpha. Closes ticket 21031.
o Minor features (robustness):
- Change several fatal assertions when flushing buffers into non-
fatal assertions, to prevent any recurrence of 23690.
o Minor features (startup, safety):
- When configured to write a PID file, Tor now exits if it is unable
to do so. Previously, it would warn and continue. Closes
ticket 20119.
o Minor features (static analysis):
- The BUG() macro has been changed slightly so that Coverity no
longer complains about dead code if the bug is impossible. Closes
ticket 23054.
o Minor features (testing):
- Our fuzzing tests now test the encrypted portions of v3 onion
service descriptors. Implements more of 21509.
- Add a unit test to make sure that our own generated platform
string will be accepted by directory authorities. Closes
ticket 22109.
- The default chutney network tests now include tests for the v3
onion service design. Make sure you have the latest version of
chutney if you want to run these. Closes ticket 22437.
- Add a unit test to verify that we can parse a hardcoded v2 onion
service descriptor. Closes ticket 15554.
o Minor bugfixes (address selection):
- When the fascist_firewall_choose_address_ functions don't find a
reachable address, set the returned address to the null address
and port. This is a precautionary measure, because some callers do
not check the return value. Fixes bug 24736; bugfix
on 0.2.8.2-alpha.
o Minor bugfixes (bootstrapping):
- When warning about state file clock skew, report the correct
direction for the detected skew. Fixes bug 23606; bugfix
on 0.2.8.1-alpha.
o Minor bugfixes (bridge clients, bootstrap):
- Retry directory downloads when we get our first bridge descriptor
during bootstrap or while reconnecting to the network. Keep
retrying every time we get a bridge descriptor, until we have a
reachable bridge. Fixes part of bug 24367; bugfix on 0.2.0.3-alpha.
- Stop delaying bridge descriptor fetches when we have cached bridge
descriptors. Instead, only delay bridge descriptor fetches when we
have at least one reachable bridge. Fixes part of bug 24367;
bugfix on 0.2.0.3-alpha.
- Stop delaying directory fetches when we have cached bridge
descriptors. Instead, only delay bridge descriptor fetches when
all our bridges are definitely unreachable. Fixes part of bug
24367; bugfix on 0.2.0.3-alpha.
o Minor bugfixes (bridge):
- Overwrite the bridge address earlier in the process of retrieving
its descriptor, to make sure we reach it on the configured
address. Fixes bug 20532; bugfix on 0.2.0.10-alpha.
o Minor bugfixes (build, compilation):
- Fix a compilation warning when building with zstd support on
32-bit platforms. Fixes bug 23568; bugfix on 0.3.1.1-alpha. Found
and fixed by Andreas Stieger.
- When searching for OpenSSL, don't accept any OpenSSL library that
lacks TLSv1_1_method(): Tor doesn't build with those versions.
Additionally, look in /usr/local/opt/openssl, if it's present.
These changes together repair the default build on OSX systems
with Homebrew installed. Fixes bug 23602; bugfix on 0.2.7.2-alpha.
- Fix a signed/unsigned comparison warning introduced by our fix to
TROVE-2017-009. Fixes bug 24480; bugfix on 0.2.5.16.
- Fix a memory leak warning in one of the libevent-related
configuration tests that could occur when manually specifying
-fsanitize=address. Fixes bug 24279; bugfix on 0.3.0.2-alpha.
Found and patched by Alex Xu.
- Fix unused-variable warnings in donna's Curve25519 SSE2 code.
Fixes bug 22895; bugfix on 0.2.7.2-alpha.
o Minor bugfixes (certificate handling):
- Fix a time handling bug in Tor certificates set to expire after
the year 2106. Fixes bug 23055; bugfix on 0.3.0.1-alpha. Found by
Coverity as CID 1415728.
o Minor bugfixes (client):
- By default, do not enable storage of client-side DNS values. These
values were unused by default previously, but they should not have
been cached at all. Fixes bug 24050; bugfix on 0.2.6.3-alpha.
o Minor bugfixes (client, usability):
- Refrain from needlessly rejecting SOCKS5-with-hostnames and
SOCKS4a requests that contain IP address strings, even when
SafeSocks in enabled, as this prevents user from connecting to
known IP addresses without relying on DNS for resolving. SafeSocks
still rejects SOCKS connections that connect to IP addresses when
those addresses are _not_ encoded as hostnames. Fixes bug 22461;
bugfix on Tor 0.2.6.2-alpha.
o Minor bugfixes (code correctness):
- Call htons() in extend_cell_format() for encoding a 16-bit value.
Previously we used ntohs(), which happens to behave the same on
all the platforms we support, but which isn't really correct.
Fixes bug 23106; bugfix on 0.2.4.8-alpha.
- For defense-in-depth, make the controller's write_escaped_data()
function robust to extremely long inputs. Fixes bug 19281; bugfix
on 0.1.1.1-alpha. Reported by Guido Vranken.
- Fix several places in our codebase where a C compiler would be
likely to eliminate a check, based on assuming that undefined
behavior had not happened elsewhere in the code. These cases are
usually a sign of redundant checking or dubious arithmetic. Found
by Georg Koppen using the "STACK" tool from Wang, Zeldovich,
Kaashoek, and Solar-Lezama. Fixes bug 24423; bugfix on various
Tor versions.
o Minor bugfixes (compression):
- Handle a pathological case when decompressing Zstandard data when
the output buffer size is zero. Fixes bug 23551; bugfix
on 0.3.1.1-alpha.
o Minor bugfixes (consensus expiry):
- Check for adequate directory information correctly. Previously, Tor
would reconsider whether it had sufficient directory information
every 2 minutes. Fixes bug 23091; bugfix on 0.2.0.19-alpha.
o Minor bugfixes (control port, linux seccomp2 sandbox):
- Avoid a crash when attempting to use the seccomp2 sandbox together
with the OwningControllerProcess feature. Fixes bug 24198; bugfix
on 0.2.5.1-alpha.
o Minor bugfixes (control port, onion services):
- Report "FAILED" instead of "UPLOAD_FAILED" "FAILED" for the
HS_DESC event when a service is not able to upload a descriptor.
Fixes bug 24230; bugfix on 0.2.7.1-alpha.
o Minor bugfixes (directory cache):
- Recover better from empty or corrupt files in the consensus cache
directory. Fixes bug 24099; bugfix on 0.3.1.1-alpha.
- When a consensus diff calculation is only partially successful,
only record the successful parts as having succeeded. Partial
success can happen if (for example) one compression method fails
but the others succeed. Previously we misrecorded all the
calculations as having succeeded, which would later cause a
nonfatal assertion failure. Fixes bug 24086; bugfix
on 0.3.1.1-alpha.
o Minor bugfixes (directory client):
- On failure to download directory information, delay retry attempts
by a random amount based on the "decorrelated jitter" algorithm.
Our previous delay algorithm tended to produce extra-long delays
too easily. Fixes bug 23816; bugfix on 0.2.9.1-alpha.
o Minor bugfixes (directory protocol):
- Directory servers now include a "Date:" http header for response
codes other than 200. Clients starting with a skewed clock and a
recent consensus were getting "304 Not modified" responses from
directory authorities, so without the Date header, the client
would never hear about a wrong clock. Fixes bug 23499; bugfix
on 0.0.8rc1.
- Make clients wait for 6 seconds before trying to download a
consensus from an authority. Fixes bug 17750; bugfix
on 0.2.8.1-alpha.
o Minor bugfixes (documentation):
- Document better how to read gcov, and what our gcov postprocessing
scripts do. Fixes bug 23739; bugfix on 0.2.9.1-alpha.
- Fix manpage to not refer to the obsolete (and misspelled)
UseEntryGuardsAsDirectoryGuards parameter in the description of
NumDirectoryGuards. Fixes bug 23611; bugfix on 0.2.4.8-alpha.
o Minor bugfixes (DoS-resistance):
- If future code asks if there are any running bridges, without
checking if bridges are enabled, log a BUG warning rather than
crashing. Fixes bug 23524; bugfix on 0.3.0.1-alpha.
o Minor bugfixes (entry guards):
- Tor now updates its guard state when it reads a consensus
regardless of whether it's missing descriptors. That makes tor use
its primary guards to fetch descriptors in some edge cases where
it would previously have used fallback directories. Fixes bug
23862; bugfix on 0.3.0.1-alpha.
o Minor bugfixes (format strictness):
- Restrict several data formats to decimal. Previously, the
BuildTimeHistogram entries in the state file, the "bw=" entries in
the bandwidth authority file, and the process IDs passed to the
__OwningControllerProcess option could all be specified in hex or
octal as well as in decimal. This was not an intentional feature.
Fixes bug 22802; bugfixes on 0.2.2.1-alpha, 0.2.2.2-alpha,
and 0.2.2.28-beta.
o Minor bugfixes (heartbeat):
- If we fail to write a heartbeat message, schedule a retry for the
minimum heartbeat interval number of seconds in the future. Fixes
bug 19476; bugfix on 0.2.3.1-alpha.
o Minor bugfixes (logging):
- Suppress a log notice when relay descriptors arrive. We already
have a bootstrap progress for this so no need to log notice
everytime tor receives relay descriptors. Microdescriptors behave
the same. Fixes bug 23861; bugfix on 0.2.8.2-alpha.
- Remove duplicate log messages regarding opening non-local
SocksPorts upon parsing config and opening listeners at startup.
Fixes bug 4019; bugfix on 0.2.3.3-alpha.
- Use a more comprehensible log message when telling the user
they've excluded every running exit node. Fixes bug 7890; bugfix
on 0.2.2.25-alpha.
- When logging the number of descriptors we intend to download per
directory request, do not log a number higher than then the number
of descriptors we're fetching in total. Fixes bug 19648; bugfix
on 0.1.1.8-alpha.
- When warning about a directory owned by the wrong user, log the
actual name of the user owning the directory. Previously, we'd log
the name of the process owner twice. Fixes bug 23487; bugfix
on 0.2.9.1-alpha.
- Fix some messages on unexpected errors from the seccomp2 library.
Fixes bug 22750; bugfix on 0.2.5.1-alpha. Patch from "cypherpunks".
- The tor specification says hop counts are 1-based, so fix two log
messages that mistakenly logged 0-based hop counts. Fixes bug
18982; bugfix on 0.2.6.2-alpha and 0.2.4.5-alpha. Patch by teor.
Credit to Xiaofan Li for reporting this issue.
o Minor bugfixes (logging, relay shutdown, annoyance):
- When a circuit is marked for close, do not attempt to package any
cells for channels on that circuit. Previously, we would detect
this condition lower in the call stack, when we noticed that the
circuit had no attached channel, and log an annoying message.
Fixes bug 8185; bugfix on 0.2.5.4-alpha.
o Minor bugfixes (memory safety, defensive programming):
- Clear the target address when node_get_prim_orport() returns
early. Fixes bug 23874; bugfix on 0.2.8.2-alpha.
o Minor bugfixes (memory usage):
- When queuing DESTROY cells on a channel, only queue the circuit-id
and reason fields: not the entire 514-byte cell. This fix should
help mitigate any bugs or attacks that fill up these queues, and
free more RAM for other uses. Fixes bug 24666; bugfix
on 0.2.5.1-alpha.
o Minor bugfixes (network layer):
- When closing a connection via close_connection_immediately(), we
mark it as "not blocked on bandwidth", to prevent later calls from
trying to unblock it, and give it permission to read. This fixes a
backtrace warning that can happen on relays under various
circumstances. Fixes bug 24167; bugfix on 0.1.0.1-rc.
o Minor bugfixes (onion services):
- The introduction circuit was being timed out too quickly while
waiting for the rendezvous circuit to complete. Keep the intro
circuit around longer instead of timing out and reopening new ones
constantly. Fixes bug 23681; bugfix on 0.2.4.8-alpha.
- Rename the consensus parameter "hsdir-interval" to "hsdir_interval"
so it matches dir-spec.txt. Fixes bug 24262; bugfix
on 0.3.1.1-alpha.
- When handling multiple SOCKS request for the same .onion address,
only fetch the service descriptor once.
- Avoid a possible double close of a circuit by the intro point on
error of sending the INTRO_ESTABLISHED cell. Fixes bug 23610;
bugfix on 0.3.0.1-alpha.
- When reloading configured onion services, copy all information
from the old service object. Previously, some data was omitted,
causing delays in descriptor upload, and other bugs. Fixes bug
23790; bugfix on 0.2.1.9-alpha.
o Minor bugfixes (path selection):
- When selecting relays by bandwidth, avoid a rounding error that
could sometimes cause load to be imbalanced incorrectly.
Previously, we would always round upwards; now, we round towards
the nearest integer. This had the biggest effect when a relay's
weight adjustments should have given it weight 0, but it got
weight 1 instead. Fixes bug 23318; bugfix on 0.2.4.3-alpha.
- When calculating the fraction of nodes that have descriptors, and
all nodes in the network have zero bandwidths, count the number of
nodes instead. Fixes bug 23318; bugfix on 0.2.4.10-alpha.
- Actually log the total bandwidth in compute_weighted_bandwidths().
Fixes bug 24170; bugfix on 0.2.4.3-alpha.
o Minor bugfixes (portability):
- Stop using the PATH_MAX variable, which is not defined on GNU
Hurd. Fixes bug 23098; bugfix on 0.3.1.1-alpha.
- Fix a bug in the bit-counting parts of our timing-wheel code on
MSVC. (Note that MSVC is still not a supported build platform, due
to cyptographic timing channel risks.) Fixes bug 24633; bugfix
on 0.2.9.1-alpha.
o Minor bugfixes (relay):
- When uploading our descriptor for the first time after startup,
report the reason for uploading as "Tor just started" rather than
leaving it blank. Fixes bug 22885; bugfix on 0.2.3.4-alpha.
- Avoid unnecessary calls to directory_fetches_from_authorities() on
relays, to prevent spurious address resolutions and descriptor
rebuilds. This is a mitigation for bug 21789. Fixes bug 23470;
bugfix on in 0.2.8.1-alpha.
- Avoid a crash when transitioning from client mode to bridge mode.
Previously, we would launch the worker threads whenever our
"public server" mode changed, but not when our "server" mode
changed. Fixes bug 23693; bugfix on 0.2.6.3-alpha.
o Minor bugfixes (testing):
- Fix a spurious fuzzing-only use of an uninitialized value. Found
by Brian Carpenter. Fixes bug 24082; bugfix on 0.3.0.3-alpha.
- Test that IPv6-only clients can use microdescriptors when running
"make test-network-all". Requires chutney master 61c28b9 or later.
Closes ticket 24109.
- Prevent scripts/test/coverage from attempting to move gcov output
to the root directory. Fixes bug 23741; bugfix on 0.2.5.1-alpha.
- Capture and detect several "Result does not fit" warnings in unit
tests on platforms with 32-bit time_t. Fixes bug 21800; bugfix
on 0.2.9.3-alpha.
- Fix additional channelpadding unit test failures by using mocked
time instead of actual time for all tests. Fixes bug 23608; bugfix
on 0.3.1.1-alpha.
- Fix a bug in our fuzzing mock replacement for crypto_pk_checksig(),
to correctly handle cases where a caller gives it an RSA key of
under 160 bits. (This is not actually a bug in Tor itself, but
rather in our fuzzing code.) Fixes bug 24247; bugfix on
0.3.0.3-alpha. Found by OSS-Fuzz as issue 4177.
- Fix a broken unit test for the OutboundAddress option: the parsing
function was never returning an error on failure. Fixes bug 23366;
bugfix on 0.3.0.3-alpha.
- Fix a signed-integer overflow in the unit tests for
dir/download_status_random_backoff, which was untriggered until we
fixed bug 17750. Fixes bug 22924; bugfix on 0.2.9.1-alpha.
o Minor bugfixes (usability, control port):
- Stop making an unnecessary routerlist check in NETINFO clock skew
detection; this was preventing clients from reporting NETINFO clock
skew to controllers. Fixes bug 23532; bugfix on 0.2.4.4-alpha.
o Code simplification and refactoring:
- Remove various ways of testing circuits and connections for
"clientness"; instead, favor channel_is_client(). Part of
ticket 22805.
- Extract the code for handling newly-open channels into a separate
function from the general code to handle channel state
transitions. This change simplifies our callgraph, reducing the
size of the largest strongly connected component by roughly a
factor of two. Closes ticket 22608.
- Remove dead code for largely unused statistics on the number of
times we've attempted various public key operations. Fixes bug
19871; bugfix on 0.1.2.4-alpha. Fix by Isis Lovecruft.
- Remove several now-obsolete functions for asking about old
variants directory authority status. Closes ticket 22311; patch
from "huyvq".
- Remove some of the code that once supported "Named" and "Unnamed"
routers. Authorities no longer vote for these flags. Closes
ticket 22215.
- Rename the obsolete malleable hybrid_encrypt functions used in TAP
and old hidden services, to indicate that they aren't suitable for
new protocols or formats. Closes ticket 23026.
- Replace our STRUCT_OFFSET() macro with offsetof(). Closes ticket
22521. Patch from Neel Chauhan.
- Split the enormous circuit_send_next_onion_skin() function into
multiple subfunctions. Closes ticket 22804.
- Split the portions of the buffer.c module that handle particular
protocols into separate modules. Part of ticket 23149.
- Use our test macros more consistently, to produce more useful
error messages when our unit tests fail. Add coccinelle patches to
allow us to re-check for test macro uses. Closes ticket 22497.
o Deprecated features:
- The ReachableDirAddresses and ClientPreferIPv6DirPort options are
now deprecated; they do not apply to relays, and they have had no
effect on clients since 0.2.8.x. Closes ticket 19704.
- Deprecate HTTPProxy/HTTPProxyAuthenticator config options. They
only applies to direct unencrypted HTTP connections to your
directory server, which your Tor probably isn't using. Closes
ticket 20575.
o Documentation:
- Add notes in man page regarding OS support for the various
scheduler types. Attempt to use less jargon in the scheduler
section. Closes ticket 24254.
- Clarify that the Address option is entirely about setting an
advertised IPv4 address. Closes ticket 18891.
- Clarify the manpage's use of the term "address" to clarify what
kind of address is intended. Closes ticket 21405.
- Document that onion service subdomains are allowed, and ignored.
Closes ticket 18736.
- Clarify in the manual that "Sandbox 1" is only supported on Linux
kernels. Closes ticket 22677.
- Document all values of PublishServerDescriptor in the manpage.
Closes ticket 15645.
- Improve the documentation for the directory port part of the
DirAuthority line. Closes ticket 20152.
- Restore documentation for the authorities' "approved-routers"
file. Closes ticket 21148.
o Removed features:
- The AllowDotExit option has been removed as unsafe. It has been
deprecated since 0.2.9.2-alpha. Closes ticket 23426.
- The ClientDNSRejectInternalAddresses flag can no longer be set on
non-testing networks. It has been deprecated since 0.2.9.2-alpha.
Closes ticket 21031.
- The controller API no longer includes an AUTHDIR_NEWDESCS event:
nobody was using it any longer. Closes ticket 22377.
1
1
Tor Browser 7.0.11 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/7.0.11/
This release features important security updates [3] to Firefox and
fixes vulnerabilities [4] in Tor. All users are encouraged to update as
soon as possible.
3: https://www.mozilla.org/en-US/security/advisories/mfsa2017-28/
4: https://blog.torproject.org/new-stable-tor-releases-security-fixes-0319-030…
This release updates Firefox to version 52.5.2esr and Tor to version
version 0.3.1.9. In addition to that we updated the HTTPS Everywhere
and NoScript extensions we ship.
The full changelog since Tor Browser 7.0.10 is:
* All Platforms
* Update Firefox to 52.5.2esr
* Update Tor to 0.3.1.9
* Update HTTPS-Everywhere to 2017.12.6
* Update NoScript to 5.1.8.1
1
0

New security releases: 0.2.5.16, 0.2.8.17, 0.2.9.14, 0.3.0.13, 0.3.1.9, (and 0.3.2.6-alpha)
by Nick Mathewson 01 Dec '17
by Nick Mathewson 01 Dec '17
01 Dec '17
There are new releases of Tor to fix several security issues.
If you build Tor from source code, you can download them from the
download page on the website. If you need an older release series, go
to https://dist.torproject.org/ .
For users who do not build from source: packages should be available
soon. All users should upgrade when possible.
These releases fix the following security bugs. For more information
on each one, see the links from
https://trac.torproject.org/projects/tor/wiki/TROVE
TROVE-2017-009: Replay-cache ineffective for v2 onion services
TROVE-2017-010: Remote DoS attack against directory authorities
TROVE-2017-011: An attacker can make Tor ask for a password
TROVE-2017-012: Relays can pick themselves in a circuit path
TROVE-2017-013: Use-after-free in onion service v2
Remember that the following release series are approaching end-of-life:
0.2.8 on 1 Jan 2018
0.3.0 on 26 Jan 2018
0.2.5 on 1 May 2018
If you need to package a release series with long term support, stick
to 0.2.9.x. Otherwise, please stay up-to-date with the latest stable
release series (or with the alphas, if you are feeling brave and you
like reporting bugs).
Below are the changelogs for today's stable releases: the alpha
changelog will be sent to tor-talk as usual.
Changes in version 0.3.1.9 - 2017-12-01:
Tor 0.3.1.9 backports important security and stability fixes from the
0.3.2 development series. All Tor users should upgrade to this
release, or to another of the releases coming out today.
o Major bugfixes (security, backport from 0.3.2.6-alpha):
- Fix a denial of service bug where an attacker could use a
malformed directory object to cause a Tor instance to pause while
OpenSSL would try to read a passphrase from the terminal. (Tor
instances run without a terminal, which is the case for most Tor
packages, are not impacted.) Fixes bug 24246; bugfix on every
version of Tor. Also tracked as TROVE-2017-011 and CVE-2017-8821.
Found by OSS-Fuzz as testcase 6360145429790720.
- Fix a denial of service issue where an attacker could crash a
directory authority using a malformed router descriptor. Fixes bug
24245; bugfix on 0.2.9.4-alpha. Also tracked as TROVE-2017-010
and CVE-2017-8820.
- When checking for replays in the INTRODUCE1 cell data for a
(legacy) onion service, correctly detect replays in the RSA-
encrypted part of the cell. We were previously checking for
replays on the entire cell, but those can be circumvented due to
the malleability of Tor's legacy hybrid encryption. This fix helps
prevent a traffic confirmation attack. Fixes bug 24244; bugfix on
0.2.4.1-alpha. This issue is also tracked as TROVE-2017-009
and CVE-2017-8819.
o Major bugfixes (security, onion service v2, backport from 0.3.2.6-alpha):
- Fix a use-after-free error that could crash v2 Tor onion services
when they failed to open circuits while expiring introduction
points. Fixes bug 24313; bugfix on 0.2.7.2-alpha. This issue is
also tracked as TROVE-2017-013 and CVE-2017-8823.
o Major bugfixes (security, relay, backport from 0.3.2.6-alpha):
- When running as a relay, make sure that we never build a path
through ourselves, even in the case where we have somehow lost the
version of our descriptor appearing in the consensus. Fixes part
of bug 21534; bugfix on 0.2.0.1-alpha. This issue is also tracked
as TROVE-2017-012 and CVE-2017-8822.
- When running as a relay, make sure that we never choose ourselves
as a guard. Fixes part of bug 21534; bugfix on 0.3.0.1-alpha. This
issue is also tracked as TROVE-2017-012 and CVE-2017-8822.
o Major bugfixes (exit relays, DNS, backport from 0.3.2.4-alpha):
- Fix an issue causing DNS to fail on high-bandwidth exit nodes,
making them nearly unusable. Fixes bugs 21394 and 18580; bugfix on
0.1.2.2-alpha, which introduced eventdns. Thanks to Dhalgren for
identifying and finding a workaround to this bug and to Moritz,
Arthur Edelstein, and Roger for helping to track it down and
analyze it.
o Minor features (bridge):
- Bridges now include notice in their descriptors that they are
bridges, and notice of their distribution status, based on their
publication settings. Implements ticket 18329. For more fine-
grained control of how a bridge is distributed, upgrade to 0.3.2.x
or later.
o Minor features (directory authority, backport from 0.3.2.6-alpha):
- Add an IPv6 address for the "bastet" directory authority. Closes
ticket 24394.
o Minor features (geoip):
- Update geoip and geoip6 to the November 6 2017 Maxmind GeoLite2
Country database.
o Minor bugfix (relay address resolution, backport from 0.3.2.1-alpha):
- Avoid unnecessary calls to directory_fetches_from_authorities() on
relays, to prevent spurious address resolutions and descriptor
rebuilds. This is a mitigation for bug 21789. Fixes bug 23470;
bugfix on in 0.2.8.1-alpha.
o Minor bugfixes (compilation, backport from 0.3.2.1-alpha):
- Fix unused variable warnings in donna's Curve25519 SSE2 code.
Fixes bug 22895; bugfix on 0.2.7.2-alpha.
o Minor bugfixes (logging, relay shutdown, annoyance, backport from
0.3.2.2-alpha):
- When a circuit is marked for close, do not attempt to package any
cells for channels on that circuit. Previously, we would detect
this condition lower in the call stack, when we noticed that the
circuit had no attached channel, and log an annoying message.
Fixes bug 8185; bugfix on 0.2.5.4-alpha.
o Minor bugfixes (onion service, backport from 0.3.2.5-alpha):
- Rename the consensus parameter "hsdir-interval" to "hsdir_interval"
so it matches dir-spec.txt. Fixes bug 24262; bugfix
on 0.3.1.1-alpha.
o Minor bugfixes (relay, crash, backport from 0.3.2.4-alpha):
- Avoid a crash when transitioning from client mode to bridge mode.
Previously, we would launch the worker threads whenever our
"public server" mode changed, but not when our "server" mode
changed. Fixes bug 23693; bugfix on 0.2.6.3-alpha.
Changes in version 0.3.0.13 - 2017-12-01
Tor 0.3.0.13 backports important security and stability bugfixes from
later Tor releases. All Tor users should upgrade to this release, or
to another of the releases coming out today.
Note: the Tor 0.3.0 series will no longer be supported after 26 Jan
2018. If you need a release with long-term support, please stick with
the 0.2.9 series. Otherwise, please upgrade to 0.3.1 or later.
o Major bugfixes (security, backport from 0.3.2.6-alpha):
- Fix a denial of service bug where an attacker could use a
malformed directory object to cause a Tor instance to pause while
OpenSSL would try to read a passphrase from the terminal. (Tor
instances run without a terminal, which is the case for most Tor
packages, are not impacted.) Fixes bug 24246; bugfix on every
version of Tor. Also tracked as TROVE-2017-011 and CVE-2017-8821.
Found by OSS-Fuzz as testcase 6360145429790720.
- Fix a denial of service issue where an attacker could crash a
directory authority using a malformed router descriptor. Fixes bug
24245; bugfix on 0.2.9.4-alpha. Also tracked as TROVE-2017-010
and CVE-2017-8820.
- When checking for replays in the INTRODUCE1 cell data for a
(legacy) onion service, correctly detect replays in the RSA-
encrypted part of the cell. We were previously checking for
replays on the entire cell, but those can be circumvented due to
the malleability of Tor's legacy hybrid encryption. This fix helps
prevent a traffic confirmation attack. Fixes bug 24244; bugfix on
0.2.4.1-alpha. This issue is also tracked as TROVE-2017-009
and CVE-2017-8819.
o Major bugfixes (security, onion service v2, backport from 0.3.2.6-alpha):
- Fix a use-after-free error that could crash v2 Tor onion services
when they failed to open circuits while expiring introduction
points. Fixes bug 24313; bugfix on 0.2.7.2-alpha. This issue is
also tracked as TROVE-2017-013 and CVE-2017-8823.
o Major bugfixes (security, relay, backport from 0.3.2.6-alpha):
- When running as a relay, make sure that we never build a path
through ourselves, even in the case where we have somehow lost the
version of our descriptor appearing in the consensus. Fixes part
of bug 21534; bugfix on 0.2.0.1-alpha. This issue is also tracked
as TROVE-2017-012 and CVE-2017-8822.
- When running as a relay, make sure that we never choose ourselves
as a guard. Fixes part of bug 21534; bugfix on 0.3.0.1-alpha. This
issue is also tracked as TROVE-2017-012 and CVE-2017-8822.
o Major bugfixes (exit relays, DNS, backport from 0.3.2.4-alpha):
- Fix an issue causing DNS to fail on high-bandwidth exit nodes,
making them nearly unusable. Fixes bugs 21394 and 18580; bugfix on
0.1.2.2-alpha, which introduced eventdns. Thanks to Dhalgren for
identifying and finding a workaround to this bug and to Moritz,
Arthur Edelstein, and Roger for helping to track it down and
analyze it.
o Minor features (security, windows, backport from 0.3.1.1-alpha):
- Enable a couple of pieces of Windows hardening: one
(HeapEnableTerminationOnCorruption) that has been on-by-default
since Windows 8, and unavailable before Windows 7; and one
(PROCESS_DEP_DISABLE_ATL_THUNK_EMULATION) which we believe doesn't
affect us, but shouldn't do any harm. Closes ticket 21953.
o Minor features (bridge, backport from 0.3.1.9):
- Bridges now include notice in their descriptors that they are
bridges, and notice of their distribution status, based on their
publication settings. Implements ticket 18329. For more fine-
grained control of how a bridge is distributed, upgrade to 0.3.2.x
or later.
o Minor features (directory authority, backport from 0.3.2.6-alpha):
- Add an IPv6 address for the "bastet" directory authority. Closes
ticket 24394.
o Minor features (geoip):
- Update geoip and geoip6 to the November 6 2017 Maxmind GeoLite2
Country database.
o Minor bugfix (relay address resolution, backport from 0.3.2.1-alpha):
- Avoid unnecessary calls to directory_fetches_from_authorities() on
relays, to prevent spurious address resolutions and descriptor
rebuilds. This is a mitigation for bug 21789. Fixes bug 23470;
bugfix on in 0.2.8.1-alpha.
o Minor bugfixes (compilation, backport from 0.3.2.1-alpha):
- Fix unused variable warnings in donna's Curve25519 SSE2 code.
Fixes bug 22895; bugfix on 0.2.7.2-alpha.
o Minor bugfixes (logging, relay shutdown, annoyance, backport from
0.3.2.2-alpha):
- When a circuit is marked for close, do not attempt to package any
cells for channels on that circuit. Previously, we would detect
this condition lower in the call stack, when we noticed that the
circuit had no attached channel, and log an annoying message.
Fixes bug 8185; bugfix on 0.2.5.4-alpha.
o Minor bugfixes (relay, crash, backport from 0.3.2.4-alpha):
- Avoid a crash when transitioning from client mode to bridge mode.
Previously, we would launch the worker threads whenever our
"public server" mode changed, but not when our "server" mode
changed. Fixes bug 23693; bugfix on 0.2.6.3-alpha.
o Minor bugfixes (testing, backport from 0.3.1.6-rc):
- Fix an undersized buffer in test-memwipe.c. Fixes bug 23291;
bugfix on 0.2.7.2-alpha. Found and patched by Ties Stuij.
Changes in version 0.2.9.14 - 2017-12-01
Tor 0.3.0.13 backports important security and stability bugfixes from
later Tor releases. All Tor users should upgrade to this release, or
to another of the releases coming out today.
o Major bugfixes (exit relays, DNS, backport from 0.3.2.4-alpha):
- Fix an issue causing DNS to fail on high-bandwidth exit nodes,
making them nearly unusable. Fixes bugs 21394 and 18580; bugfix on
0.1.2.2-alpha, which introduced eventdns. Thanks to Dhalgren for
identifying and finding a workaround to this bug and to Moritz,
Arthur Edelstein, and Roger for helping to track it down and
analyze it.
o Major bugfixes (security, backport from 0.3.2.6-alpha):
- Fix a denial of service bug where an attacker could use a
malformed directory object to cause a Tor instance to pause while
OpenSSL would try to read a passphrase from the terminal. (Tor
instances run without a terminal, which is the case for most Tor
packages, are not impacted.) Fixes bug 24246; bugfix on every
version of Tor. Also tracked as TROVE-2017-011 and CVE-2017-8821.
Found by OSS-Fuzz as testcase 6360145429790720.
- Fix a denial of service issue where an attacker could crash a
directory authority using a malformed router descriptor. Fixes bug
24245; bugfix on 0.2.9.4-alpha. Also tracked as TROVE-2017-010
and CVE-2017-8820.
- When checking for replays in the INTRODUCE1 cell data for a
(legacy) onion service, correctly detect replays in the RSA-
encrypted part of the cell. We were previously checking for
replays on the entire cell, but those can be circumvented due to
the malleability of Tor's legacy hybrid encryption. This fix helps
prevent a traffic confirmation attack. Fixes bug 24244; bugfix on
0.2.4.1-alpha. This issue is also tracked as TROVE-2017-009
and CVE-2017-8819.
o Major bugfixes (security, onion service v2, backport from 0.3.2.6-alpha):
- Fix a use-after-free error that could crash v2 Tor onion services
when they failed to open circuits while expiring introduction
points. Fixes bug 24313; bugfix on 0.2.7.2-alpha. This issue is
also tracked as TROVE-2017-013 and CVE-2017-8823.
o Major bugfixes (security, relay, backport from 0.3.2.6-alpha):
- When running as a relay, make sure that we never build a path
through ourselves, even in the case where we have somehow lost the
version of our descriptor appearing in the consensus. Fixes part
of bug 21534; bugfix on 0.2.0.1-alpha. This issue is also tracked
as TROVE-2017-012 and CVE-2017-8822.
o Minor features (bridge, backport from 0.3.1.9):
- Bridges now include notice in their descriptors that they are
bridges, and notice of their distribution status, based on their
publication settings. Implements ticket 18329. For more fine-
grained control of how a bridge is distributed, upgrade to 0.3.2.x
or later.
o Minor features (directory authority, backport from 0.3.2.6-alpha):
- Add an IPv6 address for the "bastet" directory authority. Closes
ticket 24394.
o Minor features (geoip):
- Update geoip and geoip6 to the November 6 2017 Maxmind GeoLite2
Country database.
o Minor features (security, windows, backport from 0.3.1.1-alpha):
- Enable a couple of pieces of Windows hardening: one
(HeapEnableTerminationOnCorruption) that has been on-by-default
since Windows 8, and unavailable before Windows 7; and one
(PROCESS_DEP_DISABLE_ATL_THUNK_EMULATION) which we believe doesn't
affect us, but shouldn't do any harm. Closes ticket 21953.
o Minor bugfix (relay address resolution, backport from 0.3.2.1-alpha):
- Avoid unnecessary calls to directory_fetches_from_authorities() on
relays, to prevent spurious address resolutions and descriptor
rebuilds. This is a mitigation for bug 21789. Fixes bug 23470;
bugfix on in 0.2.8.1-alpha.
o Minor bugfixes (compilation, backport from 0.3.2.1-alpha):
- Fix unused variable warnings in donna's Curve25519 SSE2 code.
Fixes bug 22895; bugfix on 0.2.7.2-alpha.
o Minor bugfixes (logging, relay shutdown, annoyance, backport from
0.3.2.2-alpha):
- When a circuit is marked for close, do not attempt to package any
cells for channels on that circuit. Previously, we would detect
this condition lower in the call stack, when we noticed that the
circuit had no attached channel, and log an annoying message.
Fixes bug 8185; bugfix on 0.2.5.4-alpha.
o Minor bugfixes (relay, crash, backport from 0.3.2.4-alpha):
- Avoid a crash when transitioning from client mode to bridge mode.
Previously, we would launch the worker threads whenever our
"public server" mode changed, but not when our "server" mode
changed. Fixes bug 23693; bugfix on 0.2.6.3-alpha.
o Minor bugfixes (testing, backport from 0.3.1.6-rc):
- Fix an undersized buffer in test-memwipe.c. Fixes bug 23291;
bugfix on 0.2.7.2-alpha. Found and patched by Ties Stuij.
Changes in version 0.2.8.17 - 2017-12-01
Tor 0.2.8.17 backports important security and stability bugfixes from
later Tor releases. All Tor users should upgrade to this release, or
to another of the releases coming out today.
Note: the Tor 0.2.8 series will no longer be supported after 1 Jan
2018. If you need a release with long-term support, please upgrade with
the 0.2.9 series. Otherwise, please upgrade to 0.3.1 or later.
o Major bugfixes (security, backport from 0.3.2.6-alpha):
- Fix a denial of service bug where an attacker could use a
malformed directory object to cause a Tor instance to pause while
OpenSSL would try to read a passphrase from the terminal. (Tor
instances run without a terminal, which is the case for most Tor
packages, are not impacted.) Fixes bug 24246; bugfix on every
version of Tor. Also tracked as TROVE-2017-011 and CVE-2017-8821.
Found by OSS-Fuzz as testcase 6360145429790720.
- When checking for replays in the INTRODUCE1 cell data for a
(legacy) onion service, correctly detect replays in the RSA-
encrypted part of the cell. We were previously checking for
replays on the entire cell, but those can be circumvented due to
the malleability of Tor's legacy hybrid encryption. This fix helps
prevent a traffic confirmation attack. Fixes bug 24244; bugfix on
0.2.4.1-alpha. This issue is also tracked as TROVE-2017-009
and CVE-2017-8819.
o Major bugfixes (security, onion service v2, backport from 0.3.2.6-alpha):
- Fix a use-after-free error that could crash v2 Tor onion services
when they failed to open circuits while expiring introduction
points. Fixes bug 24313; bugfix on 0.2.7.2-alpha. This issue is
also tracked as TROVE-2017-013 and CVE-2017-8823.
o Major bugfixes (security, relay, backport from 0.3.2.6-alpha):
- When running as a relay, make sure that we never build a path through
ourselves, even in the case where we have somehow lost the version of
our descriptor appearing in the consensus. Fixes part of bug 21534;
bugfix on 0.2.0.1-alpha. This issue is also tracked as TROVE-2017-012
and CVE-2017-8822.
o Minor features (bridge, backport from 0.3.1.9):
- Bridges now include notice in their descriptors that they are
bridges, and notice of their distribution status, based on their
publication settings. Implements ticket 18329. For more fine-
grained control of how a bridge is distributed, upgrade to 0.3.2.x
or later.
o Minor features (directory authority, backport from 0.3.2.6-alpha):
- Add an IPv6 address for the "bastet" directory authority. Closes
ticket 24394.
o Minor features (geoip):
- Update geoip and geoip6 to the November 6 2017 Maxmind GeoLite2
Country database.
o Minor bugfixes (testing, backport from 0.3.1.6-rc):
- Fix an undersized buffer in test-memwipe.c. Fixes bug 23291;
bugfix on 0.2.7.2-alpha. Found and patched by Ties Stuij.
Changes in version 0.2.5.16 - 2017-12-01
Tor 0.2.5.13 backports important security and stability bugfixes from
later Tor releases. All Tor users should upgrade to this release, or
to another of the releases coming out today.
Note: the Tor 0.2.5 series will no longer be supported after 1 May
2018. If you need a release with long-term support, please upgrade to
the 0.2.9 series. Otherwise, please upgrade to 0.3.1 or later.
o Major bugfixes (security, backport from 0.3.2.6-alpha):
- Fix a denial of service bug where an attacker could use a
malformed directory object to cause a Tor instance to pause while
OpenSSL would try to read a passphrase from the terminal. (Tor
instances run without a terminal, which is the case for most Tor
packages, are not impacted.) Fixes bug 24246; bugfix on every
version of Tor. Also tracked as TROVE-2017-011 and CVE-2017-8821.
Found by OSS-Fuzz as testcase 6360145429790720.
- When checking for replays in the INTRODUCE1 cell data for a
(legacy) onion service, correctly detect replays in the RSA-
encrypted part of the cell. We were previously checking for
replays on the entire cell, but those can be circumvented due to
the malleability of Tor's legacy hybrid encryption. This fix helps
prevent a traffic confirmation attack. Fixes bug 24244; bugfix on
0.2.4.1-alpha. This issue is also tracked as TROVE-2017-009
and CVE-2017-8819.
o Major bugfixes (security, relay, backport from 0.3.2.6-alpha):
- When running as a relay, make sure that we never build a path
through ourselves, even in the case where we have somehow lost the
version of our descriptor appearing in the consensus. Fixes part
of bug 21534; bugfix on 0.2.0.1-alpha. This issue is also tracked
as TROVE-2017-012 and CVE-2017-8822.
o Minor features (bridge, backport from 0.3.1.9):
- Bridges now include notice in their descriptors that they are
bridges, and notice of their distribution status, based on their
publication settings. Implements ticket 18329. For more fine-
grained control of how a bridge is distributed, upgrade to 0.3.2.x
or later.
o Minor features (geoip):
- Update geoip and geoip6 to the November 6 2017 Maxmind GeoLite2
Country database.
1
0
Tor Browser 7.0.10 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/7.0.10/
This release features important security updates [3] to Firefox.
3: https://www.mozilla.org/en-US/security/advisories/mfsa2017-25/
This release updates Firefox to version 52.5.0esr [4] and Tor to version
version 0.3.1.8 [5], the second stable release in the 0.3.1 series. In
addition to that we updated the HTTPS Everywhere and NoScript extensions
we ship. For Windows users we backported patches from the alpha series
that update the msvcr100.dll runtime library we include and which should
make Tor Browser more robust against crashes due to misbehvaing third
party software.
4: https://www.mozilla.org/en-US/firefox/52.5.0/releasenotes/
5: https://blog.torproject.org/new-stable-tor-releases-0318-03012-02913-02816-…
The full changelog since Tor Browser 7.0.9 (7.0.8 for Windows) is:
* All Platforms
* Update Firefox to 52.5.0esr
* Update Tor to 0.3.1.8
* Update Torbutton to 1.9.7.10
* Bug 23997: Add link to Tor Browser manual for de, nl, tr, vi
* Translations update
* Update HTTPS-Everywhere to 2017.10.30
* Bug 24178: Use make.sh for building HTTPS-Everywhere
* Update NoScript to 5.1.5
* Bug 23968: NoScript icon jumps to the right after update
* Windows
* Bug 23582: Enable the Windows DLL blocklist for mingw-w64 builds
* Bug 23396: Update the msvcr100.dll we ship
* Bug 24052: Block file:// redirects early
1
0
Note: Tor Browser 7.0.9 is a security bugfix release for macOS and
Linux users only. Users on Windows are not affected and stay on Tor
Browser 7.0.8.
Tor Browser 7.0.9 is now available for our macOS [1] and Linux [2] users
from the Tor Browser Project page and also from our distribution
directory [3].
1: https://www.torproject.org/download/download-easy.html#mac
2: https://www.torproject.org/download/download-easy.html#linux
3: https://www.torproject.org/dist/torbrowser/7.0.9/
This release features an important security update to Tor Browser for
macOS and Linux users. Due to a Firefox bug [4] in handling file:// URLs
it is possible on both systems that users leak their IP address. Once
an affected user navigates to a specially crafted URL the operating
system may directly connect to the remote host, bypassing Tor Browser.
Tails users and users of our sandboxed-tor-browser are unaffected, though.
4: https://bugzilla.mozilla.org/show_bug.cgi?id=1412081
The bug got reported to us on Thursday, October 26, by Filippo Cavallarin.
We created a workaround with the help of Mozilla engineers on the next
day which, alas, fixed the leak only partially. We developed an additional
fix on Tuesday, October 31, plugging all known holes. We are not aware
of this vulnerability being exploited in the wild. Thanks to everyone
who helped during this process!
We are currently preparing updated macOS and Linux bundles for our alpha
series which will be tentatively available on Monday, November 6. Meanwhile
macOS and Linux users on that series are strongly encouraged to use the
stable bundles or one of the above mentioned tools that are not affected
by the underlying problem.
Known issues: The fix we deployed is just a workaround stopping the leak.
As a result of that navigating file:// URLs in the browser might not
work as expected anymore. In particular entering file:// URLs in the URL
bar and clicking on resulting links is broken. Opening those in a new
tab or new window does not work either. A workaround for those issues
is dragging the link into the URL bar or on a tab instead. We track this
follow-up regression in bug 24136 [5].
5: https://trac.torproject.org/projects/tor/ticket/24136
Here is the full changelog since 7.0.8:
* OS X
* Bug 24052: Streamline handling of file:// resources
* Linux
* Bug 24052: Streamline handling of file:// resources
1
0
Tor Browser 7.0.8 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/7.0.8/
In version 7.0.7 we added a donation banner to point to our end-of-the-year
2017 donation campaign [3]. This new release is fixing a bug which
prevented the display of the banner.
3: https://blog.torproject.org/powering-digital-resistance-help-mozilla
The full changelog since Tor Browser 7.0.7 is:
* All Platforms
* Update Torbutton to 1.9.7.9
* Bug 23949: Fix donation banner display
* Update locales with translated banner
* Translations update
1
0

New stable Tor releases: 0.3.1.8, 0.3.0.12, 0.2.9.13, 0.2.8.16, 0.2.5.15
by Nick Mathewson 25 Oct '17
by Nick Mathewson 25 Oct '17
25 Oct '17
Hi, all!
There are new stable Tor releases available for download. If you
build Tor from source, you can find the source for the latest stable
release on our Download page. You can find the older releases at
https://dist.torproject.org/ . Packages should be available over the
coming days, including a planned TorBrowser release in November.
These releases backport stability fixes from later Tor releases, and
add the key for the latest directory authority, "bastet".
Below are the changelog entries for the new releases mentioned in this email.
Changes in version 0.3.1.8 - 2017-10-25
Tor 0.3.1.7 is the second stable release in the 0.3.1 series.
It includes several bugfixes, including a bugfix for a crash issue
that had affected relays under memory pressure. It also adds
a new directory authority, Bastet.
o Directory authority changes:
- Add "Bastet" as a ninth directory authority to the default list.
Closes ticket 23910.
- The directory authority "Longclaw" has changed its IP address.
Closes ticket 23592.
o Major bugfixes (relay, crash, assertion failure, backport from
0.3.2.2-alpha):
- Fix a timing-based assertion failure that could occur when the
circuit out-of-memory handler freed a connection's output buffer.
Fixes bug 23690; bugfix on 0.2.6.1-alpha.
o Minor features (directory authorities, backport from 0.3.2.2-alpha):
- Remove longclaw's IPv6 address, as it will soon change. Authority
IPv6 addresses were originally added in 0.2.8.1-alpha. This leaves
3/8 directory authorities with IPv6 addresses, but there are also
52 fallback directory mirrors with IPv6 addresses. Resolves 19760.
o Minor features (geoip):
- Update geoip and geoip6 to the October 4 2017 Maxmind GeoLite2
Country database.
o Minor bugfixes (compilation, backport from 0.3.2.2-alpha):
- Fix a compilation warning when building with zstd support on
32-bit platforms. Fixes bug 23568; bugfix on 0.3.1.1-alpha. Found
and fixed by Andreas Stieger.
o Minor bugfixes (compression, backport from 0.3.2.2-alpha):
- Handle a pathological case when decompressing Zstandard data when
the output buffer size is zero. Fixes bug 23551; bugfix
on 0.3.1.1-alpha.
o Minor bugfixes (directory authority, backport from 0.3.2.1-alpha):
- Remove the length limit on HTTP status lines that authorities can
send in their replies. Fixes bug 23499; bugfix on 0.3.1.6-rc.
o Minor bugfixes (hidden service, relay, backport from 0.3.2.2-alpha):
- Avoid a possible double close of a circuit by the intro point on
error of sending the INTRO_ESTABLISHED cell. Fixes bug 23610;
bugfix on 0.3.0.1-alpha.
o Minor bugfixes (memory safety, backport from 0.3.2.3-alpha):
- Clear the address when node_get_prim_orport() returns early.
Fixes bug 23874; bugfix on 0.2.8.2-alpha.
o Minor bugfixes (unit tests, backport from 0.3.2.2-alpha):
- Fix additional channelpadding unit test failures by using mocked
time instead of actual time for all tests. Fixes bug 23608; bugfix
on 0.3.1.1-alpha.
Changes in version 0.3.0.12 - 2017-10-25
Tor 0.3.0.12 backports a collection of bugfixes from later Tor release
series, including a bugfix for a crash issue that had affected relays
under memory pressure. It also adds a new directory authority, Bastet.
Note: the Tor 0.3.0 series will no longer be supported after 26 Jan
2018. If you need a release with long-term support, please stick with
the 0.2.9 series. Otherwise, please upgrade to 0.3.1 or later.
o Directory authority changes:
- Add "Bastet" as a ninth directory authority to the default list.
Closes ticket 23910.
- The directory authority "Longclaw" has changed its IP address.
Closes ticket 23592.
o Major bugfixes (relay, crash, assertion failure, backport from
0.3.2.2-alpha):
- Fix a timing-based assertion failure that could occur when the
circuit out-of-memory handler freed a connection's output buffer.
Fixes bug 23690; bugfix on 0.2.6.1-alpha.
o Minor features (directory authorities, backport from 0.3.2.2-alpha):
- Remove longclaw's IPv6 address, as it will soon change. Authority
IPv6 addresses were originally added in 0.2.8.1-alpha. This leaves
3/8 directory authorities with IPv6 addresses, but there are also
52 fallback directory mirrors with IPv6 addresses. Resolves 19760.
o Minor features (geoip):
- Update geoip and geoip6 to the October 4 2017 Maxmind GeoLite2
Country database.
o Minor bugfixes (directory authority, backport from 0.3.1.5-alpha):
- When a directory authority rejects a descriptor or extrainfo with
a given digest, mark that digest as undownloadable, so that we do
not attempt to download it again over and over. We previously
tried to avoid downloading such descriptors by other means, but we
didn't notice if we accidentally downloaded one anyway. This
behavior became problematic in 0.2.7.2-alpha, when authorities
began pinning Ed25519 keys. Fixes bug 22349; bugfix
on 0.2.1.19-alpha.
o Minor bugfixes (hidden service, relay, backport from 0.3.2.2-alpha):
- Avoid a possible double close of a circuit by the intro point on
error of sending the INTRO_ESTABLISHED cell. Fixes bug 23610;
bugfix on 0.3.0.1-alpha.
o Minor bugfixes (memory safety, backport from 0.3.2.3-alpha):
- Clear the address when node_get_prim_orport() returns early.
Fixes bug 23874; bugfix on 0.2.8.2-alpha.
o Minor bugfixes (Windows service, backport from 0.3.1.6-rc):
- When running as a Windows service, set the ID of the main thread
correctly. Failure to do so made us fail to send log messages to
the controller in 0.2.1.16-rc, slowed down controller event
delivery in 0.2.7.3-rc and later, and crash with an assertion
failure in 0.3.1.1-alpha. Fixes bug 23081; bugfix on 0.2.1.6-alpha.
Patch and diagnosis from "Vort".
Changes in version 0.2.9.13 - 2017-10-25
Tor 0.2.9.13 backports a collection of bugfixes from later Tor release
series, including a bugfix for a crash issue that had affected relays
under memory pressure. It also adds a new directory authority, Bastet.
o Directory authority changes:
- Add "Bastet" as a ninth directory authority to the default list.
Closes ticket 23910.
- The directory authority "Longclaw" has changed its IP address.
Closes ticket 23592.
o Major bugfixes (relay, crash, assertion failure, backport from
0.3.2.2-alpha):
- Fix a timing-based assertion failure that could occur when the
circuit out-of-memory handler freed a connection's output buffer.
Fixes bug 23690; bugfix on 0.2.6.1-alpha.
o Minor features (directory authorities, backport from 0.3.2.2-alpha):
- Remove longclaw's IPv6 address, as it will soon change. Authority
IPv6 addresses were originally added in 0.2.8.1-alpha. This leaves
3/8 directory authorities with IPv6 addresses, but there are also
52 fallback directory mirrors with IPv6 addresses. Resolves 19760.
o Minor features (geoip):
- Update geoip and geoip6 to the October 4 2017 Maxmind GeoLite2
Country database.
o Minor bugfixes (directory authority, backport from 0.3.1.5-alpha):
- When a directory authority rejects a descriptor or extrainfo with
a given digest, mark that digest as undownloadable, so that we do
not attempt to download it again over and over. We previously
tried to avoid downloading such descriptors by other means, but we
didn't notice if we accidentally downloaded one anyway. This
behavior became problematic in 0.2.7.2-alpha, when authorities
began pinning Ed25519 keys. Fixes bug 22349; bugfix
on 0.2.1.19-alpha.
o Minor bugfixes (memory safety, backport from 0.3.2.3-alpha):
- Clear the address when node_get_prim_orport() returns early.
Fixes bug 23874; bugfix on 0.2.8.2-alpha.
o Minor bugfixes (Windows service, backport from 0.3.1.6-rc):
- When running as a Windows service, set the ID of the main thread
correctly. Failure to do so made us fail to send log messages to
the controller in 0.2.1.16-rc, slowed down controller event
delivery in 0.2.7.3-rc and later, and crash with an assertion
failure in 0.3.1.1-alpha. Fixes bug 23081; bugfix on 0.2.1.6-alpha.
Patch and diagnosis from "Vort".
Changes in version 0.2.8.16 - 2017-10-25
Tor 0.2.8.16 backports a collection of bugfixes from later Tor release
series, including a bugfix for a crash issue that had affected relays
under memory pressure. It also adds a new directory authority, Bastet.
Note: the Tor 0.2.8 series will no longer be supported after 1 Jan
2018. If you need a release with long-term support, please stick with
the 0.2.9 series. Otherwise, please upgrade to 0.3.1 or later.
o Directory authority changes:
- Add "Bastet" as a ninth directory authority to the default list.
Closes ticket 23910.
- The directory authority "Longclaw" has changed its IP address.
Closes ticket 23592.
o Major bugfixes (relay, crash, assertion failure, backport from
0.3.2.2-alpha):
- Fix a timing-based assertion failure that could occur when the
circuit out-of-memory handler freed a connection's output buffer.
Fixes bug 23690; bugfix on 0.2.6.1-alpha.
o Minor features (directory authorities, backport from 0.3.2.2-alpha):
- Remove longclaw's IPv6 address, as it will soon change. Authority
IPv6 addresses were originally added in 0.2.8.1-alpha. This leaves
3/8 directory authorities with IPv6 addresses, but there are also
52 fallback directory mirrors with IPv6 addresses. Resolves 19760.
o Minor features (geoip):
- Update geoip and geoip6 to the October 4 2017 Maxmind GeoLite2
Country database.
Changes in version 0.2.5.15 - 2017-10-25
Tor 0.2.5.15 backports a collection of bugfixes from later Tor release
series. It also adds a new directory authority, Bastet.
Note: the Tor 0.2.5 series will no longer be supported after 1 May
2018. If you need a release with long-term support, please upgrade to
the 0.2.9 series. Otherwise, please upgrade to 0.3.1 or later.
o Directory authority changes:
- Add "Bastet" as a ninth directory authority to the default list.
Closes ticket 23910.
- The directory authority "Longclaw" has changed its IP address.
Closes ticket 23592.
o Major bugfixes (openbsd, denial-of-service, backport from 0.3.1.5-alpha):
- Avoid an assertion failure bug affecting our implementation of
inet_pton(AF_INET6) on certain OpenBSD systems whose strtol()
handling of "0xx" differs from what we had expected. Fixes bug
22789; bugfix on 0.2.3.8-alpha. Also tracked as TROVE-2017-007.
o Minor features (geoip):
- Update geoip and geoip6 to the October 4 2017 Maxmind GeoLite2
Country database.
o Minor bugfixes (defensive programming, undefined behavior,
backport from 0.3.1.4-alpha):
- Fix a memset() off the end of an array when packing cells. This
bug should be harmless in practice, since the corrupted bytes are
still in the same structure, and are always padding bytes,
ignored, or immediately overwritten, depending on compiler
behavior. Nevertheless, because the memset()'s purpose is to make
sure that any other cell-handling bugs can't expose bytes to the
network, we need to fix it. Fixes bug 22737; bugfix on
0.2.4.11-alpha. Fixes CID 1401591.
o Build features (backport from 0.3.1.5-alpha):
- Tor's repository now includes a Travis Continuous Integration (CI)
configuration file (.travis.yml). This is meant to help new
developers and contributors who fork Tor to a Github repository be
better able to test their changes, and understand what we expect
to pass. To use this new build feature, you must fork Tor to your
Github account, then go into the "Integrations" menu in the
repository settings for your fork and enable Travis, then push
your changes. Closes ticket 22636.
1
0
Tor Browser 7.0.7 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/7.0.7/
This release updates firefox to 52.4.1esr [3], HTTPS-Everywhere to 2017.10.4
and NoScript to 5.1.2. On Linux the content sandboxing is now enabled.
This release is also fixing some crashes and adding a donation banner
starting on Oct 23 in order to point to our end-of-the-year 2017 donation
campaign.
3: https://www.mozilla.org/en-US/firefox/52.4.1/releasenotes/
The full changelog since Tor Browser 7.0.6 is:
* All Platforms
* Update Firefox to 52.4.1esr
* Update Torbutton to 1.9.7.8
* Bug 23887: Update banner locales and Mozilla text
* Bug 23526: Add 2017 Donation banner text
* Bug 23483: Donation banner on about:tor for 2017 (testing mode)
* Bug 22610: Avoid crashes when canceling external helper app related downloads
* Bug 22472: Fix FTP downloads when external helper app dialog is shown
* Bug 22471: Downloading pdf files via the PDF viewer download button is broken
* Bug 22618: Downloading pdf file via file:/// is stalling
* Translations update
* Update HTTPS-Everywhere to 2017.10.4
* Update NoScript to 5.1.2
* Bug 23723: Loading entities from NoScript .dtd files is blocked
* Bug 23724: NoScript update breaks Security Slider and its icon disappears
* Bug 23745: Tab crashes when using Tor Browser to access Google Drive
* Bug 22610: Avoid crashes when canceling external helper app related downloads
* Bug 22472: Fix FTP downloads when external helper app dialog is shown
* Bug 22471: Downloading pdf files via the PDF viewer download button is broken
* Bug 22618: Downloading pdf file via file:/// is stalling
* Bug 23694: Update the detailsURL in update responses
* OS X
* Bug 23807: Tab crashes when playing video on High Sierra
* Linux
* Bug 22692: Enable content sandboxing on Linux
1
0
Tor Browser 7.0.6 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/7.0.6/
This release features important security updates [3] to Firefox.
3: https://www.mozilla.org/en-US/security/advisories/mfsa2017-22/
This release includes security updates for Firefox (52.4.0esr) and a
new Tor stable version (0.3.1.7), the first one in the 0.3.1 series. In
addition to that we updated the HTTPS Everywhere and NoScript extensions
we ship. Moreover, we fixed minor usability issues and a bug which,
under particular circumstances, caused all tabs to crash after closing
a single one.
Note: The release date in the changelog displayed after the update is
incorrect. The actual release date is September 28.
The full changelog since Tor Browser 7.0.6 is:
* All Platforms
* Update Firefox to 52.4.0esr
* Update Tor to 0.3.1.7
* Update Torbutton to 1.9.7.7
* Bug 22542: Security Settings window too small on macOS 10.12 (fixup)
* Bug 20375: Warn users after entering fullscreen mode
* Update HTTPS-Everywhere to 2017.9.12
* Update NoScript to 5.0.10
* Bug 21830: Copying large text from web console leaks to /tmp
* Bug 23393: Don't crash all tabs when closing one tab
* OS X
* Bug 23404: Add missing Noto Sans Buginese font to the macOS whitelist
1
0

18 Sep '17
Hello!
(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.1.7 is now available! This is the first
stable release in the 0.3.1.x series, and we hope you find it useful.
This release includes fixes for a security issue in the hidden service
code (CVE-2017-0380, TROVE-2017-008) that can cause sensitive
information to be written to your logs if you have set the SafeLogging
option to 0. If you are not running a hidden service, or you have
not changed the SafeLogging option from its default, you are not
affected. If you are running 0.2.5, you are not affected. (0.2.4,
0.2.6, and 0.2.7 are no longer
supported.) For more information, including workaround steps, see
https://lists.torproject.org/pipermail/tor-talk/2017-September/043585.html
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 the end of the month.
There will also be a new alpha release today. Note that alpha releases
are announced on tor-talk and on the blog, but not on this mailing
list.
======
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.1.7 - 2017-09-18
Tor 0.3.1.7 is the first stable release in the 0.3.1 series.
With the 0.3.1 series, Tor now serves and downloads directory
information in more compact formats, to save on bandwidth overhead. It
also contains a new padding system to resist netflow-based traffic
analysis, and experimental support for building parts of Tor in Rust
(though no parts of Tor are in Rust yet). There are also numerous
small features, bugfixes on earlier release series, and groundwork for
the hidden services revamp of 0.3.2.
This release also includes a fix for TROVE-2017-008, a security bug
that affects hidden services running with the SafeLogging option
disabled. For more information, see
https://trac.torproject.org/projects/tor/ticket/23490
Per our stable release policy, we plan to support each stable release
series for at least the next nine months, or for three months after
the first stable release of the next series: whichever is longer. If
you need a release with long-term support, we recommend that you stay
with the 0.2.9 series.
Below is a list of the changes since 0.3.0. For a list of all
changes since 0.3.1.6-rc, see the ChangeLog file.
o New dependencies:
- To build with zstd and lzma support, Tor now requires the
pkg-config tool at build time.
o Major bugfixes (security, hidden services, loggging):
- Fix a bug where we could log uninitialized stack when a certain
hidden service error occurred while SafeLogging was disabled.
Fixes bug #23490; bugfix on 0.2.7.2-alpha.
This is also tracked as TROVE-2017-008 and CVE-2017-0380.
o Major features (build system, continuous integration):
- Tor's repository now includes a Travis Continuous Integration (CI)
configuration file (.travis.yml). This is meant to help new
developers and contributors who fork Tor to a Github repository be
better able to test their changes, and understand what we expect
to pass. To use this new build feature, you must fork Tor to your
Github account, then go into the "Integrations" menu in the
repository settings for your fork and enable Travis, then push
your changes. Closes ticket 22636.
o Major features (directory protocol):
- Tor relays and authorities can now serve clients an abbreviated
version of the consensus document, containing only the changes
since an older consensus document that the client holds. Clients
now request these documents when available. When both client and
server use this new protocol, they will use far less bandwidth (up
to 94% less) to keep the client's consensus up-to-date. Implements
proposal 140; closes ticket 13339. Based on work by Daniel MartÃ.
- Tor can now compress directory traffic with lzma or with zstd
compression algorithms, which can deliver better bandwidth
performance. Because lzma is computationally expensive, it's only
used for documents that can be compressed once and served many
times. Support for these algorithms requires that tor is built
with the libzstd and/or liblzma libraries available. Implements
proposal 278; closes ticket 21662.
- Relays now perform the more expensive compression operations, and
consensus diff generation, in worker threads. This separation
avoids delaying the main thread when a new consensus arrives.
o Major features (experimental):
- Tor can now build modules written in Rust. To turn this on, pass
the "--enable-rust" flag to the configure script. It's not time to
get excited yet: currently, there is no actual Rust functionality
beyond some simple glue code, and a notice at startup to tell you
that Rust is running. Still, we hope that programmers and
packagers will try building Tor with Rust support, so that we can
find issues and solve portability problems. Closes ticket 22106.
o Major features (traffic analysis resistance):
- Connections between clients and relays now send a padding cell in
each direction every 1.5 to 9.5 seconds (tunable via consensus
parameters). This padding will not resist specialized
eavesdroppers, but it should be enough to make many ISPs' routine
network flow logging less useful in traffic analysis against
Tor users.
Padding is negotiated using Tor's link protocol, so both relays
and clients must upgrade for this to take effect. Clients may
still send padding despite the relay's version by setting
ConnectionPadding 1 in torrc, and may disable padding by setting
ConnectionPadding 0 in torrc. Padding may be minimized for mobile
users with the torrc option ReducedConnectionPadding. Implements
Proposal 251 and Section 2 of Proposal 254; closes ticket 16861.
- Relays will publish 24 hour totals of padding and non-padding cell
counts to their extra-info descriptors, unless PaddingStatistics 0
is set in torrc. These 24 hour totals are also rounded to
multiples of 10000.
o Major bugfixes (hidden service, relay, security):
- Fix a remotely triggerable assertion failure when a hidden service
handles a malformed BEGIN cell. Fixes bug 22493, tracked as
TROVE-2017-004 and as CVE-2017-0375; bugfix on 0.3.0.1-alpha.
- Fix a remotely triggerable assertion failure caused by receiving a
BEGIN_DIR cell on a hidden service rendezvous circuit. Fixes bug
22494, tracked as TROVE-2017-005 and CVE-2017-0376; bugfix
on 0.2.2.1-alpha.
o Major bugfixes (path selection, security):
- When choosing which guard to use for a circuit, avoid the exit's
family along with the exit itself. Previously, the new guard
selection logic avoided the exit, but did not consider its family.
Fixes bug 22753; bugfix on 0.3.0.1-alpha. Tracked as TROVE-2017-
006 and CVE-2017-0377.
o Major bugfixes (connection usage):
- We use NETINFO cells to try to determine if both relays involved
in a connection will agree on the canonical status of that
connection. We prefer the connections where this is the case for
extend cells, and try to close connections where relays disagree
on their canonical status early. Also, we now prefer the oldest
valid connection for extend cells. These two changes should reduce
the number of long-term connections that are kept open between
relays. Fixes bug 17604; bugfix on 0.2.5.5-alpha.
- Relays now log hourly statistics (look for
"channel_check_for_duplicates" lines) on the total number of
connections to other relays. If the number of connections per
relay is unexpectedly large, this log message is at notice level.
Otherwise it is at info.
o Major bugfixes (entry guards):
- When starting with an old consensus, do not add new entry guards
unless the consensus is "reasonably live" (under 1 day old). Fixes
one root cause of bug 22400; bugfix on 0.3.0.1-alpha.
- Don't block bootstrapping when a primary bridge is offline and we
can't get its descriptor. Fixes bug 22325; fixes one case of bug
21969; bugfix on 0.3.0.3-alpha.
o Major bugfixes (linux TPROXY support):
- Fix a typo that had prevented TPROXY-based transparent proxying
from working under Linux. Fixes bug 18100; bugfix on 0.2.6.3-alpha.
Patch from "d4fq0fQAgoJ".
o Major bugfixes (openbsd, denial-of-service):
- Avoid an assertion failure bug affecting our implementation of
inet_pton(AF_INET6) on certain OpenBSD systems whose strtol()
handling of "0xx" differs from what we had expected. Fixes bug
22789; bugfix on 0.2.3.8-alpha. Also tracked as TROVE-2017-007.
o Major bugfixes (relay, link handshake):
- When performing the v3 link handshake on a TLS connection, report
that we have the x509 certificate that we actually used on that
connection, even if we have changed certificates since that
connection was first opened. Previously, we would claim to have
used our most recent x509 link certificate, which would sometimes
make the link handshake fail. Fixes one case of bug 22460; bugfix
on 0.2.3.6-alpha.
o Major bugfixes (relays, key management):
- Regenerate link and authentication certificates whenever the key
that signs them changes; also, regenerate link certificates
whenever the signed key changes. Previously, these processes were
only weakly coupled, and we relays could (for minutes to hours)
wind up with an inconsistent set of keys and certificates, which
other relays would not accept. Fixes two cases of bug 22460;
bugfix on 0.3.0.1-alpha.
- When sending an Ed25519 signing->link certificate in a CERTS cell,
send the certificate that matches the x509 certificate that we
used on the TLS connection. Previously, there was a race condition
if the TLS context rotated after we began the TLS handshake but
before we sent the CERTS cell. Fixes a case of bug 22460; bugfix
on 0.3.0.1-alpha.
o Minor features (security, windows):
- Enable a couple of pieces of Windows hardening: one
(HeapEnableTerminationOnCorruption) that has been on-by-default
since Windows 8, and unavailable before Windows 7; and one
(PROCESS_DEP_DISABLE_ATL_THUNK_EMULATION) which we believe doesn't
affect us, but shouldn't do any harm. Closes ticket 21953.
o Minor features (bridge authority):
- Add "fingerprint" lines to the networkstatus-bridges file produced
by bridge authorities. Closes ticket 22207.
o Minor features (code style):
- Add "Falls through" comments to our codebase, in order to silence
GCC 7's -Wimplicit-fallthrough warnings. Patch from Andreas
Stieger. Closes ticket 22446.
o Minor features (config options):
- Allow "%include" directives in torrc configuration files. These
directives import the settings from other files, or from all the
files in a directory. Closes ticket 1922. Code by Daniel Pinto.
- Make SAVECONF return an error when overwriting a torrc that has
includes. Using SAVECONF with the FORCE option will allow it to
overwrite torrc even if includes are used. Related to ticket 1922.
- Add "GETINFO config-can-saveconf" to tell controllers if SAVECONF
will work without the FORCE option. Related to ticket 1922.
o Minor features (controller):
- Warn the first time that a controller requests data in the long-
deprecated 'GETINFO network-status' format. Closes ticket 21703.
o Minor features (defaults):
- The default value for UseCreateFast is now 0: clients which
haven't yet received a consensus document will now use a proper
ntor handshake to talk to their directory servers whenever they
can. Closes ticket 21407.
- Onion key rotation and expiry intervals are now defined as a
network consensus parameter, per proposal 274. The default
lifetime of an onion key is increased from 7 to 28 days. Old onion
keys will expire after 7 days by default. This change will make
consensus diffs much smaller, and save significant bandwidth.
Closes ticket 21641.
o Minor features (defensive programming):
- Create a pair of consensus parameters, nf_pad_tor2web and
nf_pad_single_onion, to disable netflow padding in the consensus
for non-anonymous connections in case the overhead is high. Closes
ticket 17857.
o Minor features (diagnostic):
- Add a stack trace to the bug warnings that can be logged when
trying to send an outgoing relay cell with n_chan == 0. Diagnostic
attempt for bug 23105.
- Add logging messages to try to diagnose a rare bug that seems to
generate RSA->Ed25519 cross-certificates dated in the 1970s. We
think this is happening because of incorrect system clocks, but
we'd like to know for certain. Diagnostic for bug 22466.
- Avoid an assertion failure, and log a better error message, when
unable to remove a file from the consensus cache on Windows.
Attempts to mitigate and diagnose bug 22752.
o Minor features (directory authority):
- Improve the message that authorities report to relays that present
RSA/Ed25519 keypairs that conflict with previously pinned keys.
Closes ticket 22348.
o Minor features (directory cache, consensus diff):
- Add a new MaxConsensusAgeForDiffs option to allow directory cache
operators with low-resource environments to adjust the number of
consensuses they'll store and generate diffs from. Most cache
operators should leave it unchanged. Helps to work around
bug 22883.
o Minor features (fallback directory list):
- Update the fallback directory mirror whitelist and blacklist based
on operator emails. Closes task 21121.
- Replace the 177 fallbacks originally introduced in Tor 0.2.9.8 in
December 2016 (of which ~126 were still functional) with a list of
151 fallbacks (32 new, 119 unchanged, 58 removed) generated in May
2017. Resolves ticket 21564.
o Minor features (geoip):
- Update geoip and geoip6 to the September 6 2017 Maxmind GeoLite2
Country database.
o Minor features (hidden services, logging):
- Log a message when a hidden service descriptor has fewer
introduction points than specified in
HiddenServiceNumIntroductionPoints. Closes tickets 21598.
- Log a message when a hidden service reaches its introduction point
circuit limit, and when that limit is reset. Follow up to ticket
21594; closes ticket 21622.
- Warn user if multiple entries in EntryNodes and at least one
HiddenService are used together. Pinning EntryNodes along with a
hidden service can be possibly harmful; for instance see ticket
14917 or 21155. Closes ticket 21155.
o Minor features (linux seccomp2 sandbox):
- We now have a document storage backend compatible with the Linux
seccomp2 sandbox. This backend is used for consensus documents and
diffs between them; in the long term, we'd like to use it for
unparseable directory material too. Closes ticket 21645
- Increase the maximum allowed size passed to mprotect(PROT_WRITE)
from 1MB to 16MB. This was necessary with the glibc allocator in
order to allow worker threads to allocate more memory -- which in
turn is necessary because of our new use of worker threads for
compression. Closes ticket 22096.
o Minor features (logging):
- Log files are no longer created world-readable by default.
(Previously, most distributors would store the logs in a non-
world-readable location to prevent inappropriate access. This
change is an extra precaution.) Closes ticket 21729; patch
from toralf.
o Minor features (performance):
- Our Keccak (SHA-3) implementation now accesses memory more
efficiently, especially on little-endian systems. Closes
ticket 21737.
- Add an O(1) implementation of channel_find_by_global_id(), to
speed some controller functions.
o Minor features (relay, configuration):
- The MyFamily option may now be repeated as many times as desired,
for relays that want to configure large families. Closes ticket
4998; patch by Daniel Pinto.
o Minor features (relay, performance):
- Always start relays with at least two worker threads, to prevent
priority inversion on slow tasks. Part of the fix for bug 22883.
- Allow background work to be queued with different priorities, so
that a big pile of slow low-priority jobs will not starve out
higher priority jobs. This lays the groundwork for a fix for
bug 22883.
o Minor features (safety):
- Add an explicit check to extrainfo_parse_entry_from_string() for
NULL inputs. We don't believe this can actually happen, but it may
help silence a warning from the Clang analyzer. Closes
ticket 21496.
o Minor features (testing):
- Add more tests for compression backend initialization. Closes
ticket 22286.
- Add a "--disable-memory-sentinels" feature to help with fuzzing.
When Tor is compiled with this option, we disable a number of
redundant memory-safety failsafes that are intended to stop bugs
from becoming security issues. This makes it easier to hunt for
bugs that would be security issues without the failsafes turned
on. Closes ticket 21439.
- Add a general event-tracing instrumentation support to Tor. This
subsystem will enable developers and researchers to add fine-
grained instrumentation to their Tor instances, for use when
examining Tor network performance issues. There are no trace
events yet, and event-tracing is off by default unless enabled at
compile time. Implements ticket 13802.
- Improve our version parsing tests: add tests for typical version
components, add tests for invalid versions, including numeric
range and non-numeric prefixes. Unit tests 21278, 21450, and
21507. Partially implements 21470.
o Minor bugfixes (bandwidth accounting):
- Roll over monthly accounting at the configured hour and minute,
rather than always at 00:00. Fixes bug 22245; bugfix on 0.0.9rc1.
Found by Andrey Karpov with PVS-Studio.
o Minor bugfixes (code correctness):
- Accurately identify client connections by their lack of peer
authentication. This means that we bail out earlier if asked to
extend to a client. Follow-up to 21407. Fixes bug 21406; bugfix
on 0.2.4.23.
o Minor bugfixes (compilation warnings):
- Suppress -Wdouble-promotion warnings with clang 4.0. Fixes bug
22915; bugfix on 0.2.8.1-alpha.
- Fix warnings when building with libscrypt and openssl scrypt
support on Clang. Fixes bug 22916; bugfix on 0.2.7.2-alpha.
- When building with certain versions of the mingw C header files,
avoid float-conversion warnings when calling the C functions
isfinite(), isnan(), and signbit(). Fixes bug 22801; bugfix
on 0.2.8.1-alpha.
o Minor bugfixes (compilation):
- Avoid compiler warnings in the unit tests for calling tor_sscanf()
with wide string outputs. Fixes bug 15582; bugfix on 0.2.6.2-alpha.
o Minor bugfixes (compression):
- When spooling compressed data to an output buffer, don't try to
spool more data when there is no more data to spool and we are not
trying to flush the input. Previously, we would sometimes launch
compression requests with nothing to do, which interferes with our
22672 checks. Fixes bug 22719; bugfix on 0.2.0.16-alpha.
o Minor bugfixes (configuration):
- Do not crash when starting with LearnCircuitBuildTimeout 0. Fixes
bug 22252; bugfix on 0.2.9.3-alpha.
o Minor bugfixes (connection lifespan):
- Allow more control over how long TLS connections are kept open:
unify CircuitIdleTimeout and PredictedPortsRelevanceTime into a
single option called CircuitsAvailableTimeout. Also, allow the
consensus to control the default values for both this preference
and the lifespan of relay-to-relay connections. Fixes bug 17592;
bugfix on 0.2.5.5-alpha.
- Increase the initial circuit build timeout testing frequency, to
help ensure that ReducedConnectionPadding clients finish learning
a timeout before their orconn would expire. The initial testing
rate was set back in the days of TAP and before the Tor Browser
updater, when we had to be much more careful about new clients
making lots of circuits. With this change, a circuit build timeout
is learned in about 15-20 minutes, instead of 100-120 minutes.
o Minor bugfixes (controller):
- Do not crash when receiving a HSPOST command with an empty body.
Fixes part of bug 22644; bugfix on 0.2.7.1-alpha.
- Do not crash when receiving a POSTDESCRIPTOR command with an empty
body. Fixes part of bug 22644; bugfix on 0.2.0.1-alpha.
- GETINFO onions/current and onions/detached no longer respond with
551 on empty lists. Fixes bug 21329; bugfix on 0.2.7.1-alpha.
- Trigger HS descriptor events on the control port when the client
fails to pick a hidden service directory for a hidden service.
This can happen if all the hidden service directories are in
ExcludeNodes, or they have all been queried within the last 15
minutes. Fixes bug 22042; bugfix on 0.2.5.2-alpha.
o Minor bugfixes (correctness):
- Avoid undefined behavior when parsing IPv6 entries from the geoip6
file. Fixes bug 22490; bugfix on 0.2.4.6-alpha.
o Minor bugfixes (coverity build support):
- Avoid Coverity build warnings related to our BUG() macro. By
default, Coverity treats BUG() as the Linux kernel does: an
instant abort(). We need to override that so our BUG() macro
doesn't prevent Coverity from analyzing functions that use it.
Fixes bug 23030; bugfix on 0.2.9.1-alpha.
o Minor bugfixes (defensive programming):
- Detect and break out of infinite loops in our compression code. We
don't think that any such loops exist now, but it's best to be
safe. Closes ticket 22672.
- Fix a memset() off the end of an array when packing cells. This
bug should be harmless in practice, since the corrupted bytes are
still in the same structure, and are always padding bytes,
ignored, or immediately overwritten, depending on compiler
behavior. Nevertheless, because the memset()'s purpose is to make
sure that any other cell-handling bugs can't expose bytes to the
network, we need to fix it. Fixes bug 22737; bugfix on
0.2.4.11-alpha. Fixes CID 1401591.
o Minor bugfixes (directory authority):
- When a directory authority rejects a descriptor or extrainfo with
a given digest, mark that digest as undownloadable, so that we do
not attempt to download it again over and over. We previously
tried to avoid downloading such descriptors by other means, but we
didn't notice if we accidentally downloaded one anyway. This
behavior became problematic in 0.2.7.2-alpha, when authorities
began pinning Ed25519 keys. Fixes bug 22349; bugfix
on 0.2.1.19-alpha.
- When rejecting a router descriptor for running an obsolete version
of Tor without ntor support, warn about the obsolete tor version,
not the missing ntor key. Fixes bug 20270; bugfix on 0.2.9.3-alpha.
- Prevent the shared randomness subsystem from asserting when
initialized by a bridge authority with an incomplete configuration
file. Fixes bug 21586; bugfix on 0.2.9.8.
o Minor bugfixes (error reporting, windows):
- When formatting Windows error messages, use the English format to
avoid codepage issues. Fixes bug 22520; bugfix on 0.1.2.8-alpha.
Patch from "Vort".
o Minor bugfixes (exit-side DNS):
- Fix an untriggerable assertion that checked the output of a
libevent DNS error, so that the assertion actually behaves as
expected. Fixes bug 22244; bugfix on 0.2.0.20-rc. Found by Andrey
Karpov using PVS-Studio.
o Minor bugfixes (fallback directories):
- Make the usage example in updateFallbackDirs.py actually work, and
explain what it does. Fixes bug 22270; bugfix on 0.3.0.3-alpha.
- Decrease the guard flag average required to be a fallback. This
allows us to keep relays that have their guard flag removed when
they restart. Fixes bug 20913; bugfix on 0.2.8.1-alpha.
- Decrease the minimum number of fallbacks to 100. Fixes bug 20913;
bugfix on 0.2.8.1-alpha.
- Make sure fallback directory mirrors have the same address, port,
and relay identity key for at least 30 days before they are
selected. Fixes bug 20913; bugfix on 0.2.8.1-alpha.
o Minor bugfixes (file limits, osx):
- When setting the maximum number of connections allowed by the OS,
always allow some extra file descriptors for other files. Fixes
bug 22797; bugfix on 0.2.0.10-alpha.
o Minor bugfixes (hidden services):
- Increase the number of circuits that a service is allowed to
open over a specific period of time. The value was lower than it
should be (8 vs 12) in the normal case of 3 introduction points.
Fixes bug 22159; bugfix on 0.3.0.5-rc.
- Fix a BUG warning during HSv3 descriptor decoding that could be
cause by a specially crafted descriptor. Fixes bug 23233; bugfix
on 0.3.0.1-alpha. Bug found by "haxxpop".
- Stop printing a cryptic warning when a hidden service gets a
request to connect to a virtual port that it hasn't configured.
Fixes bug 16706; bugfix on 0.2.6.3-alpha.
- Simplify hidden service descriptor creation by using an existing
flag to check if an introduction point is established. Fixes bug
21599; bugfix on 0.2.7.2-alpha.
o Minor bugfixes (link handshake):
- Lower the lifetime of the RSA->Ed25519 cross-certificate to six
months, and regenerate it when it is within one month of expiring.
Previously, we had generated this certificate at startup with a
ten-year lifetime, but that could lead to weird behavior when Tor
was started with a grossly inaccurate clock. Mitigates bug 22466;
mitigation on 0.3.0.1-alpha.
o Minor bugfixes (linux seccomp2 sandbox):
- Avoid a sandbox failure when trying to re-bind to a socket and
mark it as IPv6-only. Fixes bug 20247; bugfix on 0.2.5.1-alpha.
- Permit the fchmod system call, to avoid crashing on startup when
starting with the seccomp2 sandbox and an unexpected set of
permissions on the data directory or its contents. Fixes bug
22516; bugfix on 0.2.5.4-alpha.
o Minor bugfixes (logging):
- When decompressing, do not warn if we fail to decompress using a
compression method that we merely guessed. Fixes part of bug
22670; bugfix on 0.1.1.14-alpha.
- When decompressing, treat mismatch between content-encoding and
actual compression type as a protocol warning. Fixes part of bug
22670; bugfix on 0.1.1.9-alpha.
- Downgrade "assigned_to_cpuworker failed" message to info-level
severity. In every case that can reach it, either a better warning
has already been logged, or no warning is warranted. Fixes bug
22356; bugfix on 0.2.6.3-alpha.
- Log a better message when a directory authority replies to an
upload with an unexpected status code. Fixes bug 11121; bugfix
on 0.1.0.1-rc.
- Downgrade a log statement about unexpected relay cells from "bug"
to "protocol warning", because there is at least one use case
where it can be triggered by a buggy tor implementation. Fixes bug
21293; bugfix on 0.1.1.14-alpha.
o Minor bugfixes (logging, relay):
- Remove a forgotten debugging message when an introduction point
successfully establishes a hidden service prop224 circuit with
a client.
- Change three other log_warn() for an introduction point to
protocol warnings, because they can be failure from the network
and are not relevant to the operator. Fixes bug 23078; bugfix on
0.3.0.1-alpha and 0.3.0.2-alpha.
o Minor bugfixes (relay):
- Inform the geoip and rephist modules about all requests, even on
relays that are only fetching microdescriptors. Fixes a bug
related to 21585; bugfix on 0.3.0.1-alpha.
o Minor bugfixes (memory leaks):
- Fix a small memory leak at exit from the backtrace handler code.
Fixes bug 21788; bugfix on 0.2.5.2-alpha. Patch from Daniel Pinto.
- When directory authorities reject a router descriptor due to
keypinning, free the router descriptor rather than leaking the
memory. Fixes bug 22370; bugfix on 0.2.7.2-alpha.
- Fix a small memory leak when validating a configuration that uses
two or more AF_UNIX sockets for the same port type. Fixes bug
23053; bugfix on 0.2.6.3-alpha. This is CID 1415725.
o Minor bugfixes (process behavior):
- When exiting because of an error, always exit with a nonzero exit
status. Previously, we would fail to report an error in our exit
status in cases related to __OwningControllerProcess failure,
lockfile contention, and Ed25519 key initialization. Fixes bug
22720; bugfix on versions 0.2.1.6-alpha, 0.2.2.28-beta, and
0.2.7.2-alpha respectively. Reported by "f55jwk4f"; patch
from "huyvq".
o Minor bugfixes (robustness, error handling):
- Improve our handling of the cases where OpenSSL encounters a
memory error while encoding keys and certificates. We haven't
observed these errors in the wild, but if they do happen, we now
detect and respond better. Fixes bug 19418; bugfix on all versions
of Tor. Reported by Guido Vranken.
o Minor bugfixes (testing):
- Fix an undersized buffer in test-memwipe.c. Fixes bug 23291;
bugfix on 0.2.7.2-alpha. Found and patched by Ties Stuij.
- Use unbuffered I/O for utility functions around the
process_handle_t type. This fixes unit test failures reported on
OpenBSD and FreeBSD. Fixes bug 21654; bugfix on 0.2.3.1-alpha.
- Make display of captured unit test log messages consistent. Fixes
bug 21510; bugfix on 0.2.9.3-alpha.
- Make test-network.sh always call chutney's test-network.sh.
Previously, this only worked on systems which had bash installed,
due to some bash-specific code in the script. Fixes bug 19699;
bugfix on 0.3.0.4-rc. Follow-up to ticket 21581.
- Fix a memory leak in the link-handshake/certs_ok_ed25519 test.
Fixes bug 22803; bugfix on 0.3.0.1-alpha.
- The unit tests now pass on systems where localhost is misconfigured
to some IPv4 address other than 127.0.0.1. Fixes bug 6298; bugfix
on 0.0.9pre2.
o Minor bugfixes (voting consistency):
- Reject version numbers with non-numeric prefixes (such as +, -, or
whitespace). Disallowing whitespace prevents differential version
parsing between POSIX-based and Windows platforms. Fixes bug 21507
and part of 21508; bugfix on 0.0.8pre1.
o Minor bugfixes (Windows service):
- When running as a Windows service, set the ID of the main thread
correctly. Failure to do so made us fail to send log messages to
the controller in 0.2.1.16-rc, slowed down controller event
delivery in 0.2.7.3-rc and later, and crash with an assertion
failure in 0.3.1.1-alpha. Fixes bug 23081; bugfix on 0.2.1.6-alpha.
Patch and diagnosis from "Vort".
o Minor bugfixes (windows, relay):
- Resolve "Failure from drain_fd: No error" warnings on Windows
relays. Fixes bug 21540; bugfix on 0.2.6.3-alpha.
o Code simplification and refactoring:
- Break up the 630-line function connection_dir_client_reached_eof()
into a dozen smaller functions. This change should help
maintainability and readability of the client directory code.
- Isolate our use of the openssl headers so that they are only
included from our crypto wrapper modules, and from tests that
examine those modules' internals. Closes ticket 21841.
- Simplify our API to launch directory requests, making it more
extensible and less error-prone. Now it's easier to add extra
headers to directory requests. Closes ticket 21646.
- Our base64 decoding functions no longer overestimate the output
space that they need when parsing unpadded inputs. Closes
ticket 17868.
- Remove unused "ROUTER_ADDED_NOTIFY_GENERATOR" internal value.
Resolves ticket 22213.
- The logic that directory caches use to spool request to clients,
serving them one part at a time so as not to allocate too much
memory, has been refactored for consistency. Previously there was
a separate spooling implementation per type of spoolable data. Now
there is one common spooling implementation, with extensible data
types. Closes ticket 21651.
- Tor's compression module now supports multiple backends. Part of
the implementation for proposal 278; closes ticket 21663.
o Documentation:
- Add a manpage description for the key-pinning-journal file. Closes
ticket 22347.
- Correctly note that bandwidth accounting values are stored in the
state file, and the bw_accounting file is now obsolete. Closes
ticket 16082.
- Document more of the files in the Tor data directory, including
cached-extrainfo, secret_onion_key{,_ntor}.old, hidserv-stats,
approved-routers, sr-random, and diff-cache. Found while fixing
ticket 22347.
- Clarify the manpage for the (deprecated) torify script. Closes
ticket 6892.
- Clarify the behavior of the KeepAliveIsolateSOCKSAuth sub-option.
Closes ticket 21873.
- Correct documentation about the default DataDirectory value.
Closes ticket 21151.
- Document the default behavior of NumEntryGuards and
NumDirectoryGuards correctly. Fixes bug 21715; bugfix
on 0.3.0.1-alpha.
- Document key=value pluggable transport arguments for Bridge lines
in torrc. Fixes bug 20341; bugfix on 0.2.5.1-alpha.
- Note that bandwidth-limiting options don't affect TCP headers or
DNS. Closes ticket 17170.
o Removed features (configuration options, all in ticket 22060):
- These configuration options are now marked Obsolete, and no longer
have any effect: AllowInvalidNodes, AllowSingleHopCircuits,
AllowSingleHopExits, ExcludeSingleHopRelays, FastFirstHopPK,
TLSECGroup, WarnUnsafeSocks. They were first marked as deprecated
in 0.2.9.2-alpha and have now been removed. The previous default
behavior is now always chosen; the previous (less secure) non-
default behavior is now unavailable.
- CloseHSClientCircuitsImmediatelyOnTimeout and
CloseHSServiceRendCircuitsImmediatelyOnTimeout were deprecated in
0.2.9.2-alpha and now have been removed. HS circuits never close
on circuit build timeout; they have a longer timeout period.
- {Control,DNS,Dir,Socks,Trans,NATD,OR}ListenAddress were deprecated
in 0.2.9.2-alpha and now have been removed. Use the ORPort option
(and others) to configure listen-only and advertise-only addresses.
o Removed features (tools):
- We've removed the tor-checkkey tool from src/tools. Long ago, we
used it to help people detect RSA keys that were generated by
versions of Debian affected by CVE-2008-0166. But those keys have
been out of circulation for ages, and this tool is no longer
required. Closes ticket 21842.
1
0