commit 36721e940d77c8331ce13ad96ed3a6c80b13958b Author: Roger Dingledine arma@torproject.org Date: Sat Jan 7 07:42:07 2012 -0500
fold in some new changelog stanzas --- ChangeLog | 150 +++++++++++++++++++++++++++++++++++++++++- changes/bug1101 | 3 - changes/bug1240 | 8 -- changes/bug1297b | 20 ------ changes/bug1827 | 9 --- changes/bug2571 | 3 - changes/bug3825b | 7 -- changes/bug4531_take2 | 5 -- changes/bug4653 | 4 - changes/bug4697 | 5 -- changes/bug4733 | 6 -- changes/bug4759 | 14 ---- changes/bug4779 | 4 - changes/bug4786 | 9 --- changes/bug4788 | 6 -- changes/bug4796 | 7 -- changes/bug4803 | 4 - changes/bug4822 | 13 ---- changes/clang_30_options | 5 -- changes/feature2411 | 12 ---- changes/geoip-january2012 | 3 - changes/portability_01_haiku | 14 ---- changes/prop110 | 7 -- changes/timersub_bug | 7 -- 24 files changed, 148 insertions(+), 177 deletions(-)
diff --git a/ChangeLog b/ChangeLog index 667a953..9d20a8a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,150 @@ -Changes in version 0.2.3.11-alpha - 201?-??-?? +Changes in version 0.2.3.11-alpha - 2012-01-0? + o Major features: + - Now that Tor 0.2.0.x is completely deprecated, enable the final + part of "Proposal 110: Avoiding infinite length circuits" by + refusing all circuit-extend requests that do not use a relay_early + cell. This change helps Tor resist a class of denial-of-service + attacks by limiting the maximum circuit length. + - Adjust the number of introduction points that a hidden service + will try to maintain based on how long its introduction points + remain in use and how many introductions they handle. Fixes + part of bug 3825. + - Try to use system facilities for enumerating local interface + addresses, before falling back to our old approach (which was + binding a UDP socket, and calling getsockname() on it). That + approach was scaring OS X users whose draconian firewall + software warned about binding to UDP sockets, regardless of + whether packets were sent. Now we try to use getifaddrs(), + SIOCGIFCONF, or GetAdaptersAddresses(), depending on what the + system supports. Resolves ticket 1827. + + o Major security workaround: + - When building or running with any version of OpenSSL earlier + than 0.9.8s or 1.0.0f, disable SSLv3 support. These OpenSSL + versions have a bug (CVE-2011-4576) in which their block cipher + padding includes uninitialized data, potentially leaking sensitive + information to any peer with whom they make a SSLv3 connection. Tor + does not use SSL v3 by default, but a hostile client or server + could force an SSLv3 connection in order to gain information that + they shouldn't have been able to get. The best solution here is to + upgrade to OpenSSL 0.9.8s or 1.0.0f (or later). But when building + or running with a non-upgraded OpenSSL, we disable SSLv3 entirely + to make sure that the bug can't happen. + + o Major bugfixes: + - Correct our replacements for the timeradd() and timersub() functions + on platforms that lack them (for example, Windows). The timersub() + function is used when expiring circuits, while timeradd() is + currently unused. Bug report and patch by Vektor. Bugfix on + 0.2.2.24-alpha and 0.2.3.1-alpha; fixes bug 4778. + - Do not use OpenSSL 1.0.0's counter mode: it has a critical bug + that was fixed in OpenSSL 1.0.0a. Fixes bug 4779; bugfix on + Tor 0.2.3.9-alpha. Found by Pascal. + + o Minor features: + - Directory servers now reject versions of Tor older than 0.2.1.30, + and Tor versions between 0.2.2.1-alpha and 0.2.2.20-alpha + (inclusive). These versions accounted for only a small fraction of + the Tor network, and have numerous known security issues. Resolves + issue 4788. + - Use absolute path names when reporting the torrc filename in the + control protocol, so a controller can more easily find the torrc + file. Resolves bug 1101. + - If EntryNodes are given, but UseEntryGuards is set to 0, warn that + EntryNodes will have no effect. Resolves issue 2571. + - Extend the control protocol to report flags that control a circuit's + path selection in CIRC events and in replies to 'GETINFO + circuit-status'. Implements part of ticket 2411. + - Extend the control protocol to report the hidden service address + and current state of a hidden-service-related circuit in CIRC + events and in replies to 'GETINFO circuit-status'. Implements part + of ticket 2411. + - Update to the January 3 2012 Maxmind GeoLite Country database. + + o Minor bugfixes (hidden services): + - Don't close hidden service client circuits which have almost + finished connecting to their destination when they reach + the normal circuit-build timeout. Previously, we would close + introduction circuits which are waiting for an acknowledgement + from the introduction point, and rendezvous circuits which have + been specified in an INTRODUCE1 cell sent to a hidden service, + after the normal CBT. Now, we mark them as 'timed out', and launch + another rendezvous attempt in parallel. This behavior change can + be disabled using the new CloseHSClientCircuitsImmediatelyOnTimeout + option. Fixes part of bug 1297. + - Don't close hidden-service-side rendezvous circuits when they + reach the normal circuit-build timeout. This behaviour change can + be disabled using the new + CloseHSServiceRendCircuitsImmediatelyOnTimeout option. Fixes the + remaining part of bug 1297. + - Make sure we never mark the wrong rendezvous circuit as having + had its introduction cell acknowleged by the introduction-point + relay. Previously, when we received an INTRODUCE_ACK cell on a + client-side hidden-service introduction circuit, we might have + marked a rendezvous circuit other than the one we specified in + the INTRODUCE1 cell as INTRO_ACKED, which would have produced + a warning message and interfered with the hidden service + connection-establishment process. Bugfix on 0.2.3.3-alpha, when we + added the stream-isolation feature which might cause Tor to open + multiple rendezvous circuits for the same hidden service. Fixes + bug 4759. + - Don't trigger an assertion failure when we mark a new client-side + hidden-service introduction circuit for close during the process + of creating it. Bugfix on 0.2.3.6-alpha. Fixes bug 4796; reported + by murb. + + o Minor bugfixes (other): + - 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". This was + erroneously listed as fixed in 0.2.3.9-alpha, but the fix had + accidentally been reverted. + - Fix an assertion failure when, while running with bufferevents, a + connection finishes connecting after it is marked for close, but + before it is closed. Fixes bug 4697; bugfix on 0.2.3.1-alpha. + - Older Linux kernels erroneously respond to strange nmap behavior + by having accept() return successfully with a zero-length + socket. When this happens, just close the connection. Previously, + we would try harder to learn the remote address: but there was + no such remote address to learn, and our method for trying to + learn it was incorrect. Fixes bugs 1240, 4745, and 4747. Bugfix + on 0.1.0.3-rc. Reported and diagnosed by "r1eo". + - test_util_spawn_background_ok() hardcoded the expected value + for ENOENT to 2. This isn't portable as error numbers are + platform specific, and particularly the hurd has ENOENT at + 0x40000002. Construct expected string at runtime, using the correct + value for ENOENT. Fixes bug 4733; bugfix on 0.2.3.1-alpha. + - Correctly spell "connect" in a log message on failure to create a + controlsocket. Fixes bug 4803; bugfix on 0.2.2.26-beta and + 0.2.3.2-alpha. + - During configure, search for library containing cos function as + libm lives in libcore on some platforms (BeOS/Haiku). + Linking against libm was hard-coded before. Bugfix on + 0.2.2.2-alpha; fixes the first part of bug 4727. Patch and + analysis by Martin Hebnes Pedersen. + - Preprocessor directives should not be put inside the arguments + of a macro. This would break compilation with GCC releases prior + to version 3.3. We would never recommend such an old GCC + version, but it is apparently required for binary compatibility + on some platforms (namely, certain builds of Haiku). Bugfix on + 0.2.3.3-alpha; fixes the other part of bug 4727. Patch and + analysis by Martin Hebnes Pedersen. + + - Feature removal: + - When sending or relaying a RELAY_EARLY cell, we used to convert + it to a RELAY cell if the connection was using the v1 link + protocol. This was a workaround for older versions of Tor, which + didn't handle RELAY_EARLY cells properly. Now that all supported + versions can handle RELAY_EARLY cells, and now that we're enforcing + the "no RELAY_EXTEND commands except in RELAY_EARLY cells" rule, + remove this workaround. Addresses bug 4786. + + o Code simplifications and refactoring: + - During configure, detect when we're building with clang version + 3.0 or lower and disable the -Wnormalized=id and -Woverride-init + CFLAGS. clang doesn't support them yet. + - Use OpenSSL's built-in SSL_state_string_long() instead of our + own homebrewed ssl_state_to_string() replacement. Patch from + Emile Snyder. Fixes bug 4653.
Changes in version 0.2.3.10-alpha - 2011-12-16 @@ -786,7 +932,7 @@ Changes in version 0.2.1.31 - 2011-10-26 circuit EXTEND request. Now relays can protect clients from the CVE-2011-2768 issue even if the clients haven't upgraded yet. - Bridges now refuse CREATE or CREATE_FAST cells on OR connections - that they initiated. Relays could distinguish incoming bridge + that they initiated. Relays could distinguish incoming bridge connections from client connections, creating another avenue for enumerating bridges. Fixes CVE-2011-2769. Bugfix on 0.2.0.3-alpha. Found by "frosty_un". diff --git a/changes/bug1101 b/changes/bug1101 deleted file mode 100644 index 784ae08..0000000 --- a/changes/bug1101 +++ /dev/null @@ -1,3 +0,0 @@ - o Minor features: - - Use absolute path names when reporting the torrc filename, so - that a controller can more easily find it. Resolves bug 1101. diff --git a/changes/bug1240 b/changes/bug1240 deleted file mode 100644 index 6570664..0000000 --- a/changes/bug1240 +++ /dev/null @@ -1,8 +0,0 @@ - o Minor bugfixes: - - When running with an older Linux kernel that erroneously responds - to strange nmap behavior by having accept() return successfully - with a zero-length socket, just close the connection. Previously, - we would try harder to learn the remote address: but there was no - such remote address to learn, and our method for trying to learn - it was incorrect. Fixes bugs #1240, #4745, and #4747. Bugfix on - 0.1.0.3-rc. Reported and diagnosed by "r1eo". diff --git a/changes/bug1297b b/changes/bug1297b deleted file mode 100644 index fb0d00c..0000000 --- a/changes/bug1297b +++ /dev/null @@ -1,20 +0,0 @@ - o Minor bugfixes: - - - Don't close hidden service client circuits which have almost - finished connecting to their destination when they reach the - normal circuit-build timeout. Previously, we would close - introduction circuits which are waiting for an acknowledgement - from the introduction-point relay and rendezvous circuits which - have been specified in an INTRODUCE1 cell sent to a hidden - service after the normal CBT; now, we mark them as 'timed out', - and launch another rendezvous attempt in parallel. This - behaviour change can be disabled using the new - CloseHSClientCircuitsImmediatelyOnTimeout option. Fixes part of - bug 1297. - - - Don't close hidden-service-side rendezvous circuits when they - reach the normal circuit-build timeout. Previously, we would - close them. This behaviour change can be disabled using the new - CloseHSServiceRendCircuitsImmediatelyOnTimeout option. Fixes - the remaining part of bug 1297. - diff --git a/changes/bug1827 b/changes/bug1827 deleted file mode 100644 index 0701876..0000000 --- a/changes/bug1827 +++ /dev/null @@ -1,9 +0,0 @@ - - Minor features: - - Try to use system facilities for enumerating local interface - addresses, before falling back to our old approach (which was - binding a UDP socket, and calling getsockname() on it). That - approach was confusing people whose draconian firewall software - didn't like binding to UDP sockets, regardless of whether - packets were sent. Now we try to use getifaddrs(), SIOCGIFCONF, - or GetAdaptersAddresses(), depending on what the system - supports. Resolves ticket #1827. diff --git a/changes/bug2571 b/changes/bug2571 deleted file mode 100644 index dfb4f3b..0000000 --- a/changes/bug2571 +++ /dev/null @@ -1,3 +0,0 @@ - - Minor features: - - If EntryNodes are given, but UseEntryGuards is set to 0, warn that - EntryNodes will have no effect. Resolves issue 2571. diff --git a/changes/bug3825b b/changes/bug3825b deleted file mode 100644 index 08c0c2d..0000000 --- a/changes/bug3825b +++ /dev/null @@ -1,7 +0,0 @@ - o Major features: - - - Adjust the number of introduction points that a hidden service - will try to maintain based on how long its introduction points - remain in use and how many introductions they handle. Fixes - part of bug 3825. - diff --git a/changes/bug4531_take2 b/changes/bug4531_take2 deleted file mode 100644 index fd4f5f0..0000000 --- a/changes/bug4531_take2 +++ /dev/null @@ -1,5 +0,0 @@ - o Minor bugfixes: - - 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". This was - erroneously listed as fixed in 0.2.3.9-alpha, but the fix had - accidentally been reverted. diff --git a/changes/bug4653 b/changes/bug4653 deleted file mode 100644 index 3c0596f..0000000 --- a/changes/bug4653 +++ /dev/null @@ -1,4 +0,0 @@ - o Code simplification and refactoring: - - Use OpenSSL's built-in SSL_state_string_long() instead of our - own homebrewed ssl_state_to_string() replacement. Patch from - Emile Snyder. Fixes bug 4653. diff --git a/changes/bug4697 b/changes/bug4697 deleted file mode 100644 index c3c940d..0000000 --- a/changes/bug4697 +++ /dev/null @@ -1,5 +0,0 @@ - o Minor bugfixes: - - Fix an assertion failure when, while running with bufferevents, a - connection finishes connecting after it is marked for close, but - before it is closed. Fix for bug 4697; Bugfix on 0.2.3.1-alpha. - diff --git a/changes/bug4733 b/changes/bug4733 deleted file mode 100644 index 672cfbc..0000000 --- a/changes/bug4733 +++ /dev/null @@ -1,6 +0,0 @@ - o Minor fix: - test_util_spawn_background_ok() hardcoded the expected value - for ENOENT to 2. This isn't portable as error numbers are - platform specific, and particularly the hurd has ENOENT at - 0x40000002. Construct expected string at runtime, using the - correct value for ENOENT (closes: #4733). Bugfix on 0.2.3.1-alpha. diff --git a/changes/bug4759 b/changes/bug4759 deleted file mode 100644 index 19138ab..0000000 --- a/changes/bug4759 +++ /dev/null @@ -1,14 +0,0 @@ - o Minor bugfixes: - - - Make sure we never mark the wrong rendezvous circuit as having - had its introduction cell acknowleged by the introduction-point - relay. Previously, when we received an INTRODUCE_ACK cell on a - client-side hidden-service introduction circuit, we might have - marked a rendezvous circuit other than the one we specified in - the INTRODUCE1 cell as INTRO_ACKED, which would have produced a - warning message and interfered with the hidden service - connection-establishment process. Bugfix on 0.2.3.3-alpha, when - the stream-isolation feature which might cause Tor to open - multiple rendezvous circuits for the same hidden service was - added. Fixes bug 4759. - diff --git a/changes/bug4779 b/changes/bug4779 deleted file mode 100644 index 4535a2b..0000000 --- a/changes/bug4779 +++ /dev/null @@ -1,4 +0,0 @@ - o Minor bugfixes: - - Do not use OpenSSL 1.0.0's counter mode: it has a critical bug - that was fixed in OpenSSL 1.0.0a. Fixes bug 4779; bugfix on - Tor 0.2.3.9-alpha. Found by Pascal. diff --git a/changes/bug4786 b/changes/bug4786 deleted file mode 100644 index 7c1c60f..0000000 --- a/changes/bug4786 +++ /dev/null @@ -1,9 +0,0 @@ - - Feature removal: - - When sending or relaying a RELAY_EARLY cell, we used to convert - it to a RELAY cell if the connection was using the v1 link - protocol. This was a workaround for older versions of Tor, which - didn't handle RELAY_EARLY cells properly. Now that all supported - versions can handle RELAY_EARLY cells, and now that we're - enforcing the "no RELAY_EXTEND commands except in RELAY_EARLY - cells" rule, we're removing this workaround. Addresses bug 4786. - diff --git a/changes/bug4788 b/changes/bug4788 deleted file mode 100644 index d65c001..0000000 --- a/changes/bug4788 +++ /dev/null @@ -1,6 +0,0 @@ - o Minor features (directory server): - - Directory servers now reject versions of Tor older than 0.2.1.30, - and Tor versions between 0.2.2.1-alpha and 0.2.2.20-alpha - (inclusive). These versions accounted for only a small fraction of - the Tor network, and have numerous known security issues. Resolves - issue #4788. diff --git a/changes/bug4796 b/changes/bug4796 deleted file mode 100644 index bcb795f..0000000 --- a/changes/bug4796 +++ /dev/null @@ -1,7 +0,0 @@ - o Minor bugfixes: - - - Don't exit with an assertion failure when we mark a new - client-side hidden-service introduction circuit for close during - the process of creating it. Bugfix on 0.2.3.6-alpha. Fixes bug - 4796; reported by murb. - diff --git a/changes/bug4803 b/changes/bug4803 deleted file mode 100644 index cd25266..0000000 --- a/changes/bug4803 +++ /dev/null @@ -1,4 +0,0 @@ - o Minor bugfixes: - - Correctly spell "connect" in a log message when creating a controlsocket - fails. Fixes bug 4803; bugfix on 0.2.2.26-beta/0.2.3.2-alpha. - diff --git a/changes/bug4822 b/changes/bug4822 deleted file mode 100644 index 73f43f0..0000000 --- a/changes/bug4822 +++ /dev/null @@ -1,13 +0,0 @@ - o Major security workaround: - - When building or running with any version of OpenSSL earlier - than 0.9.8s or 1.0.0f, disable SSLv3 support. These versions had - a bug (CVE-2011-4576) in which their block cipher padding - included uninitialized data, potentially leaking sensitive - information to any peer with whom they made a SSLv3 - connection. Tor does not use SSL v3 by default, but a hostile - client or server could force an SSLv3 connection in order to - gain information that they shouldn't have been able to get. The - best solution here is to upgrade to OpenSSL 0.9.8s or 1.0.0f (or - later). But when building or running with a non-upgraded - OpenSSL, we should instead make sure that the bug can't happen - by disabling SSLv3 entirely. diff --git a/changes/clang_30_options b/changes/clang_30_options deleted file mode 100644 index e8e34c8..0000000 --- a/changes/clang_30_options +++ /dev/null @@ -1,5 +0,0 @@ - o Code simplifications and refactoring: - - During configure, detect when we're building with clang version 3.0 or - lower and disable the -Wnormalized=id and -Woverride-init CFLAGS. - clang doesn't support them yet. - diff --git a/changes/feature2411 b/changes/feature2411 deleted file mode 100644 index 633a5ce..0000000 --- a/changes/feature2411 +++ /dev/null @@ -1,12 +0,0 @@ - o Minor features: - - - Report flags that control a circuit's path selection to - controllers in CIRC events and in replies to 'GETINFO - circuit-status'. Implements part of ticket 2411. - - - Report the hidden service address and current state of a - hidden-service-related circuit to controllers in CIRC events and - in replies to 'GETINFO circuit-status'. Implements part of - ticket 2411. - - diff --git a/changes/geoip-january2012 b/changes/geoip-january2012 deleted file mode 100644 index 2f4180e..0000000 --- a/changes/geoip-january2012 +++ /dev/null @@ -1,3 +0,0 @@ - o Minor features: - - Update to the January 3 2012 Maxmind GeoLite Country database. - diff --git a/changes/portability_01_haiku b/changes/portability_01_haiku deleted file mode 100644 index 74887fe..0000000 --- a/changes/portability_01_haiku +++ /dev/null @@ -1,14 +0,0 @@ - o Minor buxfixes: - - During configure, search for library containing cos function as - libm lives in libcore on some platforms (BeOS/Haiku). - Linking against libm was hard-coded before. Bugfix on - 0.2.2.2-alpha, fixes the first part of bug 4727. Patch and - analysis by Martin Hebnes Pedersen. - - Preprocessor directives should not be put inside the arguments - of a macro. This would break compilation with GCC releases prior - to version 3.3. We would never recommend such an old GCC - version, but it is apparently required for binary compatibility - on some platforms (namely, certain builds of Haiku). Bugfix on - 0.2.3.3-alpha, fixes the other part of bug 4727. Patch and - analysis by Martin Hebnes Pedersen. - diff --git a/changes/prop110 b/changes/prop110 deleted file mode 100644 index 843595e..0000000 --- a/changes/prop110 +++ /dev/null @@ -1,7 +0,0 @@ - o Major features: - - Now that Tor 0.2.0.x is completely deprecated, we can enable the - final part of "Proposal 110: Avoiding infinite length circuits" - by refusing all circuit-extend requests that do not appear in a - "relay_early" cell. This change helps Tor to resist a class of - denial-of-service attacks by limiting the maximum circuit length. - diff --git a/changes/timersub_bug b/changes/timersub_bug deleted file mode 100644 index 9183862..0000000 --- a/changes/timersub_bug +++ /dev/null @@ -1,7 +0,0 @@ - o Major bugfixes: - - Provide correct replacements for the timeradd() and timersub() functions - for platforms that lack them (for example, windows). The timersub() - function is used when expiring circuits, timeradd() is currently unused. - Patch written by Vektor, who also reported the bug. Thanks! Bugfix - on 0.2.2.24-alpha/0.2.3.1-alpha, fixes bug 4778. -
tor-commits@lists.torproject.org