chiark / gitweb /
changelog: tidy up changes since 0.5.1
[secnet.git] / debian / changelog
1 secnet (0.6.0~) unstable; urgency=medium
2
3   Bugfixes:
4   * mobile sites: Do not ever expire peer addresses.  In practice
5     this fixes transitions between IPv6-only and IPv4-only networks.
6   * make-secnet-sites: Tainted: Fix a lot of bad return values
7     (which would result in assertions rather than nice error messages).
8
9   Minor incompatible changes:
10   * Drop support for using the same loaded rsa key with multiple different
11     hash algorithms (which was broken in 0.5.0).  Right now we support
12     only `sha1' and `md5' so everyone should be using `sha1'.
13     Installations which specified `md5' aywhere may need config changes.
14   * site: Always advertise all capabilities, even in MSG1.
15     This is incompatible with secnets earlier than 0.3.0 (September 2013);
16     all older versions are quite broken in other ways.
17
18   secnet logging improvements:
19   * Make stderr line buffered and log to it by default.
20   * Do not log differently with --nodetach
21   * New `prefix' option to `logfile' closure
22   * Tidy and simplify some messages
23
24   Major new featureset (use of which is not adviseable yet):
25   * New facilities for negotiating about the signing keys to use for
26     authentication during key setup, and selecting and using the
27     appropriate keys.  (``key-cache'/`privcache' and `peer-keys').
28     Using these new facilities for keyrollover now is in principle
29     possible but rather complex.  Further machinery is planned;
30     for now, retain your existing config which should keep working.
31     In summary:
32        - secnet: new `privcache' closure
33        - secnet: `key-cache' and `peer-keys' keys on site closures
34        - secnet: new file format for peer public keysets
35        - new `make-public' verb
36        - make-secnet-sites `pub', `pkg', `serial', etc. keywords
37        - make-secnet-sites --filter, --pubkeys-*, --output-version
38
39   Supporting changes:
40   * Many substantial internal refactorings in secnet
41   * Many substantial internal refactorings in make-secnet-sites
42   * Imported subtrees for base91-c and base91-python
43   * New portablity code, etc.: osdep.[ch], fmemopen reimplementation
44   * Explicitly define oddly-rotated dh padding arrangement (write_mpbin)
45
46   Test suite bugfixes:
47   * stest: Use stderr, not tty, for logging
48   * stest/udp-preload.c: Fix error handling of sun_prep
49   * stest: Fix breakage if nproc is not installed
50
51   Test suite improvements:
52   * New tests, including tests for new features.
53   * Existing tests (especially stest) generally made more thorough.
54   * New comprehensive-test and pretest-to-tested convenience scripts.
55   * Arrangements for testing with (user-provided) old secnet.
56   * parallel-test.*: scripts to help with parallelised bisection.
57   * stest: Print a lot more output about what we are doing.
58   * stest: Better support for cwd with longish pathname.
59   * stest: More flexibility, env var hooks, etc.
60
61   Build system and administrivia
62   * Do not fail to build from git when HEAD refers to a packed ref
63   * Update to subdirmk 0.3
64   * Many makefile fixes (esp. to clean and cdeps)
65   * configure.ac: Drop or suppress some very obsolete checks
66   * autogen.sh: Write a comment about need for autoheader
67   * dir-locals: Provide python-indent-offset too
68
69  --
70
71 secnet (0.5.1) unstable; urgency=medium
72
73   POTENTIALLY INCOMPATIBLE CHANGE.  Some security implications.
74
75   * make-secnet-sites: Prefix names when writing secnet sites.conf file.
76
77     make-secnet-sites must copy names (vpn, location and site names) from
78     the input sites file (which is not wholly trusted) to the secnet
79     config file.  Prior to this release, naming a location or site the
80     same as a secnet predefined name could generate a broken sites.conf
81     which secnet would reject.  (With the existing featureset,
82     malfunctions other than rejection, eg privilege escalation, are not
83     possible.)
84
85     make-secnet-sites now adds a prefix to these names when writing
86     sites.conf.  This will not affect configurations which use the
87     make-secnet-sites-provided `all-sites' key, as is usual.  Other
88     configurations will break unless the references in the static part of
89     the config are adjusted.
90
91     Previous behaviour can be restored with the --no-conf-key-prefix
92     option.  (Planned future enhancements to secnet are likely to make use
93     of that option, with untrusted input, dangerously insecure.)
94
95   other changes to make-secnet-sites:
96   * Fix argument parsing.  Fixes a regression affecting -P in 0.5.0,
97     and also fixes new facilities introduced in 0.5.0.
98   * Sort the properties on output (and adjust the test case expected
99     outputs).  Tests now pass on (at least) Python 2.7.13, 3.5.3, 3.7.5.
100   * Delete some unused code.
101
102   secnet:
103   * Change one idiom to avoid a warning from GCC9.  No functional change.
104
105   build system - MAJOR CHANGES:
106   * Fix out-of-tree builds.  (Broken in 0.5.0)
107   * Replace recursive make with use of the new subdirmk system.
108     This represents a fairly comprehensive overhaul of the makefiles.
109     Several bugs (esp. involving dependencies between files in different
110     directories) are fixed.
111   * Drop `make check' from `make all'.  (Otherwise there is no way
112     to ask for `all' without `check'.)
113   * Suppress two unhelpful new compiler warnings from GCC9.
114   * Release checklist update.
115
116   documentation:
117   * Credit Mark Wooding properly in CREDITS.
118   * Include DEVELOPER-CERTIFICATE.
119
120   tests:
121   * Locations now have different names to sites.
122   * Somewhat better debugging output from mtest.
123   * Do not run msgcode-test except with `make fullcheck'.
124   * Other minor bugfixes and improvments.
125   * stest: Suppress unhelpful -Wno-unused-result (needed for stretch).
126
127  -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Fri, 22 Nov 2019 23:13:14 +0000
128
129 secnet (0.5.0) unstable; urgency=medium
130
131   make-secnet-sites SECURITY FIX:
132   * Do not blindly trust inputs; instead, check the syntax for sanity.
133     Previous releases can be induced to run arbitrary code as the user
134     invoking secnet (which might be root), if a secnet sites.conf is used
135     that was generated from an untrustworthy sites file.
136   * The userv invocation mode of make-secnet-sites seems to have been safe
137     in itself, but it previously allowed hazardous data to be propagated
138     into the master sites file.  This is now prevented too.
139
140   make-secnet-sites overhaul work:
141   * make-secnet-sites is now in the common subset of Python2 and Python3.
142     The #! is python3 now, but it works with Python2.7 too.
143     It will probably *not* work with old versions of Python2.
144   * We no longer depend on the obsolete `ipaddr' library.  We use
145     `ipaddress' now.  And this is onlo a Recommends in the .deb.
146   * Ad-hoc argument parser been replaced with `argparse'.
147     There should be no change to existing working invocations.
148   * Bad address syntax error does not wrongly mention IPv6 scopes.
149   * Minor refactoring to support forthcoming work.  [Mark Wooding]
150
151   other bugfixes, improvements and changes to secnet itself:
152   * Better logging of why we are sending NAK messages.
153   * Correctly use the verified copy of the peer remote capabilities
154     from MSG3.  (Bug is not a vulnerability.)    [Mark Wooding]
155   * Significant internal rearrangements and refactorings, to support
156     forthcoming key management work.  [Mark Wooding and Ian Jackson]
157
158   build system etc.:
159   * Completely overhaul release checklist; drop dist target.
160   * Remove dependency on `libfl.a'.  [Mark Wooding]
161   * polypath.c: Fix missing include of <limits.h>.  [Mark Wooding]
162   * Add a Wireshark dissector `secnet-wireshark.lua'.  It is not
163     installed anywhere right now.  [Mark Wooding]
164
165   documentation:
166   * Improve documentation of capability negotiation in NOTES, secnet(8)
167     and magic.h.  [Mark Wooding]
168
169  -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Thu, 24 Oct 2019 19:11:54 +0100
170
171 secnet (0.4.5) unstable; urgency=medium
172
173   * INSTALL: Mention that rsa key generation might need ssh-keygen1.
174   * mobile: Fix negotiation bug with mixed old/new secnets and
175     simultaneous key setup attempts by each end.  [Mark Wooding]
176   * Makefile.in: Support installation from a `VPATH' build.  [Mark Wooding]
177   * Portability fixes for clang.  [Mark Wooding]
178
179  -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Sat, 21 Sep 2019 12:04:31 +0100
180
181 secnet (0.4.4) unstable; urgency=medium
182
183   Security fix:
184   * make-secnet-sites: Don't allow setting new VPN-level properties
185     when restricted.  This could allow denial of service by
186     users with delegated authorisation.  [Mark Wooding]
187
188   Bugfixes for poor network environments:
189   * polypath: cope properly with asymmetric routing, by correcting
190     the handling of late duplicated packets etc.   Protocol is now
191     incompatible with secnet prior to 0.3.0 when either end is mobile.
192   * Randomise key setup retry time.
193
194   Other bugfixes:
195   * rsa and cbcmac: Fix configuration error messages.  [Mark Wooding]
196   * Handle IPv4 addresses properly (ie, not foolishly byte-swapped),
197     when IPv6 is not available.  [Mark Wooding]
198   * Better logging (and less foolish debug), especially about whether
199     key is set up, and about crossed key setup attempts.
200   * Internal refactoring and fixes.  [Ian Jackson and Mark Wooding]
201
202   Build system and portability:
203   * configure: rerun autogen.sh with autoconf 2.69-10
204   * Avoid memset(0,0,0) wrt st->sharedsecret.  (Fixes compiler warning;
205     in theory might cause miscompilation.)  [Mark Wooding]
206
207   Documentation:
208   * README.make-secnet-sites: new documentation file.  [Mark Wooding]
209   * NOTES: Describe current allocation of capability bits.  [Mark Wooding]
210   * NOTES: tiny fix tot protocol description.
211   * secnet(8): Delete wrong information about dh groups.  [Mark Wooding]
212
213   Administrivia:
214   * Fix erroneous GPL3+ licence notices "version d or later" (!)
215   * .dir-locals.el: Settings for Python code.  [Mark Wooding]
216
217  -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Sun, 08 Sep 2019 22:53:14 +0100
218
219 secnet (0.4.3) unstable; urgency=low
220
221   Security improvement:
222   * Use `mpz_powm_sec' for modexps.
223
224   Enhancements:
225   * Implement comm-info and dedicated-interface-addr feature, for
226     benefit of hippotat.
227   * Implement `keepalive' site option, to try to keep link always up.
228
229   Build etc. fixes:
230   * #include <limits.h> (fixes the build on jessie).
231   * Tolerate building from a git checkout, but with git not installed.
232     (This can happen in chroots.)
233   * Turn off -Wsign-compare for bison output.
234   * Makefile.in: Fix `check-ipaddrset' rule to get reference from
235     $(srcdir).  (Makes out-of-tree builds work properly.)
236   * Release checklist fixes.
237   * Burn version numbers 0.4.1 and 0.4.2 due to errors in release prep.
238
239   Bugfixes:
240   * When printing messages about dropping IPv6, do not print anything
241     about ihl.  (Check the IP version field first!)
242   * When turning on debug, turn on verbose too.
243
244  -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Sat, 25 Nov 2017 13:36:41 +0000
245
246 secnet (0.4.0) unstable; urgency=low
247
248   Debugging improvements:
249   * Packet-level debugging from site notes errors from transmit.
250   * Report when transport peers updated as a result of transmit.
251
252  -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Sat, 28 Feb 2015 15:03:00 +0000
253
254 secnet (0.4.0~beta2) unstable; urgency=low
255
256   Polypath bugfixes:
257   * Ignore IPv6 Unique Local unicast addresses.
258   * Skip "tentative" IPv6 local addresses.
259   * Improve logging and debug output.
260
261   Portability fix:
262   * Build where size_t is not compatible with int.
263
264   Build system and packaging fixes:
265   * Makefile: support DESTDIR.
266   * debian/rules: set DESTDIR (not prefix).
267   * debian/rules: Support dpkg-buildflags.
268   * Install ipaddrset.py and secnet.8 with correct permissions.
269   * Fix check for <linux/if_tun.h> and git rid of our copy.
270   * Use -lresolv only if inet_aton is not found otherwise.
271   * Use -lnsl only if inet_ntoa is not found otherwise.
272   * debian/rules: Provide build-arch and build-indep targets.
273   * debian/rules: Do not run build for *-indep (!)
274   * Makefile.in: Putative dual (backport and not) release build process doc.
275
276   Copyright updates:
277   * Update to GPLv3.  Add missing copyright notices and credits.
278   * Get rid of old FSF street address; use URL instead.
279   * Remove obsolete LICENCE.txt (which was for snprintf reimplementation).
280   * Remove obsolete references to Cendio (for old ipaddr.py).
281
282  -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Sun, 28 Dec 2014 17:14:10 +0000
283
284 secnet (0.4.0~beta1) unstable; urgency=low
285
286   New features:
287   * Support transport over IPv6.  (We do not yet carry IPv6 in the private
288     network.)  IPv6 support depends on IPv6-capable adns (adns 1.5.x).
289   * New polypath comm, which can duplicate packets so as to send them via
290     multiple routes over the public network, for increased
291     reliability/performance (but increased cost).  Currently Linux-only
292     but should be fairly easy to port.
293   * Support multiple public addresses for peers.
294   * Discard previously-received packets (by default).
295
296   Logging improvements:
297   * Report (each first) transmission and reception success and failure.
298   * Log reason for DNS reolution failure.
299   * Log unexpected kinds of death from userv.
300   * Log authbind exit status as errno value (if appropriate).
301
302   Configuration adjustments:
303   * Adjust default number of mobile peer addresses to store when a peer
304     public address is also configured.
305   * Make specifying peer public port optional.  This avoids making special
306     arrangements to bind to a port for in mobile sites with no public
307     stable address.
308
309   Bugfixes:
310   * Hackypar children will die if they get a terminating signal.
311   * Fix signal dispositions inherited by secnet's child processes.
312   * Fix off-by-one error which prevented setting transport-peers-max to 5.
313
314   Test, build and internal improvements:
315   * Use conventional IP address handling library ipaddr.py.
316   * Provide a fuzzer for the slip decoder.
317   * Build system improvements.
318   * Many source code cleanups.
319
320  -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Sun, 26 Oct 2014 15:28:31 +0000
321
322 secnet (0.3.4) unstable; urgency=low
323
324   SECURITY FIX:
325   * The previous security fix to buffer handling was entirely wrong.  This
326     one is better.  Thanks to Simon Tatham for the report and the patch.
327
328  -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Mon, 22 Sep 2014 16:16:11 +0100
329
330 secnet (0.3.3) unstable; urgency=high
331
332   SECURITY FIXES:
333   * Pass correct size argument to recvfrom.  This is a serious security
334     problem which may be exploitable from outside the VPN.
335   * Fix a memory leak in some error logging.
336
337   Other related fixes:
338   * Two other latent bugs in buffer length handling found and fixed.
339   * Non-critical stylistic improvements to buffer length handling, to make
340     the code clearer and to assist audit.
341
342  -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Fri, 19 Sep 2014 23:50:45 +0100
343
344 secnet (0.3.3~beta1) unstable; urgency=low
345
346   Installation compatibility fix:
347   * In make-secnet-sites, always use our own ipaddr.py even if the
348     incompatible modern ipaddr.py is installed (eg via python-ipaddr.deb).
349     (Future versions of secnet are going to need that Python module to be
350     installed.)
351
352   For links involving mobile sites:
353   * Use source of NAK packets as hint for peer transport address.
354   * When initiating rekey, make use of data transport peer addresses.
355
356   Build fix:
357   * Provide clean target in test-example/Makefile.
358
359  -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Fri, 19 Sep 2014 00:11:44 +0100
360
361 secnet (0.3.2) unstable; urgency=low
362
363   * Release of 0.3.2.  No code changes since 0.3.1~beta1.
364
365  -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Thu, 26 Jun 2014 20:27:58 +0100
366
367 secnet (0.3.2~beta1) unstable; urgency=low
368
369   For links involving mobile sites:
370   * SECURITY: Properly update peer address array when it is full.
371   * Do name-resolution on peer-initiated key setup too, when we are mobile
372     (and other name-resolution improvements).
373
374   Other minor improvements:
375   * Log peer addresses on key exchange timeout.
376   * When printing version (eg during startup), use value from git-describe
377     and thus include git commit id where applicable.
378   * Updates to release checklist in Makefile.in.
379   * Use C99 _Bool for bool_t.
380
381  -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Fri, 06 Jun 2014 01:17:54 +0100
382
383 secnet (0.3.1) unstable; urgency=low
384
385   * Release of 0.3.1.  No code changes since 0.3.1~beta3.
386
387  -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Thu, 15 May 2014 01:08:30 +0100
388
389 secnet (0.3.1~beta3) unstable; urgency=low
390
391   * Build fixes for non-i386 architectures and gcc 4.8.2.
392
393  -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Thu, 08 May 2014 19:53:43 +0100
394
395 secnet (0.3.1~beta2) unstable; urgency=low
396
397   Fix relating to new fragmentation / ICMP functionality:
398   * Generate ICMP packets correctly in point-to-point configurations.
399
400  -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Sat, 03 May 2014 18:58:09 +0100
401
402 secnet (0.3.1~beta1) unstable; urgency=low
403
404   Security fixes (vulnerabilities are to inside attackers only):
405   * SECURITY: Fixes to MTU and fragmentation handling.
406   * SECURITY: Correctly set "unused" ICMP header field.
407   * SECURITY: Fix IP length check not to crash on very short packets.
408
409   New feature:
410   * Make the inter-site MTU configurable, and negotiate it with the peer.
411
412   Bugfixes etc.:
413   * Fix netlink SEGV on clientless netlinks (i.e. configuration error).
414   * Fix formatting error in p-t-p startup message.
415   * Do not send ICMP errors in response to unknown incoming ICMP.
416   * Fix formatting error in secnet.8 manpage.
417   * Internal code rearrangements and improvements.
418
419   Packaging improvements:
420   * Updates to release checklist in Makefile.in.
421   * Additions to the test-example suite.
422
423  -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Thu, 01 May 2014 19:02:56 +0100
424
425 secnet (0.3.0) unstable; urgency=low
426
427   * Release of 0.3.0.  No code changes since 0.3.0~beta3.
428   * Update release checklist.
429
430  -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Sun, 01 Sep 2013 20:27:48 +0100
431
432 secnet (0.3.0~beta3) unstable; urgency=low
433
434   * New upstream version.
435    - Stability bugfix: properly initialise site's scratch buffer.
436
437  -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Mon, 05 Aug 2013 11:54:09 +0100
438
439 secnet (0.3.0~beta2) unstable; urgency=low
440
441   * New upstream version.
442    - SECURITY FIX: RSA public modulus and exponent buffer overflow.
443    - SECURITY FIX: Use constant-time memcmp for message authentication.
444    - SECURITY FIX: Provide a new transform, eax-serpent, to replace cbcmac.
445    - SECURITY FIX: No longer send NAKs for NAKs, avoiding NAK storm.
446    - SECURITY FIX: Fix site name checking when site name A is prefix of B.
447    - SECURITY FIX: Safely reject too-short IP packets.
448    - Better robustness for mobile sites (proper user of NAKs, new PROD msg).
449    - Better robustness against SLIP decoding errors.
450    - Fix bugs which caused routes to sometimes not be advertised.
451    - Protocol capability negotiation mechanism.
452    - Improvements and fixes to protocol and usage documentation.
453    - Other bugfixes and code tidying up.
454
455  -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Thu, 25 Jul 2013 18:26:01 +0100
456
457 secnet (0.3.0~beta1) unstable; urgency=low
458
459   * New upstream version.
460    - SECURITY FIX: avoid crashes (or buffer overrun) on short packets.
461    - Bugfixes relating to packet loss during key exchange.
462    - Bugfixes relating to link up/down status.
463    - Bugfixes relating to logging.
464    - make-secnet-sites made more sophisticated to support two vpns on chiark.
465    - Documentation improvements.
466    - Build system improvements.
467   * Debian packaging improvements:
468    - Native package.
469    - Maintainer / uploaders.
470    - init script requires $remove_fs since we're in /usr.
471
472  -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Thu, 12 Jul 2012 20:18:16 +0100
473
474 secnet (0.2.1-1) unstable; urgency=low
475
476   * New upstream version.  (authbind endianness fix)
477
478  -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Sun, 11 Dec 2011 13:14:57 +0000
479
480 secnet (0.2.0-1) unstable; urgency=low
481
482   * New upstream version.
483
484  -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Sat, 10 Dec 2011 22:44:41 +0000
485
486 secnet (0.1.18-1) unstable; urgency=low
487
488   * New upstream version.
489
490  -- Stephen Early <steve@greenend.org.uk>  Tue,  18 Mar 2008 17:45:00 +0000