aboutsummaryrefslogtreecommitdiff
path: root/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog713
1 files changed, 705 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index a71f900665..c93348ac01 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,675 @@
+Changes in version 0.2.8.2-alpha - 2016-03-28
+ Tor 0.2.8.2-alpha is the second alpha in its series. It fixes numerous
+ bugs in earlier versions of Tor, including some that prevented
+ authorities using Tor 0.2.7.x from running correctly. IPv6 and
+ directory support should also be much improved.
+
+ o New system requirements:
+ - Tor no longer supports versions of OpenSSL with a broken
+ implementation of counter mode. (This bug was present in OpenSSL
+ 1.0.0, and was fixed in OpenSSL 1.0.0a.) Tor still detects, but no
+ longer runs with, these versions.
+ - Tor no longer attempts to support platforms where the "time_t"
+ type is unsigned. (To the best of our knowledge, only OpenVMS does
+ this, and Tor has never actually built on OpenVMS.) Closes
+ ticket 18184.
+ - Tor now uses Autoconf version 2.63 or later, and Automake 1.11 or
+ later (released in 2008 and 2009 respectively). If you are
+ building Tor from the git repository instead of from the source
+ distribution, and your tools are older than this, you will need to
+ upgrade. Closes ticket 17732.
+
+ o Major bugfixes (security, pointers):
+ - Avoid a difficult-to-trigger heap corruption attack when extending
+ a smartlist to contain over 16GB of pointers. Fixes bug 18162;
+ bugfix on 0.1.1.11-alpha, which fixed a related bug incompletely.
+ Reported by Guido Vranken.
+
+ o Major bugfixes (bridges, pluggable transports):
+ - Modify the check for OR connections to private addresses. Allow
+ bridges on private addresses, including pluggable transports that
+ ignore the (potentially private) address in the bridge line. Fixes
+ bug 18517; bugfix on 0.2.8.1-alpha. Reported by gk, patch by teor.
+
+ o Major bugfixes (compilation):
+ - Repair hardened builds under the clang compiler. Previously, our
+ use of _FORTIFY_SOURCE would conflict with clang's address
+ sanitizer. Fixes bug 14821; bugfix on 0.2.5.4-alpha.
+
+ o Major bugfixes (crash on shutdown):
+ - Correctly handle detaching circuits from muxes when shutting down.
+ Fixes bug 18116; bugfix on 0.2.8.1-alpha.
+ - Fix an assert-on-exit bug related to counting memory usage in
+ rephist.c. Fixes bug 18651; bugfix on 0.2.8.1-alpha.
+
+ o Major bugfixes (crash on startup):
+ - Fix a segfault during startup: If a Unix domain socket was
+ configured as listener (such as a ControlSocket or a SocksPort
+ "unix:" socket), and tor was started as root but not configured to
+ switch to another user, tor would segfault while trying to string
+ compare a NULL value. Fixes bug 18261; bugfix on 0.2.8.1-alpha.
+ Patch by weasel.
+
+ o Major bugfixes (dns proxy mode, crash):
+ - Avoid crashing when running as a DNS proxy. Fixes bug 16248;
+ bugfix on 0.2.0.1-alpha. Patch from "cypherpunks".
+
+ o Major bugfixes (relays, bridge clients):
+ - Ensure relays always allow IPv4 OR and Dir connections. Ensure
+ bridge clients use the address configured in the bridge line.
+ Fixes bug 18348; bugfix on 0.2.8.1-alpha. Reported by sysrqb,
+ patch by teor.
+
+ o Major bugfixes (voting):
+ - Actually enable support for authorities to match routers by their
+ Ed25519 identities. Previously, the code had been written, but
+ some debugging code that had accidentally been left in the
+ codebase made it stay turned off. Fixes bug 17702; bugfix
+ on 0.2.7.2-alpha.
+ - When collating votes by Ed25519 identities, authorities now
+ include a "NoEdConsensus" flag if the ed25519 value (or lack
+ thereof) for a server does not reflect the majority consensus.
+ Related to bug 17668; bugfix on 0.2.7.2-alpha.
+ - When generating a vote with keypinning disabled, never include two
+ entries for the same ed25519 identity. This bug was causing
+ authorities to generate votes that they could not parse when a
+ router violated key pinning by changing its RSA identity but
+ keeping its Ed25519 identity. Fixes bug 17668; fixes part of bug
+ 18318. Bugfix on 0.2.7.2-alpha.
+
+ o Minor features (security, win32):
+ - Set SO_EXCLUSIVEADDRUSE on Win32 to avoid a local port-stealing
+ attack. Fixes bug 18123; bugfix on all tor versions. Patch
+ by teor.
+
+ o Minor features (bug-resistance):
+ - Make Tor survive errors involving connections without a
+ corresponding event object. Previously we'd fail with an
+ assertion; now we produce a log message. Related to bug 16248.
+
+ o Minor features (build):
+ - Detect systems with FreeBSD-derived kernels (such as GNU/kFreeBSD)
+ as having possible IPFW support. Closes ticket 18448. Patch from
+ Steven Chamberlain.
+
+ o Minor features (code hardening):
+ - Use tor_snprintf() and tor_vsnprintf() even in external and low-
+ level code, to harden against accidental failures to NUL-
+ terminate. Part of ticket 17852. Patch from jsturgix. Found
+ with Flawfinder.
+
+ o Minor features (crypto):
+ - Validate the hard-coded Diffie-Hellman parameters and ensure that
+ p is a safe prime, and g is a suitable generator. Closes
+ ticket 18221.
+
+ o Minor features (geoip):
+ - Update geoip and geoip6 to the March 3 2016 Maxmind GeoLite2
+ Country database.
+
+ o Minor features (hidden service directory):
+ - Streamline relay-side hsdir handling: when relays consider whether
+ to accept an uploaded hidden service descriptor, they no longer
+ check whether they are one of the relays in the network that is
+ "supposed" to handle that descriptor. Implements ticket 18332.
+
+ o Minor features (IPv6):
+ - Add ClientPreferIPv6DirPort, which is set to 0 by default. If set
+ to 1, tor prefers IPv6 directory addresses.
+ - Add ClientUseIPv4, which is set to 1 by default. If set to 0, tor
+ avoids using IPv4 for client OR and directory connections.
+ - Try harder to obey the IP version restrictions "ClientUseIPv4 0",
+ "ClientUseIPv6 0", "ClientPreferIPv6ORPort", and
+ "ClientPreferIPv6DirPort". Closes ticket 17840; patch by teor.
+
+ o Minor features (linux seccomp2 sandbox):
+ - Reject attempts to change our Address with "Sandbox 1" enabled.
+ Changing Address with Sandbox turned on would never actually work,
+ but previously it would fail in strange and confusing ways. Found
+ while fixing 18548.
+
+ o Minor features (robustness):
+ - Exit immediately with an error message if the code attempts to use
+ Libevent without having initialized it. This should resolve some
+ frequently-made mistakes in our unit tests. Closes ticket 18241.
+
+ o Minor features (unix domain sockets):
+ - Add a new per-socket option, RelaxDirModeCheck, to allow creating
+ Unix domain sockets without checking the permissions on the parent
+ directory. (Tor checks permissions by default because some
+ operating systems only check permissions on the parent directory.
+ However, some operating systems do look at permissions on the
+ socket, and tor's default check is unneeded.) Closes ticket 18458.
+ Patch by weasel.
+
+ o Minor bugfixes (exit policies, security):
+ - Refresh an exit relay's exit policy when interface addresses
+ change. Previously, tor only refreshed the exit policy when the
+ configured external address changed. Fixes bug 18208; bugfix on
+ 0.2.7.3-rc. Patch by teor.
+
+ o Minor bugfixes (security, hidden services):
+ - Prevent hidden services connecting to client-supplied rendezvous
+ addresses that are reserved as internal or multicast. Fixes bug
+ 8976; bugfix on 0.2.3.21-rc. Patch by dgoulet and teor.
+
+ o Minor bugfixes (build):
+ - Do not link the unit tests against both the testing and non-
+ testing versions of the static libraries. Fixes bug 18490; bugfix
+ on 0.2.7.1-alpha.
+ - Avoid spurious failures from configure files related to calling
+ exit(0) in TOR_SEARCH_LIBRARY. Fixes bug 18625; bugfix on
+ 0.2.0.1-alpha. Patch from "cypherpunks".
+ - Silence spurious clang-scan warnings in the ed25519_donna code by
+ explicitly initializing some objects. Fixes bug 18384; bugfix on
+ 0.2.7.2-alpha. Patch by teor.
+
+ o Minor bugfixes (client, bootstrap):
+ - Count receipt of new microdescriptors as progress towards
+ bootstrapping. Previously, with EntryNodes set, Tor might not
+ successfully repopulate the guard set on bootstrapping. Fixes bug
+ 16825; bugfix on 0.2.3.1-alpha.
+
+ o Minor bugfixes (code correctness):
+ - Update to the latest version of Trunnel, which tries harder to
+ avoid generating code that can invoke memcpy(p,NULL,0). Bug found
+ by clang address sanitizer. Fixes bug 18373; bugfix
+ on 0.2.7.2-alpha.
+
+ o Minor bugfixes (configuration):
+ - Fix a tiny memory leak when parsing a port configuration ending in
+ ":auto". Fixes bug 18374; bugfix on 0.2.3.3-alpha.
+
+ o Minor bugfixes (containers):
+ - If we somehow attempt to construct a heap with more than
+ 1073741822 elements, avoid an integer overflow when maintaining
+ the heap property. Fixes bug 18296; bugfix on 0.1.2.1-alpha.
+
+ o Minor bugfixes (correctness):
+ - Fix a bad memory handling bug that would occur if we had queued a
+ cell on a channel's incoming queue. Fortunately, we can't actually
+ queue a cell like that as our code is constructed today, but it's
+ best to avoid this kind of error, even if there isn't any code
+ that triggers it today. Fixes bug 18570; bugfix on 0.2.4.4-alpha.
+
+ o Minor bugfixes (directory):
+ - When generating a URL for a directory server on an IPv6 address,
+ wrap the IPv6 address in square brackets. Fixes bug 18051; bugfix
+ on 0.2.3.9-alpha. Patch from Malek.
+
+ o Minor bugfixes (fallback directory mirrors):
+ - When requesting extrainfo descriptors from a trusted directory
+ server, check whether it is an authority or a fallback directory
+ which supports extrainfo descriptors. Fixes bug 18489; bugfix on
+ 0.2.4.7-alpha. Reported by atagar, patch by teor.
+
+ o Minor bugfixes (hidden service, client):
+ - Handle the case where the user makes several fast consecutive
+ requests to the same .onion address. Previously, the first six
+ requests would each trigger a descriptor fetch, each picking a
+ directory (there are 6 overall) and the seventh one would fail
+ because no directories were left, thereby triggering a close on
+ all current directory connections asking for the hidden service.
+ The solution here is to not close the connections if we have
+ pending directory fetches. Fixes bug 15937; bugfix
+ on 0.2.7.1-alpha.
+
+ o Minor bugfixes (hidden service, control port):
+ - Add the onion address to the HS_DESC event for the UPLOADED action
+ both on success or failure. It was previously hardcoded with
+ UNKNOWN. Fixes bug 16023; bugfix on 0.2.7.2-alpha.
+
+ o Minor bugfixes (hidden service, directory):
+ - Bridges now refuse "rendezvous2" (hidden service descriptor)
+ publish attempts. Suggested by ticket 18332.
+
+ o Minor bugfixes (linux seccomp2 sandbox):
+ - Allow the setrlimit syscall, and the prlimit and prlimit64
+ syscalls, which some libc implementations use under the hood.
+ Fixes bug 15221; bugfix on 0.2.5.1-alpha.
+ - Avoid a 10-second delay when starting as a client with "Sandbox 1"
+ enabled and no DNS resolvers configured. This should help TAILS
+ start up faster. Fixes bug 18548; bugfix on 0.2.5.1-alpha.
+ - Fix the sandbox's interoperability with unix domain sockets under
+ setuid. Fixes bug 18253; bugfix on 0.2.8.1-alpha.
+
+ o Minor bugfixes (logging):
+ - When logging information about an unparsable networkstatus vote or
+ consensus, do not say "vote" when we mean consensus. Fixes bug
+ 18368; bugfix on 0.2.0.8-alpha.
+ - Scrub service name in "unrecognized service ID" log messages.
+ Fixes bug 18600; bugfix on 0.2.4.11-alpha.
+ - Downgrade logs and backtraces about IP versions to info-level.
+ Only log backtraces once each time tor runs. Assists in diagnosing
+ bug 18351; bugfix on 0.2.8.1-alpha. Reported by sysrqb and
+ Christian, patch by teor.
+
+ o Minor bugfixes (memory safety):
+ - Avoid freeing an uninitialized pointer when opening a socket fails
+ in get_interface_addresses_ioctl(). Fixes bug 18454; bugfix on
+ 0.2.3.11-alpha. Reported by toralf and "cypherpunks", patch
+ by teor.
+ - Correctly duplicate addresses in get_interface_address6_list().
+ Fixes bug 18454; bugfix on 0.2.8.1-alpha. Reported by toralf,
+ patch by "cypherpunks".
+ - Fix a memory leak in tor-gencert. Fixes part of bug 18672; bugfix
+ on 0.2.0.1-alpha.
+ - Fix a memory leak in "tor --list-fingerprint". Fixes part of bug
+ 18672; bugfix on 0.2.5.1-alpha.
+
+ o Minor bugfixes (private directory):
+ - Prevent a race condition when creating private directories. Fixes
+ part of bug 17852; bugfix on 0.0.2pre13. Part of ticket 17852.
+ Patch from jsturgix. Found with Flawfinder.
+
+ o Minor bugfixes (test networks, IPv6):
+ - Allow internal IPv6 addresses in descriptors in test networks.
+ Fixes bug 17153; bugfix on 0.2.3.16-alpha. Patch by teor, reported
+ by karsten.
+
+ o Minor bugfixes (testing):
+ - We no longer disable assertions in the unit tests when coverage is
+ enabled. Instead, we require you to say --disable-asserts-in-tests
+ to the configure script if you need assertions disabled in the
+ unit tests (for example, if you want to perform branch coverage).
+ Fixes bug 18242; bugfix on 0.2.7.1-alpha.
+
+ o Minor bugfixes (time parsing):
+ - Avoid overflow in tor_timegm when parsing dates in and after 2038
+ on platforms with 32-bit time_t. Fixes bug 18479; bugfix on
+ 0.0.2pre14. Patch by teor.
+
+ o Minor bugfixes (tor-gencert):
+ - Correctly handle the case where an authority operator enters a
+ passphrase but sends an EOF before sending a newline. Fixes bug
+ 17443; bugfix on 0.2.0.20-rc. Found by junglefowl.
+
+ o Code simplification and refactoring:
+ - Quote all the string interpolations in configure.ac -- even those
+ which we are pretty sure can't contain spaces. Closes ticket
+ 17744. Patch from zerosion.
+ - Remove specialized code for non-inplace AES_CTR. 99% of our AES is
+ inplace, so there's no need to have a separate implementation for
+ the non-inplace code. Closes ticket 18258. Patch from Malek.
+ - Simplify return types for some crypto functions that can't
+ actually fail. Patch from Hassan Alsibyani. Closes ticket 18259.
+
+ o Documentation:
+ - Change build messages to refer to "Fedora" instead of "Fedora
+ Core", and "dnf" instead of "yum". Closes tickets 18459 and 18426.
+ Patches from "icanhasaccount" and "cypherpunks".
+
+ o Removed features:
+ - We no longer maintain an internal freelist in memarea.c.
+ Allocators should be good enough to make this code unnecessary,
+ and it's doubtful that it ever had any performance benefit.
+
+ o Testing:
+ - Fix several warnings from clang's address sanitizer produced in
+ the unit tests.
+ - Treat backtrace test failures as expected on FreeBSD until we
+ solve bug 17808. Closes ticket 18204.
+
+
+Changes in version 0.2.8.1-alpha - 2016-02-04
+ Tor 0.2.8.1-alpha is the first alpha release in its series. It
+ includes numerous small features and bugfixes against previous Tor
+ versions, and numerous small infrastructure improvements. The most
+ notable features are a set of improvements to the directory subsystem.
+
+ o Major features (security, Linux):
+ - When Tor starts as root on Linux and is told to switch user ID, it
+ can now retain the capability to bind to low ports. By default,
+ Tor will do this only when it's switching user ID and some low
+ ports have been configured. You can change this behavior with the
+ new option KeepBindCapabilities. Closes ticket 8195.
+
+ o Major features (directory system):
+ - When bootstrapping multiple consensus downloads at a time, use the
+ first one that starts downloading, and close the rest. This
+ reduces failures when authorities or fallback directories are slow
+ or down. Together with the code for feature 15775, this feature
+ should reduces failures due to fallback churn. Implements ticket
+ 4483. Patch by "teor". Implements IPv4 portions of proposal 210 by
+ "mikeperry" and "teor".
+ - Include a trial list of default fallback directories, based on an
+ opt-in survey of suitable relays. Doing this should make clients
+ bootstrap more quickly and reliably, and reduce the load on the
+ directory authorities. Closes ticket 15775. Patch by "teor".
+ Candidates identified using an OnionOO script by "weasel", "teor",
+ "gsathya", and "karsten".
+ - Previously only relays that explicitly opened a directory port
+ (DirPort) accepted directory requests from clients. Now all
+ relays, with and without a DirPort, accept and serve tunneled
+ directory requests that they receive through their ORPort. You can
+ disable this behavior using the new DirCache option. Closes
+ ticket 12538.
+
+ o Major key updates:
+ - Update the V3 identity key for the dannenberg directory authority:
+ it was changed on 18 November 2015. Closes task 17906. Patch
+ by "teor".
+
+ o Minor features (security, clock):
+ - Warn when the system clock appears to move back in time (when the
+ state file was last written in the future). Tor doesn't know that
+ consensuses have expired if the clock is in the past. Patch by
+ "teor". Implements ticket 17188.
+
+ o Minor features (security, exit policies):
+ - ExitPolicyRejectPrivate now rejects more private addresses by
+ default. Specifically, it now rejects the relay's outbound bind
+ addresses (if configured), and the relay's configured port
+ addresses (such as ORPort and DirPort). Fixes bug 17027; bugfix on
+ 0.2.0.11-alpha. Patch by "teor".
+
+ o Minor features (security, memory erasure):
+ - Set the unused entries in a smartlist to NULL. This helped catch
+ a (harmless) bug, and shouldn't affect performance too much.
+ Implements ticket 17026.
+ - Use SecureMemoryWipe() function to securely clean memory on
+ Windows. Previously we'd use OpenSSL's OPENSSL_cleanse() function.
+ Implements feature 17986.
+ - Use explicit_bzero or memset_s when present. Previously, we'd use
+ OpenSSL's OPENSSL_cleanse() function. Closes ticket 7419; patches
+ from <logan@hackers.mu> and <selven@hackers.mu>.
+ - Make memwipe() do nothing when passed a NULL pointer or buffer of
+ zero size. Check size argument to memwipe() for underflow. Fixes
+ bug 18089; bugfix on 0.2.3.25 and 0.2.4.6-alpha. Reported by "gk",
+ patch by "teor".
+
+ o Minor features (security, RNG):
+ - Adjust Tor's use of OpenSSL's RNG APIs so that they absolutely,
+ positively are not allowed to fail. Previously we depended on
+ internal details of OpenSSL's behavior. Closes ticket 17686.
+ - Never use the system entropy output directly for anything besides
+ seeding the PRNG. When we want to generate important keys, instead
+ of using system entropy directly, we now hash it with the PRNG
+ stream. This may help resist certain attacks based on broken OS
+ entropy implementations. Closes part of ticket 17694.
+ - Use modern system calls (like getentropy() or getrandom()) to
+ generate strong entropy on platforms that have them. Closes
+ ticket 13696.
+
+ o Minor features (accounting):
+ - Added two modes to the AccountingRule option: One for limiting
+ only the number of bytes sent ("AccountingRule out"), and one for
+ limiting only the number of bytes received ("AccountingRule in").
+ Closes ticket 15989; patch from "unixninja92".
+
+ o Minor features (build):
+ - Since our build process now uses "make distcheck", we no longer
+ force "make dist" to depend on "make check". Closes ticket 17893;
+ patch from "cypherpunks."
+ - Tor now builds successfully with the recent OpenSSL 1.1
+ development branch, and with the latest LibreSSL. Closes tickets
+ 17549, 17921, and 17984.
+
+ o Minor features (controller):
+ - Adds the FallbackDir entries to 'GETINFO config/defaults'. Closes
+ tickets 16774 and 17817. Patch by George Tankersley.
+ - New 'GETINFO hs/service/desc/id/' command to retrieve a hidden
+ service descriptor from a service's local hidden service
+ descriptor cache. Closes ticket 14846.
+ - Add 'GETINFO exit-policy/reject-private/[default,relay]', so
+ controllers can examine the the reject rules added by
+ ExitPolicyRejectPrivate. This makes it easier for stem to display
+ exit policies.
+
+ o Minor features (crypto):
+ - Add SHA512 support to crypto.c. Closes ticket 17663; patch from
+ George Tankersley.
+ - Add SHA3 and SHAKE support to crypto.c. Closes ticket 17783.
+ - When allocating a digest state object, allocate no more space than
+ we actually need. Previously, we would allocate as much space as
+ the state for the largest algorithm would need. This change saves
+ up to 672 bytes per circuit. Closes ticket 17796.
+ - Improve performance when hashing non-multiple of 8 sized buffers,
+ based on Andrew Moon's public domain SipHash-2-4 implementation.
+ Fixes bug 17544; bugfix on 0.2.5.3-alpha.
+
+ o Minor features (directory downloads):
+ - Wait for busy authorities and fallback directories to become non-
+ busy when bootstrapping. (A similar change was made in 6c443e987d
+ for directory caches chosen from the consensus.) Closes ticket
+ 17864; patch by "teor".
+ - Add UseDefaultFallbackDirs, which enables any hard-coded fallback
+ directory mirrors. The default is 1; set it to 0 to disable
+ fallbacks. Implements ticket 17576. Patch by "teor".
+
+ o Minor features (geoip):
+ - Update geoip and geoip6 to the January 5 2016 Maxmind GeoLite2
+ Country database.
+
+ o Minor features (IPv6):
+ - Add an argument 'ipv6=address:orport' to the DirAuthority and
+ FallbackDir torrc options, to specify an IPv6 address for an
+ authority or fallback directory. Add hard-coded ipv6 addresses for
+ directory authorities that have them. Closes ticket 17327; patch
+ from Nick Mathewson and "teor".
+ - Add address policy assume_action support for IPv6 addresses.
+ - Limit IPv6 mask bits to 128.
+ - Warn when comparing against an AF_UNSPEC address in a policy, it's
+ almost always a bug. Closes ticket 17863; patch by "teor".
+ - Allow users to configure directory authorities and fallback
+ directory servers with IPv6 addresses and ORPorts. Resolves
+ ticket 6027.
+ - routerset_parse now accepts IPv6 literal addresses. Fixes bug
+ 17060; bugfix on 0.2.1.3-alpha. Patch by "teor".
+ - Make tor_ersatz_socketpair work on IPv6-only systems. Fixes bug
+ 17638; bugfix on 0.0.2pre8. Patch by "teor".
+
+ o Minor features (logging):
+ - When logging to syslog, allow a tag to be added to the syslog
+ identity (the string prepended to every log message). The tag can
+ be configured with SyslogIdentityTag and defaults to none. Setting
+ it to "foo" will cause logs to be tagged as "Tor-foo". Closes
+ ticket 17194.
+
+ o Minor features (portability):
+ - Use timingsafe_memcmp() where available. Closes ticket 17944;
+ patch from <logan@hackers.mu>.
+
+ o Minor features (relay, address discovery):
+ - Add a family argument to get_interface_addresses_raw() and
+ subfunctions to make network interface address interogation more
+ efficient. Now Tor can specifically ask for IPv4, IPv6 or both
+ types of interfaces from the operating system. Resolves
+ ticket 17950.
+ - When get_interface_address6_list(.,AF_UNSPEC,.) is called and
+ fails to enumerate interface addresses using the platform-specific
+ API, have it rely on the UDP socket fallback technique to try and
+ find out what IP addresses (both IPv4 and IPv6) our machine has.
+ Resolves ticket 17951.
+
+ o Minor features (replay cache):
+ - The replay cache now uses SHA256 instead of SHA1. Implements
+ feature 8961. Patch by "teor", issue reported by "rransom".
+
+ o Minor features (unix file permissions):
+ - Defer creation of Unix sockets until after setuid. This avoids
+ needing CAP_CHOWN and CAP_FOWNER when using systemd's
+ CapabilityBoundingSet, or chown and fowner when using SELinux.
+ Implements part of ticket 17562. Patch from Jamie Nguyen.
+ - If any directory created by Tor is marked as group readable, the
+ filesystem group is allowed to be either the default GID or the
+ root user. Allowing root to read the DataDirectory prevents the
+ need for CAP_READ_SEARCH when using systemd's
+ CapabilityBoundingSet, or dac_read_search when using SELinux.
+ Implements part of ticket 17562. Patch from Jamie Nguyen.
+ - Introduce a new DataDirectoryGroupReadable option. If it is set to
+ 1, the DataDirectory will be made readable by the default GID.
+ Implements part of ticket 17562. Patch from Jamie Nguyen.
+
+ o Minor bugfixes (accounting):
+ - The max bandwidth when using 'AccountRule sum' is now correctly
+ logged. Fixes bug 18024; bugfix on 0.2.6.1-alpha. Patch
+ from "unixninja92".
+
+ o Minor bugfixes (code correctness):
+ - When closing an entry connection, generate a warning if we should
+ have sent an end cell for it but we haven't. Fixes bug 17876;
+ bugfix on 0.2.3.2-alpha.
+ - Assert that allocated memory held by the reputation code is freed
+ according to its internal counters. Fixes bug 17753; bugfix
+ on 0.1.1.1-alpha.
+ - Assert when the TLS contexts fail to initialize. Fixes bug 17683;
+ bugfix on 0.0.6.
+
+ o Minor bugfixes (compilation):
+ - Mark all object files that include micro-revision.i as depending
+ on it, so as to make parallel builds more reliable. Fixes bug
+ 17826; bugfix on 0.2.5.1-alpha.
+ - Don't try to use the pthread_condattr_setclock() function unless
+ it actually exists. Fixes compilation on NetBSD-6.x. Fixes bug
+ 17819; bugfix on 0.2.6.3-alpha.
+ - Fix backtrace compilation on FreeBSD. Fixes bug 17827; bugfix
+ on 0.2.5.2-alpha.
+ - Fix compilation of sandbox.c with musl-libc. Fixes bug 17347;
+ bugfix on 0.2.5.1-alpha. Patch from 'jamestk'.
+ - Fix search for libevent libraries on OpenBSD (and other systems
+ that install libevent 1 and libevent 2 in parallel). Fixes bug
+ 16651; bugfix on 0.1.0.7-rc. Patch from "rubiate".
+ - Isolate environment variables meant for tests from the rest of the
+ build system. Fixes bug 17818; bugfix on 0.2.7.3-rc.
+ - Replace usage of 'INLINE' with 'inline'. Fixes bug 17804; bugfix
+ on 0.0.2pre8.
+ - Remove config.log only from make distclean, not from make clean.
+ Fixes bug 17924; bugfix on 0.2.4.1-alpha.
+
+ o Minor bugfixes (crypto):
+ - Check the return value of HMAC() and assert on failure. Fixes bug
+ 17658; bugfix on 0.2.3.6-alpha. Patch by "teor".
+
+ o Minor bugfixes (fallback directories):
+ - Mark fallbacks as "too busy" when they return a 503 response,
+ rather than just marking authorities. Fixes bug 17572; bugfix on
+ 0.2.4.7-alpha. Patch by "teor".
+
+ o Minor bugfixes (IPv6):
+ - Update the limits in max_dl_per_request for IPv6 address length.
+ Fixes bug 17573; bugfix on 0.2.1.5-alpha.
+
+ o Minor bugfixes (linux seccomp2 sandbox):
+ - Fix a crash when using offline master ed25519 keys with the Linux
+ seccomp2 sandbox enabled. Fixes bug 17675; bugfix on 0.2.7.3-rc.
+
+ o Minor bugfixes (logging):
+ - In log messages that include a function name, use __FUNCTION__
+ instead of __PRETTY_FUNCTION__. In GCC, these are synonymous, but
+ with clang __PRETTY_FUNCTION__ has extra information we don't
+ need. Fixes bug 16563; bugfix on 0.0.2pre8. Fix by Tom van
+ der Woerdt.
+ - Remove needless quotes from a log message about unparseable
+ addresses. Fixes bug 17843; bugfix on 0.2.3.3-alpha.
+
+ o Minor bugfixes (portability):
+ - Remove an #endif from configure.ac so that we correctly detect the
+ presence of in6_addr.s6_addr32. Fixes bug 17923; bugfix
+ on 0.2.0.13-alpha.
+
+ o Minor bugfixes (relays):
+ - Check that both the ORPort and DirPort (if present) are reachable
+ before publishing a relay descriptor. Otherwise, relays publish a
+ descriptor with DirPort 0 when the DirPort reachability test takes
+ longer than the ORPort reachability test. Fixes bug 18050; bugfix
+ on 0.1.0.1-rc. Reported by "starlight", patch by "teor".
+
+ o Minor bugfixes (relays, hidden services):
+ - Refuse connection requests to private OR addresses unless
+ ExtendAllowPrivateAddresses is set. Previously, tor would connect,
+ then refuse to send any cells to a private address. Fixes bugs
+ 17674 and 8976; bugfix on 0.2.3.21-rc. Patch by "teor".
+
+ o Minor bugfixes (safe logging):
+ - When logging a malformed hostname received through socks4, scrub
+ it if SafeLogging says we should. Fixes bug 17419; bugfix
+ on 0.1.1.16-rc.
+
+ o Minor bugfixes (statistics code):
+ - Consistently check for overflow in round_*_to_next_multiple_of
+ functions, and add unit tests with additional and maximal values.
+ Fixes part of bug 13192; bugfix on 0.2.2.1-alpha.
+ - Handle edge cases in the laplace functions: avoid division by
+ zero, avoid taking the log of zero, and silence clang type
+ conversion warnings using round and trunc. Add unit tests for edge
+ cases with maximal values. Fixes part of bug 13192; bugfix
+ on 0.2.6.2-alpha.
+
+ o Minor bugfixes (testing):
+ - The test for log_heartbeat was incorrectly failing in timezones
+ with non-integer offsets. Instead of comparing the end of the time
+ string against a constant, compare it to the output of
+ format_local_iso_time when given the correct input. Fixes bug
+ 18039; bugfix on 0.2.5.4-alpha.
+ - Make unit tests pass on IPv6-only systems, and systems without
+ localhost addresses (like some FreeBSD jails). Fixes bug 17632;
+ bugfix on 0.2.7.3-rc. Patch by "teor".
+ - Fix a memory leak in the ntor test. Fixes bug 17778; bugfix
+ on 0.2.4.8-alpha.
+ - Check the full results of SHA256 and SHA512 digests in the unit
+ tests. Bugfix on 0.2.2.4-alpha. Patch by "teor".
+
+ o Code simplification and refactoring:
+ - Move logging of redundant policy entries in
+ policies_parse_exit_policy_internal into its own function. Closes
+ ticket 17608; patch from "juce".
+ - Extract the more complicated parts of circuit_mark_for_close()
+ into a new function that we run periodically before circuits are
+ freed. This change removes more than half of the functions
+ currently in the "blob". Closes ticket 17218.
+ - Clean up a little duplicated code in
+ crypto_expand_key_material_TAP(). Closes ticket 17587; patch
+ from "pfrankw".
+ - Decouple the list of streams waiting to be attached to circuits
+ from the overall connection list. This change makes it possible to
+ attach streams quickly while simplifying Tor's callgraph and
+ avoiding O(N) scans of the entire connection list. Closes
+ ticket 17590.
+ - When a direct directory request fails immediately on launch,
+ instead of relaunching that request from inside the code that
+ launches it, instead mark the connection for teardown. This change
+ simplifies Tor's callback and prevents the directory-request
+ launching code from invoking itself recursively. Closes
+ ticket 17589
+ - Remove code for configuring OpenSSL dynamic locks; OpenSSL doesn't
+ use them. Closes ticket 17926.
+
+ o Documentation:
+ - Add a description of the correct use of the '--keygen' command-
+ line option. Closes ticket 17583; based on text by 's7r'.
+ - Document the minimum HeartbeatPeriod value. Closes ticket 15638.
+ - Explain actual minima for BandwidthRate. Closes ticket 16382.
+ - Fix a minor formatting typo in the manpage. Closes ticket 17791.
+ - Mention torspec URL in the manpage and point the reader to it
+ whenever we mention a document that belongs in torspce. Fixes
+ issue 17392.
+
+ o Removed features:
+ - Remove client-side support for connecting to Tor relays running
+ versions of Tor before 0.2.3.6-alpha. These relays didn't support
+ the v3 TLS handshake protocol, and are no longer allowed on the
+ Tor network. Implements the client side of ticket 11150. Based on
+ patches by Tom van der Woerdt.
+
+ o Testing:
+ - Add unit tests to check for common RNG failure modes, such as
+ returning all zeroes, identical values, or incrementing values
+ (OpenSSL's rand_predictable feature). Patch by "teor".
+ - Log more information when the backtrace tests fail. Closes ticket
+ 17892. Patch from "cypherpunks."
+ - Always test both ed25519 backends, so that we can be sure that our
+ batch-open replacement code works. Part of ticket 16794.
+ - Cover dns_resolve_impl() in dns.c with unit tests. Implements a
+ portion of ticket 16831.
+ - More unit tests for compat_libevent.c, procmon.c, tortls.c,
+ util_format.c, directory.c, and options_validate.c. Closes tickets
+ 17075, 17082, 17084, 17003, and 17076 respectively. Patches from
+ Ola Bini.
+ - Unit tests for directory_handle_command_get. Closes ticket 17004.
+ Patch from Reinaldo de Souza Jr.
+
+
Changes in version 0.2.7.6 - 2015-12-10
Tor version 0.2.7.6 fixes a major bug in entry guard selection, as
well as a minor bug in hidden service reliability.
@@ -102,13 +774,14 @@ Changes in version 0.2.7.4-rc - 2015-10-21
bugfix on 0.2.5.1-alpha. Patch from 'jamestk'.
o Minor bugfixes (portability):
- - Use libexecinfo on FreeBSD to enable backtrace support. Fixes part
- of bug 17151; bugfix on 0.2.5.2-alpha. Patch from Marcin Cieślak.
+ - Use libexecinfo on FreeBSD to enable backtrace support. Fixes
+ part of bug 17151; bugfix on 0.2.5.2-alpha. Patch from
+ Marcin Cieślak.
o Minor bugfixes (sandbox):
- Add the "hidserv-stats" filename to our sandbox filter for the
HiddenServiceStatistics option to work properly. Fixes bug 17354;
- bugfix on tor-0.2.6.2-alpha. Patch from David Goulet.
+ bugfix on 0.2.6.2-alpha. Patch from David Goulet.
o Minor bugfixes (testing):
- Add unit tests for get_interface_address* failure cases. Fixes bug
@@ -302,7 +975,7 @@ Changes in version 0.2.7.3-rc - 2015-09-25
o Minor bugfixes (open file limit):
- Fix set_max_file_descriptors() to set by default the max open file
limit to the current limit when setrlimit() fails. Fixes bug
- 16274; bugfix on tor- 0.2.0.10-alpha. Patch by dgoulet.
+ 16274; bugfix on 0.2.0.10-alpha. Patch by dgoulet.
o Minor bugfixes (portability):
- Try harder to normalize the exit status of the Tor process to the
@@ -776,7 +1449,7 @@ Changes in version 0.2.6.8 - 2015-05-21
- Revert commit that made directory authorities assign the HSDir
flag to relay without a DirPort; this was bad because such relays
can't handle BEGIN_DIR cells. Fixes bug 15850; bugfix
- on tor-0.2.6.3-alpha.
+ on 0.2.6.3-alpha.
o Minor bugfixes (hidden service, backport from 0.2.7.1-alpha):
- Fix an out-of-bounds read when parsing invalid INTRODUCE2 cells on
@@ -817,7 +1490,7 @@ Changes in version 0.2.7.1-alpha - 2015-05-12
- Revert commit that made directory authorities assign the HSDir
flag to relay without a DirPort; this was bad because such relays
can't handle BEGIN_DIR cells. Fixes bug 15850; bugfix
- on tor-0.2.6.3-alpha.
+ on 0.2.6.3-alpha.
o Minor features (clock-jump tolerance):
- Recover better when our clock jumps back many hours, like might
@@ -997,7 +1670,7 @@ Changes in version 0.2.7.1-alpha - 2015-05-12
o Removed code:
- Remove `USE_OPENSSL_BASE64` and the corresponding fallback code
and always use the internal Base64 decoder. The internal decoder
- has been part of tor since tor-0.2.0.10-alpha, and no one should
+ has been part of tor since 0.2.0.10-alpha, and no one should
be using the OpenSSL one. Part of ticket 15652.
- Remove the 'tor_strclear()' function; use memwipe() instead.
Closes ticket 14922.
@@ -1040,6 +1713,30 @@ Changes in version 0.2.4.27 - 2015-04-06
Resolves ticket 15515.
+Changes in version 0.2.5.12 - 2015-04-06
+ Tor 0.2.5.12 backports two fixes from 0.2.6.7 for security issues that
+ could be used by an attacker to crash hidden services, or crash clients
+ visiting hidden services. Hidden services should upgrade as soon as
+ possible; clients should upgrade whenever packages become available.
+
+ This release also backports a simple improvement to make hidden
+ services a bit less vulnerable to denial-of-service attacks.
+
+ o Major bugfixes (security, hidden service):
+ - Fix an issue that would allow a malicious client to trigger an
+ assertion failure and halt a hidden service. Fixes bug 15600;
+ bugfix on 0.2.1.6-alpha. Reported by "disgleirio".
+ - Fix a bug that could cause a client to crash with an assertion
+ failure when parsing a malformed hidden service descriptor. Fixes
+ bug 15601; bugfix on 0.2.1.5-alpha. Found by "DonnchaC".
+
+ o Minor features (DoS-resistance, hidden service):
+ - Introduction points no longer allow multiple INTRODUCE1 cells to
+ arrive on the same circuit. This should make it more expensive for
+ attackers to overwhelm hidden services with introductions.
+ Resolves ticket 15515.
+
+
Changes in version 0.2.6.7 - 2015-04-06
Tor 0.2.6.7 fixes two security issues that could be used by an
attacker to crash hidden services, or crash clients visiting hidden
@@ -9002,7 +9699,7 @@ Changes in version 0.2.2.26-beta - 2011-05-17
at least _half_ the length of the store, not _twice_ the length
of the store. Bugfix on 0.2.2.6-alpha; fixes part of bug 2230.
- Fix a potential null-pointer dereference while computing a
- consensus. Bugfix on tor-0.2.0.3-alpha, found with the help of
+ consensus. Bugfix on 0.2.0.3-alpha, found with the help of
clang's analyzer.
- Avoid a possible null-pointer dereference when rebuilding the mdesc
cache without actually having any descriptors to cache. Bugfix on