Commit Graph

28145 Commits

Author SHA1 Message Date
Nick Mathewson 79c56a6e31 Merge branch 'maint-0.3.3' into release-0.3.3 2018-06-08 10:12:57 -04:00
Nick Mathewson a141127435 Merge branch 'maint-0.3.2' into maint-0.3.3 2018-06-08 10:12:57 -04:00
Nick Mathewson dd63033fcb Merge branch 'maint-0.3.1' into maint-0.3.2 2018-06-08 10:11:57 -04:00
Nick Mathewson 1ef8023e00 Merge branch 'maint-0.2.9' into maint-0.3.1 2018-06-08 10:11:57 -04:00
rl1987 719b5c1d27 Avoid out-of-bounds smartlist access in protover_compute_vote()
and contract_protocol_list()
2018-06-08 10:11:32 -04:00
Nick Mathewson 0c9d617762 Merge branch 'maint-0.3.3' into release-0.3.3 2018-06-02 10:42:06 -07:00
Nick Mathewson f15f90e2ca Merge branch 'bug26121-033-squashed' into maint-0.3.3 2018-06-02 10:36:44 -07:00
Mike Perry fe5764012a Bug 26121: Improve BUILDTIMEOUT_SET accuracy.
We were miscounting the total number of circuits for the TIMEOUT_RATE and
CLOSE_RATE fields of this event.
2018-06-02 10:36:36 -07:00
Nick Mathewson db9ca07c46 Merge branch 'maint-0.3.3' into release-0.3.3 2018-05-27 10:04:42 -04:00
Nick Mathewson fa1890e97f Merge remote-tracking branch 'public/bug25691_033_again_squashed' into maint-0.3.3 2018-05-27 10:03:11 -04:00
Nick Mathewson 3f3739c6e0 Merge branch 'maint-0.3.1' into maint-0.3.2 2018-05-24 09:40:06 -04:00
Nick Mathewson f48fb8a720 Merge branch 'maint-0.2.9' into maint-0.3.1 2018-05-24 09:40:06 -04:00
Nick Mathewson c8dad04924 Merge branch 'maint-0.3.3' into release-0.3.3 2018-05-24 09:40:06 -04:00
Nick Mathewson 0ef432d457 Merge branch 'maint-0.3.2' into maint-0.3.3 2018-05-24 09:40:06 -04:00
Nick Mathewson c000763f1e Merge branch 'bug26116_033' into maint-0.3.3 2018-05-24 09:40:00 -04:00
Nick Mathewson c380562aed Merge branch 'bug26116_029' into maint-0.2.9 2018-05-24 09:39:46 -04:00
Nick Mathewson aeb4be1d5a Add a unit test for PEM-encrypted documents. 2018-05-24 09:36:33 -04:00
Nick Mathewson c11c851b39 Merge branch 'maint-0.3.3' into release-0.3.3 2018-05-22 18:05:55 -04:00
Nick Mathewson ff27b7ce60 Update version to 0.3.3.6-dev 2018-05-22 18:05:28 -04:00
Roger Dingledine 7dd0813e78 and put those in the release notes too 2018-05-22 16:14:39 -04:00
Roger Dingledine 6a7d650b37 0.3.1.10 and 0.2.9.15 changelogs got left out too 2018-05-22 16:13:29 -04:00
Roger Dingledine 568cb0ee8f run nickm's format_changelog.py script 2018-05-22 15:51:54 -04:00
Roger Dingledine 35956bce49 a few more changelog fixes 2018-05-22 15:47:18 -04:00
Roger Dingledine 78fcfc7bcd light cleanup, give them new blurbs 2018-05-22 15:03:00 -04:00
Roger Dingledine 37b7eadb57 include 0.3.2.10 blurbs in 0.3.3 changelogs
so they aren't mysteriously missing from the tarballs/etc
2018-05-22 14:29:26 -04:00
Roger Dingledine 00e7e324d1 remove items from 0.3.3.6 that are already in 0.3.2.10 2018-05-22 14:22:51 -04:00
Nick Mathewson 67da2d9411 Merge branch 'maint-0.3.3' into release-0.3.3 2018-05-22 14:13:28 -04:00
Nick Mathewson 80d673ccea Merge branch 'trove-2018-005_032' into maint-0.3.3 2018-05-22 14:13:23 -04:00
Nick Mathewson 7483aef896 avoid a signed/unsigned comparison. 2018-05-22 14:12:44 -04:00
Nick Mathewson 0256702362 Merge branch 'maint-0.3.3' into release-0.3.3 2018-05-22 13:35:33 -04:00
Nick Mathewson a5d4ce2b39 Make the TROVE-2018-005 fix work with rust. 2018-05-22 13:35:20 -04:00
Nick Mathewson 20f8fead9c Merge branch 'maint-0.3.3' into release-0.3.3 2018-05-22 12:54:31 -04:00
Nick Mathewson 6e8e005b53 Merge branch 'trove-2018-005_032' into maint-0.3.3 2018-05-22 12:54:26 -04:00
Nick Mathewson 240bb17714 uint breaks compilation on windows 2018-05-22 12:54:05 -04:00
Nick Mathewson 0b8de7b3c3 Merge branch 'maint-0.3.3' into release-0.3.3 2018-05-22 12:40:27 -04:00
Nick Mathewson 074b182baa version bump to 0.3.3.6 2018-05-22 12:40:18 -04:00
Nick Mathewson b6a88173bb add TROVE-2018-005 to changelog and releasenotes 2018-05-22 12:37:49 -04:00
Nick Mathewson f177ec2142 Merge branch 'maint-0.3.3' into release-0.3.3 2018-05-22 12:33:54 -04:00
Isis Lovecruft 569b4e57e2 rust: Mirror TROVE-2018-005 fix in Rust protover implementation.
* REFACTORS `UnvalidatedProtoEntry::from_str` to place the bulk of the
   splitting/parsing logic in to a new
   `UnvalidatedProtoEntry::parse_protocol_and_version_str()` method (so that
   both `from_str()` and `from_str_any_len()` can call it.)
 * ADD a new `UnvalidatedProtoEntry::from_str_any_len()` method in order to
   maintain compatibility with consensus methods older than 29.
 * ADD a limit on the number of characters in a protocol name.
 * FIXES part of #25517: https://bugs.torproject.org/25517
2018-05-22 12:27:25 -04:00
Nick Mathewson a3a8d80beb Merge branch 'trove-2018-005_032' into trove-2018-005_033 2018-05-22 12:27:15 -04:00
Nick Mathewson d2bc019053 changes file for TROVE-2018-005 2018-05-22 12:26:23 -04:00
Nick Mathewson bc2d6876b3 Add stdbool to protover.h. Only needed for the 032 backport 2018-05-22 12:15:52 -04:00
Isis Lovecruft b681438daf vote: TROVE-2018-005 Make DirAuths omit misbehaving routers from their vote. 2018-05-22 12:13:41 -04:00
Isis Lovecruft eb96692842 protover: TROVE-2018-005 Fix potential DoS in protover protocol parsing.
In protover.c, the `expand_protocol_list()` function expands a `smartlist_t` of
`proto_entry_t`s to their protocol name concatenated with each version number.
For example, given a `proto_entry_t` like so:

    proto_entry_t *proto = tor_malloc(sizeof(proto_entry_t));
    proto_range_t *range = tor_malloc_zero(sizeof(proto_range_t));

    proto->name = tor_strdup("DoSaaaaaaaaaaaaaaaaaaaaaa[19KB]aaa");
    proto->ranges = smartlist_new();

    range->low = 1;
    range->high = 65536;

    smartlist_add(proto->ranges, range);

(Where `[19KB]` is roughly 19KB of `"a"` bytes.)  This would expand in
`expand_protocol_list()` to a `smartlist_t` containing 65536 copies of the
string, e.g.:

    "DoSaaaaaaaaaaaaaaaaaaaaaa[19KB]aaa=1"
    "DoSaaaaaaaaaaaaaaaaaaaaaa[19KB]aaa=2"
    […]
    "DoSaaaaaaaaaaaaaaaaaaaaaa[19KB]aaa=65535"

Thus constituting a potential resource exhaustion attack.

The Rust implementation is not subject to this attack, because it instead
expands the above string into a `HashMap<String, HashSet<u32>` prior to #24031,
and a `HashMap<UnvalidatedProtocol, ProtoSet>` after).  Neither Rust version is
subject to this attack, because it only stores the `String` once per protocol.
(Although a related, but apparently of too minor impact to be usable, DoS bug
has been fixed in #24031. [0])

[0]: https://bugs.torproject.org/24031

 * ADDS hard limit on protocol name lengths in protover.c and checks in
   parse_single_entry() and expand_protocol_list().
 * ADDS tests to ensure the bug is caught.
 * FIXES #25517: https://bugs.torproject.org/25517
2018-05-22 12:12:01 -04:00
Nick Mathewson 2b2634339b Move bug25145 entry into ChangeLog
(It doesn't go into ReleaseNotes, since it's a bugfix on 0.3.3.2-alpha)
2018-05-22 10:20:15 -04:00
Nick Mathewson c91c4e9bb6 Merge branch 'maint-0.3.3' into release-0.3.3 2018-05-22 08:35:41 -04:00
Nick Mathewson 3d12663243 Fix a crash bug when testing reachability
Fixes bug 25415; bugfix on 0.3.3.2-alpha.
2018-05-22 08:35:37 -04:00
Nick Mathewson f15e1e65cb Write a blurb for 0.3.3.6 2018-05-21 09:28:00 -04:00
Nick Mathewson 7760162b8c 033 releasenotes: minor sorting 2018-05-21 09:16:28 -04:00
Nick Mathewson b9aa9e6012 Sort the entries in the 0.3.3.7 CL and RNs 2018-05-17 13:06:37 -04:00