untrusted comment: verify with openbsd-63-base.pub
RWRxzbLwAd76ZTrrTD+k7XbjwiwSPll/Qm+hmSWoNQAclkn3WHM3qjEO6i0K0Ib3XROxbfT91n8GBHW14SLnLJxJL59CpD6MzQw=

OpenBSD 6.3 errata 030, March 1, 2019:

Fragmented IPv6 packets may be erroneously passed by pf or lead to a crash.

Apply by doing:
   signify -Vep /etc/signify/openbsd-63-base.pub -x 030_pf6frag.patch.sig \
       -m - | (cd /usr/src && patch -p0)

And then rebuild and install a new kernel:
   KK=`sysctl -n kern.osversion | cut -d# -f1`
   cd /usr/src/sys/arch/`machine`/compile/$KK
   make obj
   make config
   make
   make install

Index: sys/net/pf_norm.c
===================================================================
RCS file: /cvs/src/sys/net/pf_norm.c,v
retrieving revision 1.209
diff -u -p -r1.209 pf_norm.c
--- sys/net/pf_norm.c   6 Feb 2018 09:16:11 -0000       1.209
+++ sys/net/pf_norm.c   27 Feb 2019 16:05:32 -0000
@@ -723,10 +723,10 @@ pf_reassemble6(struct mbuf **m0, struct
       }

       /* We have all the data */
-       extoff = frent->fe_extoff;
-       maxlen = frag->fr_maxlen;
       frent = TAILQ_FIRST(&frag->fr_queue);
       KASSERT(frent != NULL);
+       extoff = frent->fe_extoff;
+       maxlen = frag->fr_maxlen;
       total = TAILQ_LAST(&frag->fr_queue, pf_fragq)->fe_off +
           TAILQ_LAST(&frag->fr_queue, pf_fragq)->fe_len;
       hdrlen = frent->fe_hdrlen - sizeof(struct ip6_frag);