untrusted comment: signature from openbsd 6.0 base secret key RWSho3oKSqgLQ4OxjFuyRvq5X47YqvxsDviyNWsmDqtG+bOxWYJsV6CDVnisQIPcMl/nQkIUX93yT5e1kKdOkDVIRBfgO++CcQM= OpenBSD 6.0 errata 19, Mar 9, 2017: Prevent integer overflow in PF when calculating the adaptive timeout, causing spuriously expired states under pressure. Alternatively, disable adaptive timeouts with set timeout { adaptive.start 0, adaptive.end 0 } Apply by doing: signify -Vep /etc/signify/openbsd-60-base.pub -x 019_pf.patch.sig \ -m - | (cd /usr/src && patch -p0) And then rebuild and install a new kernel: cd /usr/src/sys/arch/`machine`/conf KK=`sysctl -n kern.osversion | cut -d# -f1` config $KK cd ../compile/$KK make make install Index: sys/net/pf.c =================================================================== RCS file: /cvs/src/sys/net/pf.c,v retrieving revision 1.979 diff -u -p -r1.979 pf.c --- sys/net/pf.c 18 Jul 2016 13:17:44 -0000 1.979 +++ sys/net/pf.c 9 Mar 2017 14:58:15 -0000 @@ -1194,7 +1194,7 @@ pf_purge_thread(void *v) int32_t pf_state_expires(const struct pf_state *state) { - int32_t timeout; + u_int32_t timeout; u_int32_t start; u_int32_t end; u_int32_t states; @@ -1223,7 +1223,7 @@ pf_state_expires(const struct pf_state * if (states >= end) return (0); - timeout = timeout * (end - states) / (end - start); + timeout = (u_int64_t)timeout * (end - states) / (end - start); } return (state->expire + timeout);