-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 NetBSD Security Advisory 2018-008 ================================= Topic: Several vulnerabilities in NPF Version: NetBSD-current: source prior to Thu, Mar 22nd 2018 NetBSD 7.1 - 7.1.2: affected NetBSD 7.0 - 7.0.2: affected NetBSD 6.1 - 6.1.5: affected NetBSD 6.0 - 6.0.6: affected Severity: Remote Rule Bypass, Remote Memory Corruption Fixed: NetBSD-current: Thu, Mar 22nd 2018 NetBSD-7-1 branch: Mon, May 14th 2018 NetBSD-7-0 branch: Mon, May 14th 2018 NetBSD-7 branch: Mon, May 14th 2018 NetBSD-6-1 branch: Thu, May 17th 2018 NetBSD-6-0 branch: n/a NetBSD-6 branch: Thu, May 17th 2018 Teeny versions released later than the fix date will contain the fix. Please note that NetBSD releases prior to 6.0 are no longer supported. It is recommended that all users upgrade to a supported release. Abstract ======== Several vulnerabilities were discovered in NPF: 1) Integer overflow when parsing IPv6 headers. 2) Use-after-free when handling ICMP packets. Issue 2 will not be fixed in the netbsd-6-0 branch. Technical Details ================= 1) An integer overflow could be triggered when NPF was parsing IPv6 options of a packet. This overflow could result in a header length that was smaller than expected, which could allow an incoming packet to bypass L4 rules. 2) A use-after-free could occur when NPF was parsing an ICMP packet. This could result in a rule bypass, a panic, or unexpected behavior. Solutions and Workarounds ========================= For all NetBSD versions, you need to obtain fixed kernel sources, rebuild and install the new kernel, and reboot the system. The fixed source may be obtained from the NetBSD CVS repository. The following instructions briefly summarize how to upgrade your kernel. In these instructions, replace: ARCH with your architecture (from uname -m), KERNCONF with the name of your kernel configuration file and VERSION with the file version below File versions containing the fixes: FILE HEAD netbsd-7 netbsd-7-0 netbsd-7-1 ---- ---- -------- ---------- ---------- src/sys/net/npf/npf.h 1.55 1.47.2.1 1.47.6.1 1.47.12.1 src/sys/net/npf/npf_inet.c 1.45 1.32.2.3 1.32.6.1 1.32.10.1 src/sys/net/npf/npf_alg_icmp.c 1.29 1.23.2.1 1.23.6.1 1.23.12.1 FILE netbsd-6 netbsd-6-0 netbsd-6-1 ---- -------- ---------- ---------- src/sys/net/npf/npf.h 1.14.2.13 1.14.2.6.4.2 1.14.2.12.2.1 src/sys/net/npf/npf_inet.c 1.10.4.11 n/a 1.10.4.9.2.2 src/sys/net/npf/npf_alg_icmp.c 1.8.4.8 n/a 1.8.4.7.2.1 To update from CVS, re-build, and re-install the kernel: # cd src # cvs update -d -P -r VERSION sys/net/npf/npf.h # cvs update -d -P -r VERSION sys/net/npf/npf_inet.c # cvs update -d -P -r VERSION sys/net/npf/npf_alg_icmp.c # ./build.sh kernel=KERNCONF # mv /netbsd /netbsd.old # cp sys/arch/ARCH/compile/obj/KERNCONF/netbsd /netbsd # shutdown -r now For more information on how to do this, see: http://www.NetBSD.org/guide/en/chap-kernel.html Thanks To ========= Maxime Villard for finding and fixing these issues. Revision History ================ 2018-05-24 Initial release More Information ================ Advisories may be updated as new information becomes available. The most recent version of this advisory (PGP signed) can be found at http://ftp.NetBSD.org/pub/NetBSD/security/advisories/NetBSD-SA2018-008.txt.asc Information about NetBSD and NetBSD security can be found at http://www.NetBSD.org/ and http://www.NetBSD.org/Security/ . Copyright 2018, The NetBSD Foundation, Inc. All Rights Reserved. Redistribution permitted only in full, unmodified form. -----BEGIN PGP SIGNATURE----- iQIcBAEBAgAGBQJbBxHeAAoJEAZJc6xMSnBuCE4QAITWmvcJpv8dANlmBQWElzs7 XRah2CrpujfXeSVuocay80QpTwQTn6Hm4ZAlkYZBlwBVqepPjpwcdb5LmWHzwFgK 33oN/YO7tu/9HFgR9qHHyAnEPT3v7QHxomHgPGPDkAksMOJEj7Mjs0oZQaSiCeoU DF2VG+CNesIajJIz5WJDk+EE0G2YFOvkXYKWT26Ei1qUqeEYgfkK5E+ZGxE0rnE6 IVqubBIoNTmKvnsrv8uGKiQaau5iC2cztsZuCYsDwydYSNxXh5f/c9bfjpghaBw6 G8+3I9P2XGiNnP9wiyffpryktV1aUqtXFOeFjXKdPqmPscXnTWVtGYhPzyluG5Cv 4Led6qGvAzeB+TVHgjFc6pQVPkIyHF3lU4fQmfc3HZ1rsK7kEcGKVYwqCCnH7+jR NABVdzFmEqp4BDm+6JhPQvmi4iB8tTXXjIUWPQSGjkBBo0dQTC+Fom4m8zVF+/fe OqjslnTCw1fDO7byk19gsFXqR1fVOQ0qiVP55e3HKTyq1Y5gNpANJn8im5GOaBto AbGbTfwq/w6nb6nVi2c9J14HOf36FC+ynFltF7IH/F5lFowwQORs3RSLmXgSTGjk cFBpKt4IwfoYdPFBgBxkgoH+WNBmn7FoZWCa8b8mIEONyQNPH7+DiKzkcioj3Ttr aEG7z/h7Wbhd1/UxDTwm =40SA -----END PGP SIGNATURE-----