|
@@ -3,6 +3,126 @@ 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.2.2.35 - 2011-12-16
|
|
|
+ Tor 0.2.2.35 fixes a critical heap-overflow security issue in Tor's
|
|
|
+ buffers code. Absolutely everybody should upgrade.
|
|
|
+
|
|
|
+ The bug relied on an incorrect calculation when making data continuous
|
|
|
+ in one of our IO buffers, if the first chunk of the buffer was
|
|
|
+ misaligned by just the wrong amount. The miscalculation would allow an
|
|
|
+ attacker to overflow a piece of heap-allocated memory. To mount this
|
|
|
+ attack, the attacker would need to either open a SOCKS connection to
|
|
|
+ Tor's SocksPort (usually restricted to localhost), or target a Tor
|
|
|
+ instance configured to make its connections through a SOCKS proxy
|
|
|
+ (which Tor does not do by default).
|
|
|
+
|
|
|
+ Good security practice requires that all heap-overflow bugs should be
|
|
|
+ presumed to be exploitable until proven otherwise, so we are treating
|
|
|
+ this as a potential code execution attack. Please upgrade immediately!
|
|
|
+ This bug does not affect bufferevents-based builds of Tor. Special
|
|
|
+ thanks to "Vektor" for reporting this issue to us!
|
|
|
+
|
|
|
+ Tor 0.2.2.35 also fixes several bugs in previous versions, including
|
|
|
+ crash bugs for unusual configurations, and a long-term bug that
|
|
|
+ would prevent Tor from starting on Windows machines with draconian
|
|
|
+ AV software.
|
|
|
+
|
|
|
+ With this release, we remind everyone that 0.2.0.x has reached its
|
|
|
+ formal end-of-life. Those Tor versions have many known flaws, and
|
|
|
+ nobody should be using them. You should upgrade -- ideally to the
|
|
|
+ 0.2.2.x series. If you're using a Linux or BSD and its packages are
|
|
|
+ obsolete, stop using those packages and upgrade anyway.
|
|
|
+
|
|
|
+ The Tor 0.2.1.x series is also approaching its end-of-life: it will no
|
|
|
+ longer receive support after some time in early 2012.
|
|
|
+
|
|
|
+ o Major bugfixes:
|
|
|
+ - Fix a heap overflow bug that could occur when trying to pull
|
|
|
+ data into the first chunk of a buffer, when that chunk had
|
|
|
+ already had some data drained from it. Fixes CVE-2011-2778;
|
|
|
+ bugfix on 0.2.0.16-alpha. Reported by "Vektor".
|
|
|
+ - Initialize Libevent with the EVENT_BASE_FLAG_NOLOCK flag enabled, so
|
|
|
+ that it doesn't attempt to allocate a socketpair. This could cause
|
|
|
+ some problems on Windows systems with overzealous firewalls. Fix for
|
|
|
+ bug 4457; workaround for Libevent versions 2.0.1-alpha through
|
|
|
+ 2.0.15-stable.
|
|
|
+ - If we mark an OR connection for close based on a cell we process,
|
|
|
+ don't process any further cells on it. We already avoid further
|
|
|
+ reads on marked-for-close connections, but now we also discard the
|
|
|
+ cells we'd already read. Fixes bug 4299; bugfix on 0.2.0.10-alpha,
|
|
|
+ which was the first version where we might mark a connection for
|
|
|
+ close based on processing a cell on it.
|
|
|
+ - Correctly sanity-check that we don't underflow on a memory
|
|
|
+ allocation (and then assert) for hidden service introduction
|
|
|
+ point decryption. Bug discovered by Dan Rosenberg. Fixes bug 4410;
|
|
|
+ bugfix on 0.2.1.5-alpha.
|
|
|
+ - Fix a memory leak when we check whether a hidden service
|
|
|
+ descriptor has any usable introduction points left. Fixes bug
|
|
|
+ 4424. Bugfix on 0.2.2.25-alpha.
|
|
|
+ - Don't crash when we're running as a relay and don't have a GeoIP
|
|
|
+ file. Bugfix on 0.2.2.34; fixes bug 4340. This backports a fix
|
|
|
+ we've had in the 0.2.3.x branch already.
|
|
|
+ - When running as a client, do not print a misleading (and plain
|
|
|
+ wrong) log message that we're collecting "directory request"
|
|
|
+ statistics: clients don't collect statistics. Also don't create a
|
|
|
+ useless (because empty) stats file in the stats/ directory. Fixes
|
|
|
+ bug 4353; bugfix on 0.2.2.34.
|
|
|
+
|
|
|
+ o Minor bugfixes:
|
|
|
+ - Detect failure to initialize Libevent. This fix provides better
|
|
|
+ detection for future instances of bug 4457.
|
|
|
+ - Avoid frequent calls to the fairly expensive cull_wedged_cpuworkers
|
|
|
+ function. This was eating up hideously large amounts of time on some
|
|
|
+ busy servers. Fixes bug 4518; bugfix on 0.0.9.8.
|
|
|
+ - Resolve an integer overflow bug in smartlist_ensure_capacity().
|
|
|
+ Fixes bug 4230; bugfix on Tor 0.1.0.1-rc. Based on a patch by
|
|
|
+ Mansour Moufid.
|
|
|
+ - Don't warn about unused log_mutex in log.c when building with
|
|
|
+ --disable-threads using a recent GCC. Fixes bug 4437; bugfix on
|
|
|
+ 0.1.0.6-rc which introduced --disable-threads.
|
|
|
+ - When configuring, starting, or stopping an NT service, stop
|
|
|
+ immediately after the service configuration attempt has succeeded
|
|
|
+ or failed. Fixes bug 3963; bugfix on 0.2.0.7-alpha.
|
|
|
+ - When sending a NETINFO cell, include the original address
|
|
|
+ received for the other side, not its canonical address. Found
|
|
|
+ by "troll_un"; fixes bug 4349; bugfix on 0.2.0.10-alpha.
|
|
|
+ - Fix a typo in a hibernation-related log message. Fixes bug 4331;
|
|
|
+ bugfix on 0.2.2.23-alpha; found by "tmpname0901".
|
|
|
+ - Fix a memory leak in launch_direct_bridge_descriptor_fetch() that
|
|
|
+ occurred when a client tried to fetch a descriptor for a bridge
|
|
|
+ in ExcludeNodes. Fixes bug 4383; bugfix on 0.2.2.25-alpha.
|
|
|
+ - Backport fixes for a pair of compilation warnings on Windows.
|
|
|
+ Fixes bug 4521; bugfix on 0.2.2.28-beta and on 0.2.2.29-beta.
|
|
|
+ - If we had ever tried to call tor_addr_to_str on an address of
|
|
|
+ unknown type, we would have done a strdup on an uninitialized
|
|
|
+ buffer. Now we won't. Fixes bug 4529; bugfix on 0.2.1.3-alpha.
|
|
|
+ Reported by "troll_un".
|
|
|
+ - Correctly detect and handle transient lookup failures from
|
|
|
+ tor_addr_lookup. Fixes bug 4530; bugfix on 0.2.1.5-alpha.
|
|
|
+ Reported by "troll_un".
|
|
|
+ - Fix null-pointer access that could occur if TLS allocation failed.
|
|
|
+ Fixes bug 4531; bugfix on 0.2.0.20-rc. Found by "troll_un".
|
|
|
+ - Use tor_socket_t type for listener argument to accept(). Fixes bug
|
|
|
+ 4535; bugfix on 0.2.2.28-beta. Found by "troll_un".
|
|
|
+
|
|
|
+ o Minor features:
|
|
|
+ - Add two new config options for directory authorities:
|
|
|
+ AuthDirFastGuarantee sets a bandwidth threshold for guaranteeing the
|
|
|
+ Fast flag, and AuthDirGuardBWGuarantee sets a bandwidth threshold
|
|
|
+ that is always sufficient to satisfy the bandwidth requirement for
|
|
|
+ the Guard flag. Now it will be easier for researchers to simulate
|
|
|
+ Tor networks with different values. Resolves ticket 4484.
|
|
|
+ - When Tor ignores a hidden service specified in its configuration,
|
|
|
+ include the hidden service's directory in the warning message.
|
|
|
+ Previously, we would only tell the user that some hidden service
|
|
|
+ was ignored. Bugfix on 0.0.6; fixes bug 4426.
|
|
|
+ - Update to the December 6 2011 Maxmind GeoLite Country database.
|
|
|
+
|
|
|
+ o Packaging changes:
|
|
|
+ - Make it easier to automate expert package builds on Windows,
|
|
|
+ by removing an absolute path from makensis.exe command.
|
|
|
+
|
|
|
+
|
|
|
Changes in version 0.2.2.34 - 2011-10-26
|
|
|
Tor 0.2.2.34 fixes a critical anonymity vulnerability where an attacker
|
|
|
can deanonymize Tor users. Everybody should upgrade.
|