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