untrusted comment: verify with openbsd-74-base.pub
RWRoyQmAD08ajRQUY69ARI8f1N+GYYkl+71UfmxvhcJ1LIkDymO74L1iz9qh1v+SZPqe1wm2eJ6SQyUj2eQ9MsUpndGEfRPJ6wI=

OpenBSD 7.4 errata 002, October 25, 2023:

A network buffer that had to be split at certain length could crash
the kernel.

Apply by doing:
   signify -Vep /etc/signify/openbsd-74-base.pub -x 002_msplit.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/kern/uipc_mbuf.c
===================================================================
RCS file: /cvs/src/sys/kern/uipc_mbuf.c,v
diff -u -p -r1.287 uipc_mbuf.c
--- sys/kern/uipc_mbuf.c        23 Jun 2023 04:36:49 -0000      1.287
+++ sys/kern/uipc_mbuf.c        20 Oct 2023 16:38:19 -0000
@@ -1080,9 +1080,7 @@ m_split(struct mbuf *m0, int len0, int w
                       n->m_len = 0;
                       return (n);
               }
-               if (m->m_flags & M_EXT)
-                       goto extpacket;
-               if (remain > MHLEN) {
+               if ((m->m_flags & M_EXT) == 0 && remain > MHLEN) {
                       /* m can't be the lead packet */
                       m_align(n, 0);
                       n->m_next = m_split(m, len, wait);
@@ -1094,8 +1092,7 @@ m_split(struct mbuf *m0, int len0, int w
                               n->m_len = 0;
                               return (n);
                       }
-               } else
-                       m_align(n, remain);
+               }
       } else if (remain == 0) {
               n = m->m_next;
               m->m_next = NULL;
@@ -1104,14 +1101,13 @@ m_split(struct mbuf *m0, int len0, int w
               MGET(n, wait, m->m_type);
               if (n == NULL)
                       return (NULL);
-               m_align(n, remain);
       }
-extpacket:
       if (m->m_flags & M_EXT) {
               n->m_ext = m->m_ext;
               MCLADDREFERENCE(m, n);
               n->m_data = m->m_data + len;
       } else {
+               m_align(n, remain);
               memcpy(mtod(n, caddr_t), mtod(m, caddr_t) + len, remain);
       }
       n->m_len = remain;