X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=secnet.git;a=blobdiff_plain;f=debian%2Fchangelog;h=cabe3f9797576f32a49fe67cf580e2c440b3bd3a;hp=9931c971ed5bb9889be12bc7079ec2d80229c14d;hb=HEAD;hpb=d3fe100dfc120244d316e083ce87b1eb130fe4fd diff --git a/debian/changelog b/debian/changelog index 9931c97..9ee83bd 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,5 +1,498 @@ -secnet (0.1.12-1) unstable; urgency=low +secnet (0.6.1~) unstable; urgency=medium + + * + + -- + +secnet (0.6.0) unstable; urgency=medium + + Bugfixes: + * mobile sites: Do not ever expire peer addresses. In practice + this fixes transitions between IPv6-only and IPv4-only networks. + * make-secnet-sites: Tainted: Fix a lot of bad return values + (which would result in assertions rather than nice error messages). + * Fix hash algo confusion in mixed sha1/md5 configurations (see below). + + Incompatible changes: + * site: Always advertise all capabilities, even in MSG1. This is + incompatible with secnets earlier than 0.3.0 (September 2013), which + are all quite badly broken and should have been upgraded long ago. + * Drop support for using the same loaded rsa key with multiple different + hash algorithms (which was broken in 0.5.0). Right now we support + only `sha1' and `md5' so everyone should be using `sha1'. + Installations which specified `md5' anywhere may need config changes. + + Major new featureset (use of which is not adviseable yet): + * New facilities for negotiating about the signing keys to use for + authentication during key setup, and selecting and using the + appropriate keys. (``key-cache'/`privcache' and `peer-keys'). + Using these new facilities for keyrollover now is in principle + possible but rather complex. Further machinery is planned; + for now, retain your existing config which should keep working. + In summary: + - secnet: new `privcache' closure; + - secnet: `key-cache' and `peer-keys' keys on site closures; + - secnet: new file format for peer public keysets; + - secnet: new `make-public' config operator; + - make-secnet-sites `pub', `pkg', `serial', etc. keywords; + - make-secnet-sites --filter, --pubkeys-*, --output-version. + + More minor (logging) improvements: + * Make stderr line buffered and log to it by default. + * Do not log differently with --nodetach. + * New `prefix' option to `logfile' closure. + * Tidy and simplify some messages. + + Supporting changes: + * Many substantial internal refactorings in secnet. + * Many substantial internal refactorings in make-secnet-sites. + * make-secnet-sites option parsing totally replaced. + * Imported subtrees for base91-c and base91-python. + * New portablity code, etc.: osdep.[ch], fmemopen reimplementation. + * Explicitly define oddly-rotated dh padding arrangement (write_mpbin). + + Build system and packaging: + * Do not fail to build from git when HEAD refers to a packed ref. + * Update to subdirmk 0.3. + * Many makefile fixes (esp. to clean and cdeps). + * configure.ac: Drop or suppress some very obsolete checks. + * autogen.sh: Write a comment about need for autoheader. + * dir-locals: Provide python-indent-offset too. + + Test suite bugfixes: + * stest: Use stderr, not tty, for logging. + * stest/udp-preload.c: Fix error handling of sun_prep. + * stest: Fix breakage if nproc is not installed. + + Test suite improvements: + * New tests, including tests for new features. + * Existing tests (especially stest) generally made more thorough. + * New comprehensive-test and pretest-to-tested convenience scripts. + * Arrangements for testing with (user-provided) old secnet. + * parallel-test.*: scripts to help with parallelised bisection. + * stest: Print a lot more output about what we are doing. + * stest: Better support for cwd with longish pathname. + * stest: More flexibility, env var hooks, etc. + + -- Ian Jackson Sun, 16 Feb 2020 12:48:13 +0000 + +secnet (0.5.1) unstable; urgency=medium + + POTENTIALLY INCOMPATIBLE CHANGE. Some security implications. + + * make-secnet-sites: Prefix names when writing secnet sites.conf file. + + make-secnet-sites must copy names (vpn, location and site names) from + the input sites file (which is not wholly trusted) to the secnet + config file. Prior to this release, naming a location or site the + same as a secnet predefined name could generate a broken sites.conf + which secnet would reject. (With the existing featureset, + malfunctions other than rejection, eg privilege escalation, are not + possible.) + + make-secnet-sites now adds a prefix to these names when writing + sites.conf. This will not affect configurations which use the + make-secnet-sites-provided `all-sites' key, as is usual. Other + configurations will break unless the references in the static part of + the config are adjusted. + + Previous behaviour can be restored with the --no-conf-key-prefix + option. (Planned future enhancements to secnet are likely to make use + of that option, with untrusted input, dangerously insecure.) + + other changes to make-secnet-sites: + * Fix argument parsing. Fixes a regression affecting -P in 0.5.0, + and also fixes new facilities introduced in 0.5.0. + * Sort the properties on output (and adjust the test case expected + outputs). Tests now pass on (at least) Python 2.7.13, 3.5.3, 3.7.5. + * Delete some unused code. + + secnet: + * Change one idiom to avoid a warning from GCC9. No functional change. + + build system - MAJOR CHANGES: + * Fix out-of-tree builds. (Broken in 0.5.0) + * Replace recursive make with use of the new subdirmk system. + This represents a fairly comprehensive overhaul of the makefiles. + Several bugs (esp. involving dependencies between files in different + directories) are fixed. + * Drop `make check' from `make all'. (Otherwise there is no way + to ask for `all' without `check'.) + * Suppress two unhelpful new compiler warnings from GCC9. + * Release checklist update. + + documentation: + * Credit Mark Wooding properly in CREDITS. + * Include DEVELOPER-CERTIFICATE. + + tests: + * Locations now have different names to sites. + * Somewhat better debugging output from mtest. + * Do not run msgcode-test except with `make fullcheck'. + * Other minor bugfixes and improvments. + * stest: Suppress unhelpful -Wno-unused-result (needed for stretch). + + -- Ian Jackson Fri, 22 Nov 2019 23:13:14 +0000 + +secnet (0.5.0) unstable; urgency=medium + + make-secnet-sites SECURITY FIX: + * Do not blindly trust inputs; instead, check the syntax for sanity. + Previous releases can be induced to run arbitrary code as the user + invoking secnet (which might be root), if a secnet sites.conf is used + that was generated from an untrustworthy sites file. + * The userv invocation mode of make-secnet-sites seems to have been safe + in itself, but it previously allowed hazardous data to be propagated + into the master sites file. This is now prevented too. + + make-secnet-sites overhaul work: + * make-secnet-sites is now in the common subset of Python2 and Python3. + The #! is python3 now, but it works with Python2.7 too. + It will probably *not* work with old versions of Python2. + * We no longer depend on the obsolete `ipaddr' library. We use + `ipaddress' now. And this is onlo a Recommends in the .deb. + * Ad-hoc argument parser been replaced with `argparse'. + There should be no change to existing working invocations. + * Bad address syntax error does not wrongly mention IPv6 scopes. + * Minor refactoring to support forthcoming work. [Mark Wooding] + + other bugfixes, improvements and changes to secnet itself: + * Better logging of why we are sending NAK messages. + * Correctly use the verified copy of the peer remote capabilities + from MSG3. (Bug is not a vulnerability.) [Mark Wooding] + * Significant internal rearrangements and refactorings, to support + forthcoming key management work. [Mark Wooding and Ian Jackson] + + build system etc.: + * Completely overhaul release checklist; drop dist target. + * Remove dependency on `libfl.a'. [Mark Wooding] + * polypath.c: Fix missing include of . [Mark Wooding] + * Add a Wireshark dissector `secnet-wireshark.lua'. It is not + installed anywhere right now. [Mark Wooding] + + documentation: + * Improve documentation of capability negotiation in NOTES, secnet(8) + and magic.h. [Mark Wooding] + + -- Ian Jackson Thu, 24 Oct 2019 19:11:54 +0100 + +secnet (0.4.5) unstable; urgency=medium + + * INSTALL: Mention that rsa key generation might need ssh-keygen1. + * mobile: Fix negotiation bug with mixed old/new secnets and + simultaneous key setup attempts by each end. [Mark Wooding] + * Makefile.in: Support installation from a `VPATH' build. [Mark Wooding] + * Portability fixes for clang. [Mark Wooding] + + -- Ian Jackson Sat, 21 Sep 2019 12:04:31 +0100 + +secnet (0.4.4) unstable; urgency=medium + + Security fix: + * make-secnet-sites: Don't allow setting new VPN-level properties + when restricted. This could allow denial of service by + users with delegated authorisation. [Mark Wooding] + + Bugfixes for poor network environments: + * polypath: cope properly with asymmetric routing, by correcting + the handling of late duplicated packets etc. Protocol is now + incompatible with secnet prior to 0.3.0 when either end is mobile. + * Randomise key setup retry time. + + Other bugfixes: + * rsa and cbcmac: Fix configuration error messages. [Mark Wooding] + * Handle IPv4 addresses properly (ie, not foolishly byte-swapped), + when IPv6 is not available. [Mark Wooding] + * Better logging (and less foolish debug), especially about whether + key is set up, and about crossed key setup attempts. + * Internal refactoring and fixes. [Ian Jackson and Mark Wooding] + + Build system and portability: + * configure: rerun autogen.sh with autoconf 2.69-10 + * Avoid memset(0,0,0) wrt st->sharedsecret. (Fixes compiler warning; + in theory might cause miscompilation.) [Mark Wooding] + + Documentation: + * README.make-secnet-sites: new documentation file. [Mark Wooding] + * NOTES: Describe current allocation of capability bits. [Mark Wooding] + * NOTES: tiny fix tot protocol description. + * secnet(8): Delete wrong information about dh groups. [Mark Wooding] + + Administrivia: + * Fix erroneous GPL3+ licence notices "version d or later" (!) + * .dir-locals.el: Settings for Python code. [Mark Wooding] + + -- Ian Jackson Sun, 08 Sep 2019 22:53:14 +0100 + +secnet (0.4.3) unstable; urgency=low + + Security improvement: + * Use `mpz_powm_sec' for modexps. + + Enhancements: + * Implement comm-info and dedicated-interface-addr feature, for + benefit of hippotat. + * Implement `keepalive' site option, to try to keep link always up. + + Build etc. fixes: + * #include (fixes the build on jessie). + * Tolerate building from a git checkout, but with git not installed. + (This can happen in chroots.) + * Turn off -Wsign-compare for bison output. + * Makefile.in: Fix `check-ipaddrset' rule to get reference from + $(srcdir). (Makes out-of-tree builds work properly.) + * Release checklist fixes. + * Burn version numbers 0.4.1 and 0.4.2 due to errors in release prep. + + Bugfixes: + * When printing messages about dropping IPv6, do not print anything + about ihl. (Check the IP version field first!) + * When turning on debug, turn on verbose too. + + -- Ian Jackson Sat, 25 Nov 2017 13:36:41 +0000 + +secnet (0.4.0) unstable; urgency=low + + Debugging improvements: + * Packet-level debugging from site notes errors from transmit. + * Report when transport peers updated as a result of transmit. + + -- Ian Jackson Sat, 28 Feb 2015 15:03:00 +0000 + +secnet (0.4.0~beta2) unstable; urgency=low + + Polypath bugfixes: + * Ignore IPv6 Unique Local unicast addresses. + * Skip "tentative" IPv6 local addresses. + * Improve logging and debug output. + + Portability fix: + * Build where size_t is not compatible with int. + + Build system and packaging fixes: + * Makefile: support DESTDIR. + * debian/rules: set DESTDIR (not prefix). + * debian/rules: Support dpkg-buildflags. + * Install ipaddrset.py and secnet.8 with correct permissions. + * Fix check for and git rid of our copy. + * Use -lresolv only if inet_aton is not found otherwise. + * Use -lnsl only if inet_ntoa is not found otherwise. + * debian/rules: Provide build-arch and build-indep targets. + * debian/rules: Do not run build for *-indep (!) + * Makefile.in: Putative dual (backport and not) release build process doc. + + Copyright updates: + * Update to GPLv3. Add missing copyright notices and credits. + * Get rid of old FSF street address; use URL instead. + * Remove obsolete LICENCE.txt (which was for snprintf reimplementation). + * Remove obsolete references to Cendio (for old ipaddr.py). + + -- Ian Jackson Sun, 28 Dec 2014 17:14:10 +0000 + +secnet (0.4.0~beta1) unstable; urgency=low + + New features: + * Support transport over IPv6. (We do not yet carry IPv6 in the private + network.) IPv6 support depends on IPv6-capable adns (adns 1.5.x). + * New polypath comm, which can duplicate packets so as to send them via + multiple routes over the public network, for increased + reliability/performance (but increased cost). Currently Linux-only + but should be fairly easy to port. + * Support multiple public addresses for peers. + * Discard previously-received packets (by default). + + Logging improvements: + * Report (each first) transmission and reception success and failure. + * Log reason for DNS reolution failure. + * Log unexpected kinds of death from userv. + * Log authbind exit status as errno value (if appropriate). + + Configuration adjustments: + * Adjust default number of mobile peer addresses to store when a peer + public address is also configured. + * Make specifying peer public port optional. This avoids making special + arrangements to bind to a port for in mobile sites with no public + stable address. + + Bugfixes: + * Hackypar children will die if they get a terminating signal. + * Fix signal dispositions inherited by secnet's child processes. + * Fix off-by-one error which prevented setting transport-peers-max to 5. + + Test, build and internal improvements: + * Use conventional IP address handling library ipaddr.py. + * Provide a fuzzer for the slip decoder. + * Build system improvements. + * Many source code cleanups. + + -- Ian Jackson Sun, 26 Oct 2014 15:28:31 +0000 + +secnet (0.3.4) unstable; urgency=low + + SECURITY FIX: + * The previous security fix to buffer handling was entirely wrong. This + one is better. Thanks to Simon Tatham for the report and the patch. + + -- Ian Jackson Mon, 22 Sep 2014 16:16:11 +0100 + +secnet (0.3.3) unstable; urgency=high + + SECURITY FIXES: + * Pass correct size argument to recvfrom. This is a serious security + problem which may be exploitable from outside the VPN. + * Fix a memory leak in some error logging. + + Other related fixes: + * Two other latent bugs in buffer length handling found and fixed. + * Non-critical stylistic improvements to buffer length handling, to make + the code clearer and to assist audit. + + -- Ian Jackson Fri, 19 Sep 2014 23:50:45 +0100 + +secnet (0.3.3~beta1) unstable; urgency=low + + Installation compatibility fix: + * In make-secnet-sites, always use our own ipaddr.py even if the + incompatible modern ipaddr.py is installed (eg via python-ipaddr.deb). + (Future versions of secnet are going to need that Python module to be + installed.) + + For links involving mobile sites: + * Use source of NAK packets as hint for peer transport address. + * When initiating rekey, make use of data transport peer addresses. + + Build fix: + * Provide clean target in test-example/Makefile. + + -- Ian Jackson Fri, 19 Sep 2014 00:11:44 +0100 + +secnet (0.3.2) unstable; urgency=low + + * Release of 0.3.2. No code changes since 0.3.1~beta1. + + -- Ian Jackson Thu, 26 Jun 2014 20:27:58 +0100 + +secnet (0.3.2~beta1) unstable; urgency=low + + For links involving mobile sites: + * SECURITY: Properly update peer address array when it is full. + * Do name-resolution on peer-initiated key setup too, when we are mobile + (and other name-resolution improvements). + + Other minor improvements: + * Log peer addresses on key exchange timeout. + * When printing version (eg during startup), use value from git-describe + and thus include git commit id where applicable. + * Updates to release checklist in Makefile.in. + * Use C99 _Bool for bool_t. + + -- Ian Jackson Fri, 06 Jun 2014 01:17:54 +0100 + +secnet (0.3.1) unstable; urgency=low + + * Release of 0.3.1. No code changes since 0.3.1~beta3. + + -- Ian Jackson Thu, 15 May 2014 01:08:30 +0100 + +secnet (0.3.1~beta3) unstable; urgency=low + + * Build fixes for non-i386 architectures and gcc 4.8.2. + + -- Ian Jackson Thu, 08 May 2014 19:53:43 +0100 + +secnet (0.3.1~beta2) unstable; urgency=low + + Fix relating to new fragmentation / ICMP functionality: + * Generate ICMP packets correctly in point-to-point configurations. + + -- Ian Jackson Sat, 03 May 2014 18:58:09 +0100 + +secnet (0.3.1~beta1) unstable; urgency=low + + Security fixes (vulnerabilities are to inside attackers only): + * SECURITY: Fixes to MTU and fragmentation handling. + * SECURITY: Correctly set "unused" ICMP header field. + * SECURITY: Fix IP length check not to crash on very short packets. + + New feature: + * Make the inter-site MTU configurable, and negotiate it with the peer. + + Bugfixes etc.: + * Fix netlink SEGV on clientless netlinks (i.e. configuration error). + * Fix formatting error in p-t-p startup message. + * Do not send ICMP errors in response to unknown incoming ICMP. + * Fix formatting error in secnet.8 manpage. + * Internal code rearrangements and improvements. + + Packaging improvements: + * Updates to release checklist in Makefile.in. + * Additions to the test-example suite. + + -- Ian Jackson Thu, 01 May 2014 19:02:56 +0100 + +secnet (0.3.0) unstable; urgency=low + + * Release of 0.3.0. No code changes since 0.3.0~beta3. + * Update release checklist. + + -- Ian Jackson Sun, 01 Sep 2013 20:27:48 +0100 + +secnet (0.3.0~beta3) unstable; urgency=low + + * New upstream version. + - Stability bugfix: properly initialise site's scratch buffer. + + -- Ian Jackson Mon, 05 Aug 2013 11:54:09 +0100 + +secnet (0.3.0~beta2) unstable; urgency=low + + * New upstream version. + - SECURITY FIX: RSA public modulus and exponent buffer overflow. + - SECURITY FIX: Use constant-time memcmp for message authentication. + - SECURITY FIX: Provide a new transform, eax-serpent, to replace cbcmac. + - SECURITY FIX: No longer send NAKs for NAKs, avoiding NAK storm. + - SECURITY FIX: Fix site name checking when site name A is prefix of B. + - SECURITY FIX: Safely reject too-short IP packets. + - Better robustness for mobile sites (proper user of NAKs, new PROD msg). + - Better robustness against SLIP decoding errors. + - Fix bugs which caused routes to sometimes not be advertised. + - Protocol capability negotiation mechanism. + - Improvements and fixes to protocol and usage documentation. + - Other bugfixes and code tidying up. + + -- Ian Jackson Thu, 25 Jul 2013 18:26:01 +0100 + +secnet (0.3.0~beta1) unstable; urgency=low + + * New upstream version. + - SECURITY FIX: avoid crashes (or buffer overrun) on short packets. + - Bugfixes relating to packet loss during key exchange. + - Bugfixes relating to link up/down status. + - Bugfixes relating to logging. + - make-secnet-sites made more sophisticated to support two vpns on chiark. + - Documentation improvements. + - Build system improvements. + * Debian packaging improvements: + - Native package. + - Maintainer / uploaders. + - init script requires $remove_fs since we're in /usr. + + -- Ian Jackson Thu, 12 Jul 2012 20:18:16 +0100 + +secnet (0.2.1-1) unstable; urgency=low + + * New upstream version. (authbind endianness fix) + + -- Ian Jackson Sun, 11 Dec 2011 13:14:57 +0000 + +secnet (0.2.0-1) unstable; urgency=low + + * New upstream version. + + -- Ian Jackson Sat, 10 Dec 2011 22:44:41 +0000 + +secnet (0.1.18-1) unstable; urgency=low * New upstream version. - -- Stephen Early Sat, 27 Oct 2001 15:00:00 +0100 + -- Stephen Early Tue, 18 Mar 2008 17:45:00 +0000