untrusted comment: verify with openbsd-73-base.pub
RWQS90bYzZ4XFqRS7ZmbHbOOewbjLO6Q9zv7izN7RsdOMkWL7etY7Q6aIBF0InbMluKvTTHXnq76N1mleN5tm/9w10JiXlh/7ww=

OpenBSD 7.3 errata 019, 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-73-base.pub -x 019_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.284 uipc_mbuf.c
--- sys/kern/uipc_mbuf.c	14 Aug 2022 01:58:28 -0000	1.284
+++ sys/kern/uipc_mbuf.c	20 Oct 2023 16:36:14 -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;