Bad ESP/AH packets could cause a crash under certain conditions. Apply by doing: cd /usr/src patch -p0 < 024_ipsec.patch And then rebuild your kernel. Index: sys/netinet/ipsec_input.c =================================================================== RCS file: /cvs/src/sys/netinet/ipsec_input.c,v retrieving revision 1.23 diff -u -r1.23 ipsec_input.c --- sys/netinet/ipsec_input.c 2000/03/29 10:15:22 1.23 +++ sys/netinet/ipsec_input.c 2000/09/18 16:39:30 @@ -1,4 +1,4 @@ -/* $OpenBSD: ipsec_input.c,v 1.23 2000/03/29 10:15:22 angelos Exp $ */ +/* $OpenBSD: ipsec_input.c,v 1.31 2000/09/17 19:52:24 angelos Exp $ */ /* * The authors of this code are John Ioannidis (ji@tla.org), @@ -130,6 +130,13 @@ return EOPNOTSUPP; } + if (m->m_pkthdr.len - skip < 2 * sizeof(u_int32_t)) + { + m_freem(m); + IPSEC_ISTAT(espstat.esps_hdrops, ahstat.ahs_hdrops); + return EINVAL; + } + /* Retrieve the SPI from the relevant IPsec header */ if (sproto == IPPROTO_ESP) m_copydata(m, skip, sizeof(u_int32_t), (caddr_t) &spi); @@ -287,6 +294,7 @@ ip = mtod(m, struct ip *); ip->ip_len = htons(m->m_pkthdr.len); HTONS(ip->ip_id); + HTONS(ip->ip_off); ip->ip_sum = 0; ip->ip_sum = in_cksum(m, ip->ip_hl << 2); prot = ip->ip_p;