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: * Correctly use the verified copy of the peer remote capabilities from MSG3. (Bug is not a vulnerability.) [Mark Wooding] 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] * Significant internal rearrangements and refactorings, to support forthcoming key management work. [Mark Wooding and Ian Jackson] documentation: * Improve documentation of capability negotiation in NOTES, secnet(8) and magic.h. [Mark Wooding] -- 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 Tue, 18 Mar 2008 17:45:00 +0000