Tor Changelog

New in version

April 7th, 2015
  • Tor fixes two 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 contains two simple improvements to make hidden services a bit less vulnerable to denial-of-service attacks.
  • 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 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 Found by "DonnchaC".
  • 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.
  • Decrease the amount of reattempts that a hidden service performs when its rendezvous circuits fail. This reduces the computational cost for running a hidden service under heavy load. Resolves ticket 11447.

New in version RC (November 18th, 2013)

  • Tor is the fourth release candidate for the Tor 0.2.4.x series. It takes a variety of fixes from the 0.2.5.x branch to improve stability, performance, and better handling of edge cases.
  • Major features:
  • Re-enable TLS 1.1 and 1.2 when built with OpenSSL 1.0.1e or later. Resolves ticket 6055. (OpenSSL before 1.0.1 didn't have TLS 1.1 or 1.2, and OpenSSL from 1.0.1 through 1.0.1d had bugs that prevented renegotiation from working with TLS 1.1 or 1.2, so we had disabled them to solve bug 6033.)
  • Major bug fixes:
  • No longer stop reading or writing on cpuworker connections when our rate limiting buckets go empty. Now we should handle circuit handshake requests more promptly. Resolves bug 9731.
  • If we are unable to save a microdescriptor to the journal, do not drop it from memory and then reattempt downloading it. Fixes bug 9645; bugfix on
  • Stop trying to bootstrap all our directory information from only our first guard. Discovered while fixing bug 9946; bugfix on
  • The new channel code sometimes lost track of in-progress circuits, causing long-running clients to stop building new circuits. The fix is to always call circuit_n_chan_done(chan, 0) from channel_closed(). Fixes bug 9776; bugfix on
  • Minor bug fixes (on 0.2.4.x):
  • Correctly log long IPv6 exit policies, instead of truncating them or reporting an error. Fixes bug 9596; bugfix on
  • Our default TLS ecdhe groups were backwards: we meant to be using P224 for relays (for performance win) and P256 for bridges (since it is more common in the wild). Instead we had it backwards. After reconsideration, we decided that the default should be P256 on all hosts, since its security is probably better, and since P224 is reportedly used quite little in the wild. Found by "skruffy" on IRC. Fix for bug 9780; bugfix on
  • Free directory authority certificate download statuses on exit rather than leaking them. Fixes bug 9644; bugfix on
  • Minor bug fixes (on 0.2.3.x and earlier):
  • If the guard we choose first doesn't answer, we would try the second guard, but once we connected to the second guard we would abandon it and retry the first one, slowing down bootstrapping. The fix is to treat all our initially chosen guards as acceptable to use. Fixes bug 9946; bugfix on
  • Fix an assertion failure that would occur when disabling the ORPort setting on a running Tor process while accounting was enabled. Fixes bug 6979; bugfix on
  • When examining the list of network interfaces to find our address, do not consider non-running or disabled network interfaces. Fixes bug 9904; bugfix on Patch from "hantwister".
  • Avoid an off-by-one error when checking buffer boundaries when formatting the exit status of a pluggable transport helper. This is probably not an exploitable bug, but better safe than sorry. Fixes bug 9928; bugfix on Bug found by Pedro Ribeiro.
  • Minor features (protecting client timestamps):
  • Clients no longer send timestamps in their NETINFO cells. These were not used for anything, and they provided one small way for clients to be distinguished from each other as they moved from network to network or behind NAT. Implements part of proposal 222.
  • Clients now round timestamps in INTRODUCE cells down to the nearest 10 minutes. If a new Support022HiddenServices option is set to 0, or if it's set to "auto" and the feature is disabled in the consensus, the timestamp is sent as 0 instead. Implements part of proposal 222.
  • Stop sending timestamps in AUTHENTICATE cells. This is not such a big deal from a security point of view, but it achieves no actual good purpose, and isn't needed. Implements part of proposal 222.
  • Reduce down accuracy of timestamps in hidden service descriptors. Implements part of proposal 222.
  • Minor features (other):
  • Improve the circuit queue out-of-memory handler. Previously, when we ran low on memory, we'd close whichever circuits had the most queued cells. Now, we close those that have the *oldest* queued cells, on the theory that those are most responsible for us running low on memory. Based on analysis from a forthcoming paper by Jansen, Tschorsch, Johnson, and Scheuermann. Fixes bug 9093.
  • Generate bootstrapping status update events correctly when fetching microdescriptors. Fixes bug 9927.
  • Update to the October 2 2013 Maxmind GeoLite Country database.
  • Documentation fixes:
  • Clarify the usage and risks of setting the ContactInfo torrc line for your relay or bridge. Resolves ticket 9854.
  • Add anchors to the manpage so we can link to the html version of the documentation for specific options. Resolves ticket 9866.
  • Replace remaining references to DirServer in man page and log entries. Resolves ticket 10124.

New in version Alpha (October 10th, 2013)

  • This version introduces experimental support for syscall sandboxing on Linux, allows bridges that offer pluggable transports to report usage statistics, fixes many issues to make testing easier, and provides a pile of minor features and bugfixes that have been waiting for a release of the new branch.

New in version RC (August 14th, 2013)

  • This release candidate fixes several crash bugs in the 0.2.4 branch.

New in version Alpha (March 13th, 2013)

  • This version makes relay measurement by directory authorities more robust, makes hidden service authentication work again, and resolves a DPI fingerprint for Tor's SSL transport.

New in version Alpha (September 27th, 2012)

  • This version fixes another opportunity for a remotely triggerable assertion, resumes letting relays test reachability of their DirPort, and cleans up a bunch of smaller bugs.

New in version 2.2.35-11 (May 4th, 2012)

  • Security release to stop TorBrowser from bypassing SOCKS proxy DNS configuration
  • New Firefox patches:
  • Prevent WebSocket DNS leak (closes: #5741)
  • Fix a race condition that could be used to link browsing sessions together when using new identity from Tor Browser (closes: #5715)
  • Remove extraneous BetterPrivacy settings from prefs.js (closes: #5722)
  • Fix the mozconfig options for OS X so that it really builds everything with clang instead of llvm-gcc (closes: #5740)

New in version Alpha (May 1st, 2012)

  • This version fixes a variety of smaller bugs.
  • The development branch now builds on Windows again.

New in version Alpha (April 25th, 2012)

  • This version fixes yet more bugs to get closer to a release candidate.
  • It also dramatically speeds up AES: fast relays should consider switching to the newer OpenSSL library.

New in version Alpha (February 15th, 2012)

  • This version lets fast exit relays scale better, allows clients to use bridges that run Tor 0.2.2.x, and resolves several big bugs when Tor is configured to use a pluggable transport like obfsproxy.

New in version Alpha (November 26th, 2011)

  • This version fixes some crash and assert bugs, including a socketpair-related bug which has been bothering Windows users.
  • It adds support to serve microdescriptors to controllers, so Vidalia's network map can resume listing relays (once Vidalia implements its side) and adds better support for hardware AES acceleration.
  • Finally, it starts the process of adjusting the bandwidth cutoff for getting the "Fast" flag from 20KB to (currently) 32KB. Preliminary results show that tiny relays harm performance more than they help network capacity.

New in version Alpha (September 13th, 2011)

  • This version adds a new "stream isolation" feature to improve Tor's security, and provides client-side support for the microdescriptor and optimistic data features introduced earlier in the 0.2.3.x series.
  • It also includes numerous critical bugfixes in the (optional) bufferevent-based networking backend.

New in version Alpha (May 2nd, 2011)

  • This version fixes many bugs.
  • Hidden service clients are more robust.
  • Routers no longer over-report their bandwidth.
  • Win7 should crash a little less.
  • NEWNYM now prevents hidden service-related activity from being linkable.
  • The Entry/Exit/ExcludeNodes and StrictNodes configuration options were revamped to make them more reliable, more understandable, and more regularly applied.

New in version Alpha (February 4th, 2011)

  • Major bugfixes:
  • Fix a bounds-checking error that could allow an attacker to remotely crash a directory authority. Bugfix on Found by "piebeer".
  • Don't assert when changing from bridge to relay or vice versa via the controller. The assert happened because we didn't properly initialize our keys in this case. Bugfix on; fixes bug 2433. Reported by bastik.
  • Minor features:
  • Adjust our TLS Diffie-Hellman parameters to match those used by Apache's mod_ssl.
  • Provide a log message stating which geoip file we're parsing instead of just stating that we're parsing the geoip file. Implements ticket 2432.
  • Minor bugfixes:
  • Check for and reject overly long directory certificates and directory tokens before they have a chance to hit any assertions. Bugfix on / Found by "doorss".

New in version Alpha (January 18th, 2011)

  • Document the default socks host and port ( for tor-resolve.

New in version Alpha (November 18th, 2010)

  • Major bugfixes:
  • Do even more to reject (and not just ignore) annotations on router descriptors received anywhere but from the cache. Previously we would ignore such annotations at first, but cache them to disk anyway. Bugfix on Found by piebeer.
  • Do not log messages to the controller while shrinking buffer freelists. Doing so would sometimes make the controller connection try to allocate a buffer chunk, which would mess up the internals of the freelist and cause an assertion failure. Fixes bug 1125;
  • Fixed by Robert Ransom. Bugfix on Learn our external IP address when we're a relay or bridge, even if we set PublishServerDescriptor to 0. Bugfix on, where we introduced bridge relays that don't need to publish to be useful. Fixes bug 2050.
  • Maintain separate TLS contexts and certificates for incoming and 17 outgoing connections in bridge relays. Previously we would use the same TLS contexts and certs for incoming and outgoing connections.Bugfix on; addresses bug 988.
  • Maintain separate identity keys for incoming and outgoing TLS 21 contexts in bridge relays. Previously we would use the same identity keys for incoming and outgoing TLS contexts. Bugfix on; addresses the other half of bug 988.
  • Avoid an assertion failure when we as an authority receive a 25 duplicate upload of a router descriptor that we already have, but which we previously considered an obsolete descriptor. Fixes another case of bug 1776. Bugfix on
  • Avoid a crash bug triggered by looking at a dangling pointer while setting the network status consensus. Found by Robert Ransom. Bugfix on Fixes bug 2097.
  • Fix a logic error where servers that _didn't_ act as exits would try to keep their server lists more aggressively up to date than exits, when it was supposed to be the other way around. Bugfix 34 on

New in version (April 1st, 2010)

  • Major bugfixes:
  • Fix a regression from our patch for bug 1244 that caused relays to guess their IP address incorrectly if they didn't set Address in their torrc and/or their address fails to resolve. Bugfix on
  •; fixes bug 1269.
  • When freeing a session key, zero it out completely. We only zeroed the first ptrsize bytes. Bugfix on 0.0.2pre8. Discovered and patched by ekir. Fixes bug 1254.
  • Minor bugfixes:
  • Fix a dereference-then-NULL-check sequence when publishing descriptors. Bugfix on Discovered by ekir; fixes bug 1255.
  • Fix another dereference-then-NULL-check sequence. Bugfix on Discovered by ekir; fixes bug 1256.
  • Make sure we treat potentially not NUL-terminated strings correctly.
  • Bugfix on Discovered by rieo; fixes bug 1257.

New in version Alpha (March 13th, 2009)

  • This release includes another big pile of minor bugfixes and cleanups.

New in version (February 10th, 2009)

  • This version features several more security-related fixes. You should upgrade, especially if you run an exit relay (which is vulnerable to a remote crash bug) or a directory authority (which is vulnerable to a remote infinite loop), or if you're on an older (pre-XP) or not-recently-patched Windows operating system (which can be attacked with a remote exploit).

New in version (January 22nd, 2009)

  • This release fixes a variety of bugs that were making relays less useful to users.
  • It also finally fixes a bug where a relay or client that's been off for many days would take a long time to bootstrap.
  • It fixes an important security-related bug.

New in version Alpha (January 5th, 2009)

  • This release fixes a logic error that would automatically reject all but the first configured DNS server.

New in version Alpha (December 10th, 2008)

  • This release fixes some crash bugs in earlier alpha releases, builds better on unusual platforms like Solaris and old OS X, and fixes a variety of other issues.

New in version (December 5th, 2008)

  • This release fixes a major security problem in the Debian and Ubuntu packages (and maybe other packages).
  • A smaller security flaw that might allow an attacker to access local services was fixed.
  • Hidden service performance was further improved.
  • A variety of other problems were fixed.

New in version Alpha (November 21st, 2008)

  • This release fixes a major security problem in Debian and Ubuntu packages (and maybe other packages).
  • A smaller security flaw that might allow an attacker to access local services was fixed.
  • Defense against DNS poisoning attacks on exit relays was improved.
  • Hidden service performance was further improved.
  • A variety of other issues were fixed.

New in version Alpha (October 13th, 2008)

  • This release further improves performance and robustness of hidden services, starts work on supporting per-country relay selection, and fixes a variety of smaller issues.

New in version (September 10th, 2008)

  • This release addresses two potential anonymity issues, starts to fix a big bug where in rare cases traffic from one Tor stream gets mixed into another stream, and fixes a variety of smaller issues.

New in version (August 28th, 2008)

  • Tor switches to a more efficient directory distribution design,
  • adds features to make connections to the Tor network harder to block,
  • allows Tor to act as a DNS proxy, adds separate rate limiting for relayed
  • traffic to make it easier for clients to become relays, fixes a variety
  • of potential anonymity problems, and includes the usual huge pile of
  • other features and bug fixes.