[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-talk] Tor 0.2.5.5-alpha is released
Changes in version 0.2.5.5-alpha - 2014-06-18
Tor 0.2.5.5-alpha fixes a wide variety of remaining issues in the Tor
0.2.5.x release series, including a couple of DoS issues, some
performance regressions, a large number of bugs affecting the Linux
seccomp2 sandbox code, and various other bugfixes. It also adds
diagnostic bugfixes for a few tricky issues that we're trying to
track down.
The source is ready today; packages should be ready in the next several days.
(I'm taking some load off of Roger's shoulders by doing releases
myself. This means that the signatures on the release are made with
my PGP key, not Roger's. Please don't freak out.)
https://www.torproject.org/dist/
o Major features (security, traffic analysis resistance):
- Several major improvements to the algorithm used to decide when to
close TLS connections. Previous versions of Tor closed connections
at a fixed interval after the last time a non-padding cell was
sent over the connection, regardless of the target of the
connection. Now, we randomize the intervals by adding up to 50% of
their base value, we measure the length of time since connection
last had at least one circuit, and we allow connections to known
ORs to remain open a little longer (15 minutes instead of 3
minutes minimum). These changes should improve Tor's resistance
against some kinds of traffic analysis, and lower some overhead
from needlessly closed connections. Fixes ticket 6799.
Incidentally fixes ticket 12023; bugfix on 0.2.5.1-alpha.
o Major bugfixes (security, OOM, new since 0.2.5.4-alpha, also in 0.2.4.22):
- Fix a memory leak that could occur if a microdescriptor parse
fails during the tokenizing step. This bug could enable a memory
exhaustion attack by directory servers. Fixes bug 11649; bugfix
on 0.2.2.6-alpha.
o Major bugfixes (security, directory authorities):
- Directory authorities now include a digest of each relay's
identity key as a part of its microdescriptor.
This is a workaround for bug 11743 (reported by "cypherpunks"),
where Tor clients do not support receiving multiple
microdescriptors with the same SHA256 digest in the same
consensus. When clients receive a consensus like this, they only
use one of the relays. Without this fix, a hostile relay could
selectively disable some client use of target relays by
constructing a router descriptor with a different identity and the
same microdescriptor parameters and getting the authorities to
list it in a microdescriptor consensus. This fix prevents an
attacker from causing a microdescriptor collision, because the
router's identity is not forgeable.
o Major bugfixes (relay):
- Use a direct dirport connection when uploading non-anonymous
descriptors to the directory authorities. Previously, relays would
incorrectly use tunnel connections under a fairly wide variety of
circumstances. Fixes bug 11469; bugfix on 0.2.4.3-alpha.
- When a circuit accidentally has the same circuit ID for its
forward and reverse direction, correctly detect the direction of
cells using that circuit. Previously, this bug made roughly one
circuit in a million non-functional. Fixes bug 12195; this is a
bugfix on every version of Tor.
o Major bugfixes (client, pluggable transports):
- When managing pluggable transports, use OS notification facilities
to learn if they have crashed, and don't attempt to kill any
process that has already exited. Fixes bug 8746; bugfix
on 0.2.3.6-alpha.
o Minor features (diagnostic):
- When logging a warning because of bug 7164, additionally check the
hash table for consistency (as proposed on ticket 11737). This may
help diagnose bug 7164.
- When we log a heartbeat, log how many one-hop circuits we have
that are at least 30 minutes old, and log status information about
a few of them. This is an attempt to track down bug 8387.
- When encountering an unexpected CR while writing text to a file on
Windows, log the name of the file. Should help diagnosing
bug 11233.
- Give more specific warnings when a client notices that an onion
handshake has failed. Fixes ticket 9635.
- Add significant new logging code to attempt to diagnose bug 12184,
where relays seem to run out of available circuit IDs.
- Improve the diagnostic log message for bug 8387 even further to
try to improve our odds of figuring out why one-hop directory
circuits sometimes do not get closed.
o Minor features (security, memory management):
- Memory allocation tricks (mempools and buffer freelists) are now
disabled by default. You can turn them back on with
--enable-mempools and --enable-buf-freelists respectively. We're
disabling these features because malloc performance is good enough
on most platforms, and a similar feature in OpenSSL exacerbated
exploitation of the Heartbleed attack. Resolves ticket 11476.
o Minor features (security):
- Apply the secure SipHash-2-4 function to the hash table mapping
circuit IDs and channels to circuits. We missed this one when we
were converting all the other hash functions to use SipHash back
in 0.2.5.3-alpha. Resolves ticket 11750.
o Minor features (build):
- The configure script has a --disable-seccomp option to turn off
support for libseccomp on systems that have it, in case it (or
Tor's use of it) is broken. Resolves ticket 11628.
o Minor features (other):
- Update geoip and geoip6 to the June 4 2014 Maxmind GeoLite2
Country database.
o Minor bugfixes (security, new since 0.2.5.4-alpha, also in 0.2.4.22):
- When running a hidden service, do not allow TunneledDirConns 0;
this will keep the hidden service from running, and also
make it publish its descriptors directly over HTTP. Fixes bug 10849;
bugfix on 0.2.1.1-alpha.
o Minor bugfixes (performance):
- Avoid a bug where every successful connection made us recompute
the flag telling us whether we have sufficient information to
build circuits. Previously, we would forget our cached value
whenever we successfully opened a channel (or marked a router as
running or not running for any other reason), regardless of
whether we had previously believed the router to be running. This
forced us to run an expensive update operation far too often.
Fixes bug 12170; bugfix on 0.1.2.1-alpha.
- Avoid using tor_memeq() for checking relay cell integrity. This
removes a possible performance bottleneck. Fixes part of bug
12169; bugfix on 0.2.1.31.
o Minor bugfixes (compilation):
- Fix compilation of test_status.c when building with MVSC. Bugfix
on 0.2.5.4-alpha. Patch from Gisle Vanem.
- Resolve GCC complaints on OpenBSD about discarding constness in
TO_{ORIGIN,OR}_CIRCUIT functions. Fixes part of bug 11633; bugfix
on 0.1.1.23. Patch from Dana Koch.
- Resolve clang complaints on OpenBSD with -Wshorten-64-to-32 due to
treatment of long and time_t as comparable types. Fixes part of
bug 11633. Patch from Dana Koch.
- Make Tor compile correctly with --disable-buf-freelists. Fixes bug
11623; bugfix on 0.2.5.3-alpha.
- When deciding whether to build the 64-bit curve25519
implementation, detect platforms where we can compile 128-bit
arithmetic but cannot link it. Fixes bug 11729; bugfix on
0.2.4.8-alpha. Patch from "conradev".
- Fix compilation when DNS_CACHE_DEBUG is enabled. Fixes bug 11761;
bugfix on 0.2.3.13-alpha. Found by "cypherpunks".
- Fix compilation with dmalloc. Fixes bug 11605; bugfix
on 0.2.4.10-alpha.
o Minor bugfixes (Directory server):
- When sending a compressed set of descriptors or microdescriptors,
make sure to finalize the zlib stream. Previously, we would write
all the compressed data, but if the last descriptor we wanted to
send was missing or too old, we would not mark the stream as
finished. This caused problems for decompression tools. Fixes bug
11648; bugfix on 0.1.1.23.
o Minor bugfixes (Linux seccomp sandbox):
- Make the seccomp sandbox code compile under ARM Linux. Fixes bug
11622; bugfix on 0.2.5.1-alpha.
- Avoid crashing when re-opening listener ports with the seccomp
sandbox active. Fixes bug 12115; bugfix on 0.2.5.1-alpha.
- Avoid crashing with the seccomp sandbox enabled along with
ConstrainedSockets. Fixes bug 12139; bugfix on 0.2.5.1-alpha.
- When we receive a SIGHUP with the sandbox enabled, correctly
support rotating our log files. Fixes bug 12032; bugfix
on 0.2.5.1-alpha.
- Avoid crash when running with sandboxing enabled and
DirReqStatistics not disabled. Fixes bug 12035; bugfix
on 0.2.5.1-alpha.
- Fix a "BUG" warning when trying to write bridge-stats files with
the Linux syscall sandbox filter enabled. Fixes bug 12041; bugfix
on 0.2.5.1-alpha.
- Prevent the sandbox from crashing on startup when run with the
--enable-expensive-hardening configuration option. Fixes bug
11477; bugfix on 0.2.5.4-alpha.
- When running with DirPortFrontPage and sandboxing both enabled,
reload the DirPortFrontPage correctly when restarting. Fixes bug
12028; bugfix on 0.2.5.1-alpha.
- Don't try to enable the sandbox when using the Tor binary to check
its configuration, hash a passphrase, or so on. Doing so was
crashing on startup for some users. Fixes bug 11609; bugfix
on 0.2.5.1-alpha.
- Avoid warnings when running with sandboxing and node statistics
enabled at the same time. Fixes part of 12064; bugfix on
0.2.5.1-alpha. Patch from Michael Wolf.
- Avoid warnings when running with sandboxing enabled at the same
time as cookie authentication, hidden services, or directory
authority voting. Fixes part of 12064; bugfix on 0.2.5.1-alpha.
- Do not allow options that require calls to exec to be enabled
alongside the seccomp2 sandbox: they will inevitably crash. Fixes
bug 12043; bugfix on 0.2.5.1-alpha.
- Handle failures in getpwnam()/getpwuid() when running with the
User option set and the Linux syscall sandbox enabled. Fixes bug
11946; bugfix on 0.2.5.1-alpha.
- Refactor the getaddrinfo workaround that the seccomp sandbox uses
to avoid calling getaddrinfo() after installing the sandbox
filters. Previously, it preloaded a cache with the IPv4 address
for our hostname, and nothing else. Now, it loads the cache with
every address that it used to initialize the Tor process. Fixes
bug 11970; bugfix on 0.2.5.1-alpha.
o Minor bugfixes (pluggable transports):
- Enable the ExtORPortCookieAuthFile option, to allow changing the
default location of the authentication token for the extended OR
Port as used by sever-side pluggable transports. We had
implemented this option before, but the code to make it settable
had been omitted. Fixes bug 11635; bugfix on 0.2.5.1-alpha.
- Avoid another 60-second delay when starting Tor in a pluggable-
transport-using configuration when we already have cached
descriptors for our bridges. Fixes bug 11965; bugfix
on 0.2.3.6-alpha.
o Minor bugfixes (client):
- Avoid "Tried to open a socket with DisableNetwork set" warnings
when starting a client with bridges configured and DisableNetwork
set. (Tor launcher starts Tor with DisableNetwork set the first
time it runs.) Fixes bug 10405; bugfix on 0.2.3.9-alpha.
o Minor bugfixes (testing):
- The Python parts of the test scripts now work on Python 3 as well
as Python 2, so systems where '/usr/bin/python' is Python 3 will
no longer have the tests break. Fixes bug 11608; bugfix
on 0.2.5.2-alpha.
- When looking for versions of python that we could run the tests
with, check for "python2.7" and "python3.3"; previously we were
only looking for "python", "python2", and "python3". Patch from
Dana Koch. Fixes bug 11632; bugfix on 0.2.5.2-alpha.
- Fix all valgrind warnings produced by the unit tests. There were
over a thousand memory leak warnings previously, mostly produced
by forgetting to free things in the unit test code. Fixes bug
11618, bugfixes on many versions of Tor.
o Minor bugfixes (tor-fw-helper):
- Give a correct log message when tor-fw-helper fails to launch.
(Previously, we would say something like "tor-fw-helper sent us a
string we could not parse".) Fixes bug 9781; bugfix
on 0.2.4.2-alpha.
o Minor bugfixes (relay, threading):
- Check return code on spawn_func() in cpuworker code, so that we
don't think we've spawned a nonworking cpuworker and write junk to
it forever. Fix related to bug 4345; bugfix on all released Tor
versions. Found by "skruffy".
- Use a pthread_attr to make sure that spawn_func() cannot return an
error while at the same time launching a thread. Fix related to
bug 4345; bugfix on all released Tor versions. Reported
by "cypherpunks".
o Minor bugfixes (relay, oom prevention):
- Correctly detect the total available system memory. We tried to do
this in 0.2.5.4-alpha, but the code was set up to always return an
error value, even on success. Fixes bug 11805; bugfix
on 0.2.5.4-alpha.
o Minor bugfixes (relay, other):
- We now drop CREATE cells for already-existent circuit IDs and for
zero-valued circuit IDs, regardless of other factors that might
otherwise have called for DESTROY cells. Fixes bug 12191; bugfix
on 0.0.8pre1.
- Avoid an illegal read from stack when initializing the TLS module
using a version of OpenSSL without all of the ciphers used by the
v2 link handshake. Fixes bug 12227; bugfix on 0.2.4.8-alpha. Found
by "starlight".
- When rejecting DATA cells for stream_id zero, still count them
against the circuit's deliver window so that we don't fail to send
a SENDME. Fixes bug 11246; bugfix on 0.2.4.10-alpha.
o Minor bugfixes (logging):
- Fix a misformatted log message about delayed directory fetches.
Fixes bug 11654; bugfix on 0.2.5.3-alpha.
- Squelch a spurious LD_BUG message "No origin circuit for
successful SOCKS stream" in certain hidden service failure cases;
fixes bug 10616.
o Distribution:
- Include a tor.service file in contrib/dist for use with systemd.
Some distributions will be able to use this file unmodified;
others will need to tweak it, or write their own. Patch from Jamie
Nguyen; resolves ticket 8368.
o Documentation:
- Clean up several option names in the manpage to match their real
names, add the missing documentation for a couple of testing and
directory authority options, remove the documentation for a
V2-directory fetching option that no longer exists. Resolves
ticket 11634.
- Correct the documenation so that it lists the correct directory
for the stats files. (They are in a subdirectory called "stats",
not "status".)
- In the manpage, move more authority-only options into the
directory authority section so that operators of regular directory
caches don't get confused.
o Package cleanup:
- The contrib directory has been sorted and tidied. Before, it was
an unsorted dumping ground for useful and not-so-useful things.
Now, it is divided based on functionality, and the items which
seemed to be nonfunctional or useless have been removed. Resolves
ticket 8966; based on patches from "rl1987".
o Removed code:
- Remove /tor/dbg-stability.txt URL that was meant to help debug WFU
and MTBF calculations, but that nobody was using. Fixes #11742.
- The TunnelDirConns and PreferTunnelledDirConns options no longer
exist; tunneled directory connections have been available since
0.1.2.5-alpha, and turning them off is not a good idea. This is a
brute-force fix for 10849, where "TunnelDirConns 0" would break
hidden services.
--
tor-talk mailing list - tor-talk@xxxxxxxxxxxxxxxxxxxx
To unsubscribe or change other settings go to
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-talk