ChangeLog 1.82 MB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
Changes in version 0.4.4.6 - 2020-11-12
  Tor 0.4.4.6 is the second stable release in the 0.4.4.x series. It
  backports fixes from later releases, including a fix for TROVE-2020-
  005, a security issue that could be used, under certain cases, by an
  adversary to observe traffic patterns on a limited number of circuits
  intended for a different relay.

  o Major bugfixes (security, backport from 0.4.5.1-alpha):
    - When completing a channel, relays now check more thoroughly to
      make sure that it matches any pending circuits before attaching
      those circuits. Previously, address correctness and Ed25519
      identities were not checked in this case, but only when extending
      circuits on an existing channel. Fixes bug 40080; bugfix on
      0.2.7.2-alpha. Resolves TROVE-2020-005.

  o Minor features (directory authorities, backport from 0.4.5.1-alpha):
    - Authorities now list a different set of protocols as required and
      recommended. These lists have been chosen so that only truly
      recommended and/or required protocols are included, and so that
      clients using 0.2.9 or later will continue to work (even though
      they are not supported), whereas only relays running 0.3.5 or
      later will meet the requirements. Closes ticket 40162.
    - Make it possible to specify multiple ConsensusParams torrc lines.
      Now directory authority operators can for example put the main
      ConsensusParams config in one torrc file and then add to it from a
      different torrc file. Closes ticket 40164.

  o Minor features (subprotocol versions, backport from 0.4.5.1-alpha):
    - Tor no longer allows subprotocol versions larger than 63.
      Previously version numbers up to UINT32_MAX were allowed, which
      significantly complicated our code. Implements proposal 318;
      closes ticket 40133.

  o Minor features (tests, v2 onion services, backport from 0.4.5.1-alpha):
    - Fix a rendezvous cache unit test that was triggering an underflow
      on the global rend cache allocation. Fixes bug 40125; bugfix
      on 0.2.8.1-alpha.
    - Fix another rendezvous cache unit test that was triggering an
      underflow on the global rend cache allocation. Fixes bug 40126;
      bugfix on 0.2.8.1-alpha.

  o Minor bugfixes (compilation, backport from 0.4.5.1-alpha):
    - Fix compiler warnings that would occur when building with
      "--enable-all-bugs-are-fatal" and "--disable-module-relay" at the
      same time. Fixes bug 40129; bugfix on 0.4.4.1-alpha.
    - Resolve a compilation warning that could occur in
      test_connection.c. Fixes bug 40113; bugfix on 0.2.9.3-alpha.

  o Minor bugfixes (logging, backport from 0.4.5.1-alpha):
    - Remove a debug logging statement that uselessly spammed the logs.
      Fixes bug 40135; bugfix on 0.3.5.0-alpha.

  o Minor bugfixes (relay configuration, crash, backport from 0.4.5.1-alpha):
    - Avoid a fatal assert() when failing to create a listener
      connection for an address that was in use. Fixes bug 40073; bugfix
      on 0.3.5.1-alpha.

  o Minor bugfixes (v2 onion services, backport from 0.4.5.1-alpha):
    - For HSFETCH commands on v2 onion services addresses, check the
      length of bytes decoded, not the base32 length. Fixes bug 34400;
      bugfix on 0.4.1.1-alpha. Patch by Neel Chauhan.


Changes in version 0.4.3.7 - 2020-11-12
  Tor 0.4.3.7 backports several bugfixes from later releases. It
  includes a fix for TROVE-2020-005, a security issue that could be
  used, under certain cases, by an adversary to observe traffic patterns
  on a limited number of circuits intended for a different relay.

  Please be aware that support for the 0.4.3.x series will end on 15
  January 2020. Please upgrade to 0.4.4.x or 0.4.5.x before then, or
  downgrade to 0.3.5.x, which will be supported until at least 1
  February 2022.

  o Major features (fallback directory list, backport form 0.4.4.3-alpha):
    - Replace the 148 fallback directories originally included in Tor
      0.4.1.4-rc (of which around 105 are still functional) with a list
      of 144 fallbacks generated in July 2020. Closes ticket 40061.

  o Major bugfixes (security, backport from 0.4.5.1-alpha):
    - When completing a channel, relays now check more thoroughly to
      make sure that it matches any pending circuits before attaching
      those circuits. Previously, address correctness and Ed25519
      identities were not checked in this case, but only when extending
      circuits on an existing channel. Fixes bug 40080; bugfix on
      0.2.7.2-alpha. Resolves TROVE-2020-005.

  o Major bugfixes (NSS, backport from 0.4.4.3-alpha):
    - When running with NSS enabled, make sure that NSS knows to expect
      nonblocking sockets. Previously, we set our TCP sockets as
      nonblocking, but did not tell NSS, which in turn could lead to
      unexpected blocking behavior. Fixes bug 40035; bugfix
      on 0.3.5.1-alpha.

  o Minor features (security, backport from 0.4.4.4-rc):
    - Channels using obsolete versions of the Tor link protocol are no
      longer allowed to circumvent address-canonicity checks. (This is
      only a minor issue, since such channels have no way to set ed25519
      keys, and therefore should always be rejected for circuits that
      specify ed25519 identities.) Closes ticket 40081.

  o Minor features (subprotocol versions, backport from 0.4.5.1-alpha):
    - Tor no longer allows subprotocol versions larger than 63.
      Previously version numbers up to UINT32_MAX were allowed, which
      significantly complicated our code. Implements proposal 318;
      closes ticket 40133.

  o Minor features (tests, backport from 0.4.4.5):
    - Our "make check" target now runs the unit tests in 8 parallel
      chunks. Doing this speeds up hardened CI builds by more than a
      factor of two. Closes ticket 40098.

  o Minor features (tests, v2 onion services, backport from 0.4.5.1-alpha):
    - Fix a rendezvous cache unit test that was triggering an underflow
      on the global rend cache allocation. Fixes bug 40125; bugfix
      on 0.2.8.1-alpha.
    - Fix another rendezvous cache unit test that was triggering an
      underflow on the global rend cache allocation. Fixes bug 40126;
      bugfix on 0.2.8.1-alpha.

  o Minor bugfixes (correctness, buffers, backport from 0.4.4.4-rc):
    - Fix a correctness bug that could cause an assertion failure if we
      ever tried using the buf_move_all() function with an empty input
      buffer. As far as we know, no released versions of Tor do this.
      Fixes bug 40076; bugfix on 0.3.3.1-alpha.

  o Minor bugfixes (logging, backport from 0.4.5.1-alpha):
    - Remove a debug logging statement that uselessly spammed the logs.
      Fixes bug 40135; bugfix on 0.3.5.0-alpha.

  o Minor bugfixes (rate limiting, bridges, pluggable transports, backport from 0.4.4.4-rc):
    - On a bridge, treat all connections from an ExtORPort as remote by
      default for the purposes of rate-limiting. Previously, bridges
      would treat the connection as local unless they explicitly
      received a "USERADDR" command. ExtORPort connections still count
      as local if there is a USERADDR command with an explicit local
      address. Fixes bug 33747; bugfix on 0.2.5.1-alpha.

  o Minor bugfixes (relay configuration, crash, backport from 0.4.5.1-alpha):
    - Avoid a fatal assert() when failing to create a listener
      connection for an address that was in use. Fixes bug 40073; bugfix
      on 0.3.5.1-alpha.

  o Minor bugfixes (relay, usability, backport from 0.4.4.3-alpha):
    - Adjust the rules for when to warn about having too many
      connections to other relays. Previously we'd tolerate up to 1.5
      connections per relay on average. Now we tolerate more connections
      for directory authorities, and raise the number of total
      connections we need to see before we warn. Fixes bug 33880; bugfix
      on 0.3.1.1-alpha.

  o Minor bugfixes (tests, 0.4.4.5):
    - Fix the behavior of the rend_cache/clean_v2_descs_as_dir when run
      on its own. Previously, it would exit with an error. Fixes bug
      40099; bugfix on 0.2.8.1-alpha.

  o Minor bugfixes (v2 onion services, backport from 0.4.5.1-alpha):
    - For HSFETCH commands on v2 onion services addresses, check the
      length of bytes decoded, not the base32 length. Fixes bug 34400;
      bugfix on 0.4.1.1-alpha. Patch by Neel Chauhan.

  o Minor bugfixes (windows, backport from 0.4.4.4-rc):
    - Fix a bug that prevented Tor from starting if its log file grew
      above 2GB. Fixes bug 31036; bugfix on 0.2.1.8-alpha.

  o Deprecated features (onion service v2, backport form 0.4.4.2-alpha):
    - Add a deprecation warning for version 2 onion services. Closes
      ticket 40003.

  o Removed features (backport from 0.4.4.3-alpha):
    - Our "check-local" test target no longer tries to use the
      Coccinelle semantic patching tool parse all the C files. While it
      is a good idea to try to make sure Coccinelle works on our C
      before we run a Coccinelle patch, doing so on every test run has
      proven to be disruptive. You can still run this tool manually with
      "make check-cocci". Closes ticket 40030. ticket 40030.


Changes in version 0.3.5.12 - 2020-11-12
  Tor 0.4.3.7 backports several bugfixes from later releases. It
  includes a fix for TROVE-2020-005, a security issue that could be
  used, under certain cases, by an adversary to observe traffic patterns
  on a limited number of circuits intended for a different relay.

  o Major features (fallback directory list, backport form 0.4.4.3-alpha):
    - Replace the 148 fallback directories originally included in Tor
      0.4.1.4-rc (of which around 105 are still functional) with a list
      of 144 fallbacks generated in July 2020. Closes ticket 40061.

  o Major bugfixes (security, backport from 0.4.5.1-alpha):
    - When completing a channel, relays now check more thoroughly to
      make sure that it matches any pending circuits before attaching
      those circuits. Previously, address correctness and Ed25519
      identities were not checked in this case, but only when extending
      circuits on an existing channel. Fixes bug 40080; bugfix on
      0.2.7.2-alpha. Resolves TROVE-2020-005.

  o Major bugfixes (NSS, backport from 0.4.4.3-alpha):
    - When running with NSS enabled, make sure that NSS knows to expect
      nonblocking sockets. Previously, we set our TCP sockets as
      nonblocking, but did not tell NSS, which in turn could lead to
      unexpected blocking behavior. Fixes bug 40035; bugfix
      on 0.3.5.1-alpha.

  o Minor features (security, backport from 0.4.4.4-rc):
    - Channels using obsolete versions of the Tor link protocol are no
      longer allowed to circumvent address-canonicity checks. (This is
      only a minor issue, since such channels have no way to set ed25519
      keys, and therefore should always be rejected for circuits that
      specify ed25519 identities.) Closes ticket 40081.

  o Minor features (debugging, directory system):
    - Don't crash when we find a non-guard with a guard-fraction value
      set. Instead, log a bug warning, in an attempt to figure out how
      this happened. Diagnostic for ticket 32868.

  o Minor features (subprotocol versions, backport from 0.4.5.1-alpha):
    - Tor no longer allows subprotocol versions larger than 63.
      Previously version numbers up to UINT32_MAX were allowed, which
      significantly complicated our code. Implements proposal 318;
      closes ticket 40133.

  o Minor features (tests, backport from 0.4.4.5):
    - Our "make check" target now runs the unit tests in 8 parallel
      chunks. Doing this speeds up hardened CI builds by more than a
      factor of two. Closes ticket 40098.

  o Minor features (tests, v2 onion services, backport from 0.4.5.1-alpha):
    - Fix a rendezvous cache unit test that was triggering an underflow
      on the global rend cache allocation. Fixes bug 40125; bugfix
      on 0.2.8.1-alpha.
    - Fix another rendezvous cache unit test that was triggering an
      underflow on the global rend cache allocation. Fixes bug 40126;
      bugfix on 0.2.8.1-alpha.

  o Minor bugfixes (correctness, buffers, backport from 0.4.4.4-rc):
    - Fix a correctness bug that could cause an assertion failure if we
      ever tried using the buf_move_all() function with an empty input
      buffer. As far as we know, no released versions of Tor do this.
      Fixes bug 40076; bugfix on 0.3.3.1-alpha.

  o Minor bugfixes (logging, backport from 0.4.5.1-alpha):
    - Remove a debug logging statement that uselessly spammed the logs.
      Fixes bug 40135; bugfix on 0.3.5.0-alpha.

  o Minor bugfixes (rate limiting, bridges, pluggable transports, backport from 0.4.4.4-rc):
    - On a bridge, treat all connections from an ExtORPort as remote by
      default for the purposes of rate-limiting. Previously, bridges
      would treat the connection as local unless they explicitly
      received a "USERADDR" command. ExtORPort connections still count
      as local if there is a USERADDR command with an explicit local
      address. Fixes bug 33747; bugfix on 0.2.5.1-alpha.

  o Minor bugfixes (relay configuration, crash, backport from 0.4.5.1-alpha):
    - Avoid a fatal assert() when failing to create a listener
      connection for an address that was in use. Fixes bug 40073; bugfix
      on 0.3.5.1-alpha.

  o Minor bugfixes (relay, usability, backport from 0.4.4.3-alpha):
    - Adjust the rules for when to warn about having too many
      connections to other relays. Previously we'd tolerate up to 1.5
      connections per relay on average. Now we tolerate more connections
      for directory authorities, and raise the number of total
      connections we need to see before we warn. Fixes bug 33880; bugfix
      on 0.3.1.1-alpha.

  o Minor bugfixes (relays, backport from 0.4.4.1-alpha):
    - Stop advertising incorrect IPv6 ORPorts in relay and bridge
      descriptors, when the IPv6 port was configured as "auto". Fixes
      bug 32588; bugfix on 0.2.3.9-alpha.

  o Minor bugfixes (tests, 0.4.4.5):
    - Fix the behavior of the rend_cache/clean_v2_descs_as_dir when run
      on its own. Previously, it would exit with an error. Fixes bug
      40099; bugfix on 0.2.8.1-alpha.

  o Minor bugfixes (windows, backport from 0.4.4.4-rc):
    - Fix a bug that prevented Tor from starting if its log file grew
      above 2GB. Fixes bug 31036; bugfix on 0.2.1.8-alpha.

  o Deprecated features (onion service v2, backport form 0.4.4.2-alpha):
    - Add a deprecation warning for version 2 onion services. Closes
      ticket 40003.


286
Changes in version 0.4.5.1-alpha - 2020-11-01
Nick Mathewson's avatar
Nick Mathewson committed
287
288
  Tor 0.4.5.1-alpha is the first alpha release in the 0.4.5.x series. It
  improves support for IPv6, address discovery and self-testing, code
289
290
  metrics and tracing.

291
292
293
294
295
296
297
298
  This release also fixes TROVE-2020-005, a security issue that could be
  used, under certain cases, by an adversary to observe traffic patterns
  on a limited number of circuits intended for a different relay. To
  mount this attack, the adversary would need to actively extend
  circuits to an incorrect address, as well as compromise a relay's
  legacy RSA-1024 key. We'll be backporting this fix to other release
  series soon, after it has had some testing.

299
300
  Here are the changes since 0.4.4.5.

301
302
303
304
  o Major features (build):
    - When building Tor, first link all object files into a single
      static library. This may help with embedding Tor in other
      programs. Note that most Tor functions do not constitute a part of
305
      a stable or supported API: only those functions in tor_api.h
306
307
      should be used if embedding Tor. Closes ticket 40127.

308
  o Major features (metrics):
309
310
311
312
313
    - Introduce a new MetricsPort which exposes, through an HTTP
      interface, a series of metrics that tor collects at runtime. At
      the moment, the only supported output format is Prometheus data
      model. Closes ticket 40063. See the manual page for more
      information and security considerations.
314
  o Major features (relay, IPv6):
315
316
317
    - The torrc option Address now supports IPv6. This unifies our
      address discovery interface to support IPv4, IPv6, and hostnames.
      Closes ticket 33233.
Nick Mathewson's avatar
Nick Mathewson committed
318
319
    - Launch IPv4 and IPv6 ORPort self-test circuits on relays and
      bridges. Closes ticket 33222.
320
    - Relays now automatically bind on IPv6 for their ORPort, unless
Nick Mathewson's avatar
Nick Mathewson committed
321
      specified otherwise with the IPv4Only flag. Closes ticket 33246.
322
323
324
325
326
327
328
329
    - When a relay with IPv6 support is told to open a connection to
      another relay, and the extend cell lists both IPv4 and IPv6
      addresses, the first relay now picks randomly which address to
      use. Closes ticket 33220.
    - Relays now track their IPv6 ORPort reachability separately from
      the reachability of their IPv4 ORPort. They will not publish a
      descriptor unless _both_ ports appear to be externally reachable.
      Closes ticket 34067.
330

Nick Mathewson's avatar
Nick Mathewson committed
331
  o Major features (tracing):
332
333
334
    - Add event-tracing library support for USDT and LTTng-UST, and a
      few tracepoints in the circuit subsystem. More will come
      incrementally. This feature is compiled out by default: it needs
Nick Mathewson's avatar
Nick Mathewson committed
335
336
337
      to be enabled at configure time. See documentation in
      doc/HACKING/Tracing.md. Closes ticket 32910.

338
339
340
341
342
343
344
345
346
  o Major bugfixes (security):
    - When completing a channel, relays now check more thoroughly to
      make sure that it matches any pending circuits before attaching
      those circuits. Previously, address correctness and Ed25519
      identities were not checked in this case, but only when extending
      circuits on an existing channel. Fixes bug 40080; bugfix on
      0.2.7.2-alpha. Resolves TROVE-2020-005.

  o Major bugfixes (TLS, buffer):
Nick Mathewson's avatar
Nick Mathewson committed
347
    - When attempting to read N bytes on a TLS connection, really try to
348
349
350
351
      read all N bytes. Previously, Tor would stop reading after the
      first TLS record, which can be smaller than the N bytes requested,
      and not check for more data until the next mainloop event. Fixes
      bug 40006; bugfix on 0.1.0.5-rc.
352
353

  o Minor features (address discovery):
Nick Mathewson's avatar
Nick Mathewson committed
354
355
356
357
    - If no Address statements are found, relays now prioritize guessing
      their address by looking at the local interface instead of the
      local hostname. If the interface address can't be found, the local
      hostname is used. Closes ticket 33238.
358
359

  o Minor features (admin tools):
360
361
362
363
    - Add a new --format argument to -key-expiration option to allow
      specifying the time format of the expiration date. Adds Unix
      timestamp format support. Patch by Daniel Pinto. Closes
      ticket 30045.
364
365
366
367
368

  o Minor features (bootstrap reporting):
    - When reporting bootstrapping status on a relay, do not consider
      connections that have never been the target of an origin circuit.
      Previously, all connection failures were treated as potential
369
      bootstrapping failures, including connections that had been opened
Nick Mathewson's avatar
Nick Mathewson committed
370
      because of client requests. Closes ticket 25061.
371
372

  o Minor features (build):
Nick Mathewson's avatar
Nick Mathewson committed
373
    - When running the configure script, try to detect version
374
      mismatches between the OpenSSL headers and libraries, and suggest
Nick Mathewson's avatar
Nick Mathewson committed
375
      that the user should try "--with-openssl-dir". Closes 40138.
376
377
    - If the configure script has given any warnings, remind the user
      about them at the end of the script. Related to 40138.
Nick Mathewson's avatar
Nick Mathewson committed
378
379

  o Minor features (configuration):
380
    - Allow using wildcards (* and ?) with the %include option on
Nick Mathewson's avatar
Nick Mathewson committed
381
      configuration files. Closes ticket 25140. Patch by Daniel Pinto.
382
    - Allow the configuration options EntryNodes, ExcludeNodes,
Nick Mathewson's avatar
Nick Mathewson committed
383
384
385
      ExcludeExitNodes, ExitNodes, MiddleNodes, HSLayer2Nodes and
      HSLayer3Nodes to be specified multiple times. Closes ticket 28361.
      Patch by Daniel Pinto.
386
387

  o Minor features (control port):
388
389
    - Add a DROPTIMEOUTS command to drop circuit build timeout history
      and reset the current timeout. Closes ticket 40002.
390
    - When a stream enters the AP_CONN_STATE_CONTROLLER_WAIT status,
391
      send a control port event. Closes ticket 32190. Patch by
Nick Mathewson's avatar
Nick Mathewson committed
392
      Neel Chauhan.
393
    - Introduce GETINFO "stats/ntor/{assigned/requested}" and
394
395
396
      "stats/tap/{assigned/requested}" to get the NTor and TAP circuit
      onion handshake counts respectively. Closes ticket 28279. Patch by
      Neel Chauhan.
397

398
  o Minor features (control port, IPv6):
Nick Mathewson's avatar
Nick Mathewson committed
399
400
    - Tor relays now try to report to the controller when they are
      launching an IPv6 self-test. Closes ticket 34068.
401
402
403
404
    - Introduce "GETINFO address/v4" and "GETINFO address/v6" in the
      control port to fetch the Tor host's respective IPv4 or IPv6
      address. We keep "GETINFO address" for backwards-compatibility.
      Closes ticket 40039. Patch by Neel Chauhan.
405
406

  o Minor features (directory authorities):
407
    - Authorities now list a different set of protocols as required and
408
409
410
411
412
413
414
415
      recommended. These lists have been chosen so that only truly
      recommended and/or required protocols are included, and so that
      clients using 0.2.9 or later will continue to work (even though
      they are not supported), whereas only relays running 0.3.5 or
      later will meet the requirements. Closes ticket 40162.
    - Add a new consensus method 30 that removes the unnecessary "="
      padding from ntor-onion-key. Closes ticket 7869. Patch by
      Daniel Pinto.
416
    - Directory authorities now reject descriptors from relays running
417
418
      Tor versions from the obsolete 0.4.1 series. Resolves ticket
      34357. Patch by Neel Chauhan.
419
420
    - Make it possible to specify multiple ConsensusParams torrc lines.
      Now directory authority operators can for example put the main
Nick Mathewson's avatar
Nick Mathewson committed
421
422
      ConsensusParams config in one torrc file and then add to it from a
      different torrc file. Closes ticket 40164.
423
424
    - The AssumeReachable option no longer stops directory authorities
      from checking whether other relays are running. A new
Nick Mathewson's avatar
Nick Mathewson committed
425
426
      AuthDirTestReachability option can be used to disable these
      checks. Closes ticket 34445.
427
    - When looking for possible Sybil attacks, also consider IPv6
Nick Mathewson's avatar
Nick Mathewson committed
428
429
430
      addresses. Two routers are considered to have "the same" address
      by this metric if they are in the same /64 network. Patch from
      Maurice Pibouin. Closes ticket 7193.
431

432
  o Minor features (directory authorities, IPv6):
433
434
435
    - Make authorities add their IPv6 ORPort (if any) to the trusted
      servers list. Authorities previously added only their IPv4
      addresses. Closes ticket 32822.
436

437
438
  o Minor features (ed25519, relay):
    - Save a relay's base64-encoded ed25519 identity key to the data
Nick Mathewson's avatar
Nick Mathewson committed
439
440
      directory in a file named fingerprint-ed25519. Closes ticket
      30642. Patch by Neel Chauhan.
441
442
443

  o Minor features (heartbeat):
    - Include the total number of inbound and outbound IPv4 and IPv6
444
      connections in the heartbeat message. Closes ticket 29113.
445
446

  o Minor features (IPv6, ExcludeNodes):
447
448
    - Handle IPv6 addresses in ExcludeNodes; previously they were
      ignored. Closes ticket 34065. Patch by Neel Chauhan.
449
450

  o Minor features (logging):
451
452
453
454
455
    - Add the running glibc version to the log, and the compiled glibc
      version to the library list returned when using --library-versions.
      Patch from Daniel Pinto. Closes ticket 40047.
    - Consider an HTTP 301 response to be an error (like a 404) when
      processing a directory response. Closes ticket 40053.
Nick Mathewson's avatar
Nick Mathewson committed
456
457
    - Log directory fetch statistics as a single line. Closes
      ticket 40159.
458
459
    - Provide more complete descriptions of our connections when logging
      about them. Closes ticket 40041.
460
    - When describing a relay in the logs, we now include its ed25519
Nick Mathewson's avatar
Nick Mathewson committed
461
      identity. Closes ticket 22668.
462
463

  o Minor features (onion services):
464
465
466
    - Only overwrite an onion service's existing hostname file if its
      contents are wrong. This enables read-only onion-service
      directories. Resolves ticket 40062. Patch by Neel Chauhan.
467
468

  o Minor features (pluggable transports):
469
470
471
472
473
    - Add an OutboundBindAddressPT option to allow users to specify
      which IPv4 and IPv6 address pluggable transports should use for
      outgoing IP packets. Tor does not have a way to enforce that the
      pluggable transport honors this option, so each pluggable transport
      needs to implement support on its own. Closes ticket 5304.
474
475

  o Minor features (relay address tracking):
476
477
478
    - We now store relay addresses for OR connections in a more logical
      way. Previously we would sometimes overwrite the actual address of
      a connection with a "canonical address", and then store the "real
Nick Mathewson's avatar
Nick Mathewson committed
479
480
481
      address" elsewhere to remember it. We now track the "canonical
      address" elsewhere for the cases where we need it, and leave the
      connection's address alone. Closes ticket 33898.
482
483

  o Minor features (relay):
Nick Mathewson's avatar
Nick Mathewson committed
484
485
486
487
488
489
490
491
    - If a relay is unable to discover its address, attempt to learn it
      from the NETINFO cell. Closes ticket 40022.
    - Log immediately when launching a relay self-check. Previously we
      would try to log before launching checks, or approximately when we
      intended to launch checks, but this tended to be error-prone.
      Closes ticket 34137.

  o Minor features (relay, address discovery):
492
493
494
    - If Address option is not found in torrc, attempt to learn our
      address with the configured ORPort address if any. Closes
      ticket 33236.
495
496
497
498

  o Minor features (relay, IPv6):
    - Add an AssumeReachableIPv6 option to disable self-checking IPv6
      reachability. Closes part of ticket 33224.
499
500
501
502
    - Add new "assume-reachable" and "assume-reachable-ipv6" consensus
      parameters to be used in an emergency to tell relays that they
      should publish even if they cannot complete their ORPort self-
      checks. Closes ticket 34064 and part of 33224.
503
504
505
506
507
    - Allow relays to send IPv6-only extend cells. Closes ticket 33222.
    - Declare support for the Relay=3 subprotocol version. Closes
      ticket 33226.
    - When launching IPv6 ORPort self-test circuits, make sure that the
      second-last hop can initiate an IPv6 extend. Closes ticket 33222.
508
509

  o Minor features (specification update):
Nick Mathewson's avatar
Nick Mathewson committed
510
511
512
    - Several fields in microdescriptors, router descriptors, and
      consensus documents that were formerly optional are now required.
      Implements proposal 315; closes ticket 40132.
513

514
  o Minor features (state management):
Nick Mathewson's avatar
Nick Mathewson committed
515
516
    - When loading the state file, remove entries from the statefile
      that have been obsolete for a long time. Ordinarily Tor preserves
517
      unrecognized entries in order to keep forward-compatibility, but
518
      these entries have not actually been used in any release since
519
      before 0.3.5.x. Closes ticket 40137.
520
521

  o Minor features (statistics, ipv6):
Nick Mathewson's avatar
Nick Mathewson committed
522
523
    - Relays now publish IPv6-specific counts of single-direction versus
      bidirectional relay connections. Closes ticket 33264.
524
    - Relays now publish their IPv6 read and write statistics over time,
Nick Mathewson's avatar
Nick Mathewson committed
525
      if statistics are enabled. Closes ticket 33263.
526
527

  o Minor features (subprotocol versions):
528
529
530
531
    - Tor no longer allows subprotocol versions larger than 63.
      Previously version numbers up to UINT32_MAX were allowed, which
      significantly complicated our code. Implements proposal 318;
      closes ticket 40133.
532
    - Use the new limitations on subprotocol versions due to proposal
Nick Mathewson's avatar
Nick Mathewson committed
533
      318 to simplify our implementation. Part of ticket 40133.
534
535

  o Minor features (testing configuration):
536
537
538
    - The TestingTorNetwork option no longer implicitly sets
      AssumeReachable to 1. This change allows us to test relays' self-
      testing mechanisms, and to test authorities' relay-testing
Nick Mathewson's avatar
Nick Mathewson committed
539
      functionality. Closes ticket 34446.
540
541
542
543
544

  o Minor features (testing):
    - Added unit tests for channel_matches_target_addr_for_extend().
      Closes Ticket 33919. Patch by MrSquanchee.

545
546
547
548
549
550
551
  o Minor features (tests, v2 onion services):
    - Fix a rendezvous cache unit test that was triggering an underflow
      on the global rend cache allocation. Fixes bug 40125; bugfix
      on 0.2.8.1-alpha.
    - Fix another rendezvous cache unit test that was triggering an
      underflow on the global rend cache allocation. Fixes bug 40126;
      bugfix on 0.2.8.1-alpha.
552
553
554

  o Minor bugfixes (circuit padding):
    - When circpad_send_padding_cell_for_callback is called,
Nick Mathewson's avatar
Nick Mathewson committed
555
556
557
      `is_padding_timer_scheduled` flag was not reset. Now it is set to
      0 at the top of that function. Fixes bug 32671; bugfix
      on 0.4.0.1-alpha.
558
    - Add a per-circuit padding machine instance counter, so we can
Nick Mathewson's avatar
Nick Mathewson committed
559
      differentiate between shutdown requests for old machines on a
560
      circuit. Fixes bug 30992; bugfix on 0.4.1.1-alpha.
561
    - Add the ability to keep circuit padding machines if they match a
562
      set of circuit states or purposes. This allows us to have machines
Nick Mathewson's avatar
Nick Mathewson committed
563
564
565
566
      that start up under some conditions but don't shut down under
      others. We now use this mask to avoid starting up introduction
      circuit padding again after the machines have already completed.
      Fixes bug 32040; bugfix on 0.4.1.1-alpha.
567
568
569

  o Minor bugfixes (compatibility):
    - Strip '\r' characters when reading text files on Unix platforms.
Nick Mathewson's avatar
Nick Mathewson committed
570
571
      This should resolve an issue where a relay operator migrates a
      relay from Windows to Unix, but does not change the line ending of
572
573
      Tor's various state files to match the platform, and the CRLF line
      endings from Windows end up leaking into other files such as the
Nick Mathewson's avatar
Nick Mathewson committed
574
      extra-info document. Fixes bug 33781; bugfix on 0.0.9pre5.
575
576
577

  o Minor bugfixes (compilation):
    - Fix compiler warnings that would occur when building with
Nick Mathewson's avatar
Nick Mathewson committed
578
579
580
581
      "--enable-all-bugs-are-fatal" and "--disable-module-relay" at the
      same time. Fixes bug 40129; bugfix on 0.4.4.1-alpha.
    - Resolve a compilation warning that could occur in
      test_connection.c. Fixes bug 40113; bugfix on 0.2.9.3-alpha.
582
583

  o Minor bugfixes (configuration):
Nick Mathewson's avatar
Nick Mathewson committed
584
585
586
587
    - Fix bug where %including a pattern ending with */ would include
      files and folders (instead of folders only) in versions of glibc <
      2.19. Fixes bug 40141; bugfix on 0.4.5.0-alpha-dev. Patch by
      Daniel Pinto.
588

589
590
591
592
593
594
  o Minor bugfixes (control port):
    - Make sure we send the SOCKS request address in relay begin cells
      when a stream is attached with the purpose
      CIRCUIT_PURPOSE_CONTROLLER. Fixes bug 33124; bugfix on 0.0.5.
      Patch by Neel Chauhan.

595
  o Minor bugfixes (logging):
596
    - Remove a debug logging statement that uselessly spammed the logs.
Nick Mathewson's avatar
Nick Mathewson committed
597
598
599
600
601
602
603
      Fixes bug 40135; bugfix on 0.3.5.0-alpha.
    - When logging a rate-limited message about how many messages have
      been suppressed in the last N seconds, give an accurate value for
      N, rounded up to the nearest minute. Previously we would report
      the size of the rate-limiting interval, regardless of when the
      messages started to occur. Fixes bug 19431; bugfix
      on 0.2.2.16-alpha.
604
605

  o Minor bugfixes (relay configuration, crash):
Nick Mathewson's avatar
Nick Mathewson committed
606
607
608
    - Avoid a fatal assert() when failing to create a listener
      connection for an address that was in use. Fixes bug 40073; bugfix
      on 0.3.5.1-alpha.
609
610
611

  o Minor bugfixes (rust, protocol versions):
    - Declare support for the onion service introduction point denial of
612
      service extensions when building with Rust. Fixes bug 34248;
Nick Mathewson's avatar
Nick Mathewson committed
613
      bugfix on 0.4.2.1-alpha.
614
    - Make Rust protocol version support checks consistent with the
615
616
      undocumented error behavior of the corresponding C code. Fixes bug
      34251; bugfix on 0.3.3.5-rc.
617
618

  o Minor bugfixes (self-testing):
Nick Mathewson's avatar
Nick Mathewson committed
619
620
621
622
623
    - When receiving an incoming circuit, only accept it as evidence
      that we are reachable if the declared address of its channel is
      the same address we think that we have. Otherwise, it could be
      evidence that we're reachable on some other address. Fixes bug
      20165; bugfix on 0.1.0.1-rc.
624
625
626

  o Minor bugfixes (spec conformance):
    - Use the correct key type when generating signing->link
Nick Mathewson's avatar
Nick Mathewson committed
627
      certificates. Fixes bug 40124; bugfix on 0.2.7.2-alpha.
628

629
630
631
  o Minor bugfixes (subprotocol versions):
    - Consistently reject extra commas, instead of only rejecting
      leading commas. Fixes bug 27194; bugfix on 0.2.9.4-alpha.
Nick Mathewson's avatar
Nick Mathewson committed
632
633
634
635
636
    - In summarize_protover_flags(), treat empty strings the same as
      NULL. This prevents protocols_known from being set. Previously, we
      treated empty strings as normal strings, which led to
      protocols_known being set. Fixes bug 34232; bugfix on
      0.3.3.2-alpha. Patch by Neel Chauhan.
637
638

  o Minor bugfixes (v2 onion services):
Nick Mathewson's avatar
Nick Mathewson committed
639
    - For HSFETCH commands on v2 onion services addresses, check the
640
641
      length of bytes decoded, not the base32 length. Fixes bug 34400;
      bugfix on 0.4.1.1-alpha. Patch by Neel Chauhan.
642
643

  o Code simplification and refactoring:
644
    - Add and use a set of functions to perform down-casts on constant
645
      connection and channel pointers. Closes ticket 40046.
Nick Mathewson's avatar
Nick Mathewson committed
646
647
648
649
    - Refactor our code that logs descriptions of connections, channels,
      and the peers on them, to use a single call path. This change
      enables us to refactor the data types that they use, and eliminates
      many confusing usages of those types. Closes ticket 40041.
650
651
    - Refactor some common node selection code into a single function.
      Closes ticket 34200.
Nick Mathewson's avatar
Nick Mathewson committed
652
653
654
655
656
    - Remove the now-redundant 'outbuf_flushlen' field from our
      connection type. It was previously used for an older version of
      our rate-limiting logic. Closes ticket 33097.
    - Rename "fascist_firewall_*" identifiers to "reachable_addr_*"
      instead, for consistency with other code. Closes ticket 18106.
657
    - Rename functions about "advertised" ports which are not in fact
658
      guaranteed to return the ports that have been advertised. Closes
659
660
      ticket 40055.
    - Split implementation of several command line options from
Nick Mathewson's avatar
Nick Mathewson committed
661
662
663
664
665
666
      options_init_from_torrc into smaller isolated functions. Patch by
      Daniel Pinto. Closes ticket 40102.
    - When an extend cell is missing an IPv4 or IPv6 address, fill in
      the address from the extend info. This is similar to what was done
      in ticket 33633 for ed25519 keys. Closes ticket 33816. Patch by
      Neel Chauhan.
667
668
669

  o Deprecated features:
    - The "non-builtin" argument to the "--dump-config" command is now
Nick Mathewson's avatar
Nick Mathewson committed
670
      deprecated. When it works, it behaves the same as "short", which
671
672
      you should use instead. Closes ticket 33398.

Nick Mathewson's avatar
Nick Mathewson committed
673
674
675
676
677
678
679
680
681
682
683
684
685
  o Documentation:
    - Replace URLs from our old bugtracker so that they refer to the new
      bugtracker and wiki. Closes ticket 40101.

  o Removed features:
    - We no longer ship or build a "tor.service" file for use with
      systemd. No distribution included this script unmodified, and we
      don't have the expertise ourselves to maintain this in a way that
      all the various systemd-based distributions can use. Closes
      ticket 30797.
    - We no longer ship support for the Android logging API. Modern
      versions of Android can use the syslog API instead. Closes
      ticket 32181.
686
687
688
689
690
691
    - The "optimistic data" feature is now always on; there is no longer
      an option to disable it from the torrc file or from the consensus
      directory. Closes part of 40139.
    - The "usecreatefast" network parameter is now removed; there is no
      longer an option for authorities to turn it off. Closes part
      of 40139.
Nick Mathewson's avatar
Nick Mathewson committed
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712

  o Testing:
    - Add unit tests for bandwidth statistics manipulation functions.
      Closes ticket 33812. Patch by MrSquanchee.

  o Code simplification and refactoring (autoconf):
    - Remove autoconf checks for unused funcs and headers. Closes ticket
      31699; Patch by @bduszel

  o Code simplification and refactoring (maintainer scripts):
    - Disable by default the pre-commit hook. Use the environment
      variable TOR_EXTRA_PRE_COMMIT_CHECKS in order to run it.
      Furthermore, stop running practracker in the pre-commit hook and
      make check-local. Closes ticket 40019.

  o Code simplification and refactoring (relay address):
    - Most of IPv4 representation was using "uint32_t". It has now been
      moved to use the internal "tor_addr_t" interface instead. This is
      so we can properly integrate IPv6 along IPv4 with common
      interfaces. Closes ticket 40043.

713
  o Documentation (manual page):
714
    - Move them from doc/ to doc/man/. Closes ticket 40044.
Nick Mathewson's avatar
Nick Mathewson committed
715
716
    - Describe the status of the "Sandbox" option more accurately. It is
      no longer "experimental", but it _is_ dependent on kernel and libc
717
718
719
720
721
722
723
      versions. Closes ticket 23378.

  o Documentation (tracing):
    - Document in depth the circuit subsystem trace events in the new
      doc/tracing/EventsCircuit.md. Closes ticket 40036.


724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
Changes in version 0.4.4.5 - 2020-09-15
  Tor 0.4.4.5 is the first stable release in the 0.4.4.x series. This
  series improves our guard selection algorithms, adds v3 onion balance
  support, improves the amount of code that can be disabled when running
  without relay support, and includes numerous small bugfixes and
  enhancements. It also lays the ground for some IPv6 features that
  we'll be developing more in the next (0.4.5) series.

  Per our support policy, we support each stable release series for nine
  months after its first stable release, or three months after the first
  stable release of the next series: whichever is longer. This means
  that 0.4.4.x will be supported until around June 2021--or later, if
  0.4.5.x is later than anticipated.

  Note also that support for 0.4.2.x has just ended; support for 0.4.3
  will continue until Feb 15, 2021. We still plan to continue supporting
  0.3.5.x, our long-term stable series, until Feb 2022.

  Below are the changes since 0.4.4.4-rc. For a complete list of changes
  since 0.4.3.6, see the ReleaseNotes file.

  o Major bugfixes (onion services, DoS):
    - Correct handling of parameters for the onion service DoS defense.
      Previously, the consensus parameters for the onion service DoS
      defenses were overwriting the parameters set by the service
      operator using HiddenServiceEnableIntroDoSDefense. Fixes bug
      40109; bugfix on 0.4.2.1-alpha.

  o Major bugfixes (stats, onion services):
    - Fix a bug where we were undercounting the Tor network's total
      onion service traffic, by ignoring any traffic originating from
      clients. Now we count traffic from both clients and services.
      Fixes bug 40117; bugfix on 0.2.6.2-alpha.

  o Minor features (control port):
    - If a ClientName was specified in ONION_CLIENT_AUTH_ADD for an
      onion service, display it when we use ONION_CLIENT_AUTH_VIEW.
      Closes ticket 40089. Patch by Neel Chauhan.

  o Minor features (denial-of-service memory limiter):
    - Allow the user to configure even lower values for the
      MaxMemInQueues parameter. Relays now enforce a minimum of 64 MB,
      when previously the minimum was 256 MB. On clients, there is no
      minimum. Relays and clients will both warn if the value is set so
      low that Tor is likely to stop working. Closes ticket 24308.

  o Minor features (tests):
    - Our "make check" target now runs the unit tests in 8 parallel
      chunks. Doing this speeds up hardened CI builds by more than a
      factor of two. Closes ticket 40098.

  o Minor bugfixes (guard selection algorithm):
    - Avoid needless guard-related warning when upgrading from 0.4.3 to
      0.4.4. Fixes bug 40105; bugfix on 0.4.4.1-alpha.

  o Minor bugfixes (tests):
    - Fix the behavior of the rend_cache/clean_v2_descs_as_dir when run
      on its own. Previously, it would exit with an error. Fixes bug
      40099; bugfix on 0.2.8.1-alpha.


785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
Changes in version 0.4.4.3-alpha - 2020-07-27
  Tor 0.4.4.3-alpha fixes several annoyances in previous versions,
  including one affecting NSS users, and several affecting the Linux
  seccomp2 sandbox.

  o Major features (fallback directory list):
    - Replace the 148 fallback directories originally included in Tor
      0.4.1.4-rc (of which around 105 are still functional) with a list
      of 144 fallbacks generated in July 2020. Closes ticket 40061.

  o Major bugfixes (NSS):
    - When running with NSS enabled, make sure that NSS knows to expect
      nonblocking sockets. Previously, we set our TCP sockets as
      nonblocking, but did not tell NSS, which in turn could lead to
      unexpected blocking behavior. Fixes bug 40035; bugfix
      on 0.3.5.1-alpha.

  o Minor bugfixes (linux seccomp2 sandbox):
    - Fix a regression on sandboxing rules for the openat() syscall. The
      fix for bug 25440 fixed the problem on systems with glibc >= 2.27
      but broke with versions of glibc. We now choose a rule based on
      the glibc version. Patch from Daniel Pinto. Fixes bug 27315;
      bugfix on 0.3.5.11.
    - Makes the seccomp sandbox allow the correct syscall for opendir
      according to the running glibc version. This fixes crashes when
      reloading torrc with sandbox enabled when running on glibc 2.15 to
      2.21 and 2.26. Patch from Daniel Pinto. Fixes bug 40020; bugfix
      on 0.3.5.11.

  o Minor bugfixes (relay, usability):
    - Adjust the rules for when to warn about having too many
      connections to other relays. Previously we'd tolerate up to 1.5
      connections per relay on average. Now we tolerate more connections
      for directory authorities, and raise the number of total
      connections we need to see before we warn. Fixes bug 33880; bugfix
      on 0.3.1.1-alpha.

  o Documentation:
    - Replace most http:// URLs in our code and documentation with
      https:// URLs. (We have left unchanged the code in src/ext/, and
      the text in LICENSE.) Closes ticket 31812. Patch from Jeremy Rand.

  o Removed features:
    - Our "check-local" test target no longer tries to use the
      Coccinelle semantic patching tool parse all the C files. While it
      is a good idea to try to make sure Coccinelle works on our C
      before we run a Coccinelle patch, doing so on every test run has
      proven to be disruptive. You can still run this tool manually with
      "make check-cocci". Closes ticket 40030.


836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Changes in version 0.3.5.11 - 2020-07-09
  Tor 0.3.5.11 backports fixes from later tor releases, including several
  usability, portability, and reliability fixes.

  This release also fixes TROVE-2020-001, a medium-severity denial of
  service vulnerability affecting all versions of Tor when compiled with
  the NSS encryption library. (This is not the default configuration.)
  Using this vulnerability, an attacker could cause an affected Tor
  instance to crash remotely. This issue is also tracked as CVE-2020-
  15572. Anybody running a version of Tor built with the NSS library
  should upgrade to 0.3.5.11, 0.4.2.8, 0.4.3.6, or 0.4.4.2-alpha
  or later.

  o Major bugfixes (NSS, security, backport from 0.4.4.2-alpha):
    - Fix a crash due to an out-of-bound memory access when Tor is
      compiled with NSS support. Fixes bug 33119; bugfix on
      0.3.5.1-alpha. This issue is also tracked as TROVE-2020-001
      and CVE-2020-15572.

  o Major bugfixes (DoS defenses, bridges, pluggable transport, backport from 0.4.3.4-rc):
    - Fix a bug that was preventing DoS defenses from running on bridges
      with a pluggable transport. Previously, the DoS subsystem was not
      given the transport name of the client connection, thus failed to
      find the GeoIP cache entry for that client address. Fixes bug
      33491; bugfix on 0.3.3.2-alpha.

  o Minor features (testing, backport from 0.4.3.4-rc):
    - The unit tests now support a "TOR_SKIP_TESTCASES" environment
      variable to specify a list of space-separated test cases that
      should not be executed. We will use this to disable certain tests
      that are failing on Appveyor because of mismatched OpenSSL
      libraries. Part of ticket 33643.

  o Minor bugfix (CI, Windows, backport from 0.4.4.2-alpha):
    - Use the correct 64-bit printf format when compiling with MINGW on
      Appveyor. Fixes bug 40026; bugfix on 0.3.5.5-alpha.

  o Minor bugfix (relay, configuration, backport from 0.4.3.3-alpha):
    - Warn if the ContactInfo field is not set, and tell the relay
      operator that not having a ContactInfo field set might cause their
      relay to get rejected in the future. Fixes bug 33361; bugfix
      on 0.1.1.10-alpha.

  o Minor bugfixes (client performance, backport from 0.4.4.1-alpha):
    - Resume use of preemptively-built circuits when UseEntryGuards is set
      to 0. We accidentally disabled this feature with that config
      setting, leading to slower load times. Fixes bug 34303; bugfix
      on 0.3.3.2-alpha.

  o Minor bugfixes (compiler compatibility, backport from 0.4.3.5):
    - Avoid compiler warnings from Clang 10 related to the use of GCC-
      style "/* falls through */" comments. Both Clang and GCC allow
      __attribute__((fallthrough)) instead, so that's what we're using
      now. Fixes bug 34078; bugfix on 0.3.1.3-alpha.

  o Minor bugfixes (compiler warnings, backport from 0.4.4.2-alpha):
    - Fix a compiler warning on platforms with 32-bit time_t values.
      Fixes bug 40028; bugfix on 0.3.2.8-rc.

  o Minor bugfixes (embedded Tor, backport from 0.4.3.1-alpha):
    - When starting Tor any time after the first time in a process,
      register the thread in which it is running as the main thread.
      Previously, we only did this on Windows, which could lead to bugs
      like 23081 on non-Windows platforms. Fixes bug 32884; bugfix
      on 0.3.3.1-alpha.

  o Minor bugfixes (key portability, backport from 0.4.3.4-rc):
    - When reading PEM-encoded key data, tolerate CRLF line-endings even
      if we are not running on Windows. Previously, non-Windows hosts
      would reject these line-endings in certain positions, making
      certain key files hard to move from one host to another. Fixes bug
      33032; bugfix on 0.3.5.1-alpha.

  o Minor bugfixes (logging, backport from 0.4.4.2-alpha):
    - Downgrade a noisy log message that could occur naturally when
      receiving an extrainfo document that we no longer want. Fixes bug
      16016; bugfix on 0.2.6.3-alpha.

  o Minor bugfixes (onion service v3, client, backport from 0.4.3.3-alpha):
    - Remove a BUG() warning that would cause a stack trace if an onion
      service descriptor was freed while we were waiting for a
      rendezvous circuit to complete. Fixes bug 28992; bugfix
      on 0.3.2.1-alpha.

  o Testing (CI, backport from 0.4.3.4-rc):
    - In our Appveyor Windows CI, copy required DLLs to test and app
      directories, before running tor's tests. This ensures that tor.exe
      and test*.exe use the correct version of each DLL. This fix is not
      required, but we hope it will avoid DLL search issues in future.
      Fixes bug 33673; bugfix on 0.3.4.2-alpha.
    - On Appveyor, skip the crypto/openssl_version test, which is
      failing because of a mismatched library installation. Fix
      for 33643.


Changes in version 0.4.2.8 - 2020-07-09
  Tor 0.4.2.8 backports various fixes from later releases, including
  several that affect usability and portability.

  This release also fixes TROVE-2020-001, a medium-severity denial of
  service vulnerability affecting all versions of Tor when compiled with
  the NSS encryption library. (This is not the default configuration.)
  Using this vulnerability, an attacker could cause an affected Tor
  instance to crash remotely. This issue is also tracked as CVE-2020-
  15572. Anybody running a version of Tor built with the NSS library
  should upgrade to 0.3.5.11, 0.4.2.8, 0.4.3.6, or 0.4.4.2-alpha
  or later.

  o Major bugfixes (NSS, security, backport from 0.4.4.2-alpha):
    - Fix a crash due to an out-of-bound memory access when Tor is
      compiled with NSS support. Fixes bug 33119; bugfix on
      0.3.5.1-alpha. This issue is also tracked as TROVE-2020-001
      and CVE-2020-15572.

  o Major bugfixes (DoS defenses, bridges, pluggable transport, backport from 0.4.3.4-rc):
    - Fix a bug that was preventing DoS defenses from running on bridges
      with a pluggable transport. Previously, the DoS subsystem was not
      given the transport name of the client connection, thus failed to
      find the GeoIP cache entry for that client address. Fixes bug
      33491; bugfix on 0.3.3.2-alpha.

  o Minor feature (sendme, flow control, backport form 0.4.3.4-rc):
    - Default to sending SENDME version 1 cells. (Clients are already
      sending these, because of a consensus parameter telling them to do
      so: this change only affects what clients would do if the
      consensus didn't contain a recommendation.) Closes ticket 33623.

  o Minor features (diagnostic, backport from 0.4.3.3-alpha):
    - Improve assertions and add some memory-poisoning code to try to
      track down possible causes of a rare crash (32564) in the EWMA
      code. Closes ticket 33290.

  o Minor features (testing, backport from 0.4.3.4-rc):
    - The unit tests now support a "TOR_SKIP_TESTCASES" environment
      variable to specify a list of space-separated test cases that
      should not be executed. We will use this to disable certain tests
      that are failing on Appveyor because of mismatched OpenSSL
      libraries. Part of ticket 33643.

  o Minor bugfix (CI, Windows, backport from 0.4.4.2-alpha):
    - Use the correct 64-bit printf format when compiling with MINGW on
      Appveyor. Fixes bug 40026; bugfix on 0.3.5.5-alpha.

  o Minor bugfix (relay, configuration, backport from 0.4.3.3-alpha):
    - Warn if the ContactInfo field is not set, and tell the relay
      operator that not having a ContactInfo field set might cause their
      relay to get rejected in the future. Fixes bug 33361; bugfix
      on 0.1.1.10-alpha.

  o Minor bugfixes (client performance, backport from 0.4.4.1-alpha):
    - Resume use of preemptively-built circuits when UseEntryGuards is set
      to 0. We accidentally disabled this feature with that config
      setting, leading to slower load times. Fixes bug 34303; bugfix
      on 0.3.3.2-alpha.

  o Minor bugfixes (compiler compatibility, backport from 0.4.3.5):
    - Avoid compiler warnings from Clang 10 related to the use of GCC-
      style "/* falls through */" comments. Both Clang and GCC allow
      __attribute__((fallthrough)) instead, so that's what we're using
      now. Fixes bug 34078; bugfix on 0.3.1.3-alpha.
    - Fix compilation warnings with GCC 10.0.1. Fixes bug 34077; bugfix
      on 0.4.0.3-alpha.

  o Minor bugfixes (compiler warnings, backport from 0.4.4.2-alpha):
    - Fix a compiler warning on platforms with 32-bit time_t values.
For faster browsing, not all history is shown. View entire blame