untrusted comment: verify with openbsd-72-base.pub
RWQTKNnK3CZZ8CDyqJo+jpqKqDIFbjKVD6cH6Kd600+od2nuvhIPM43Quc9Bi3yXlgs0abIh3yqeIZKtr4RKcAbHSb779jG3fA8=

OpenBSD 7.2 errata 028, July 12, 2023:

Incorrect length handling of path attributes in bgpd(8) can lead to a
session reset.

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

And then rebuild and install bgpd(8):
   cd /usr/src/usr.sbin/bgpd
   make obj
   make
   make install

Index: usr.sbin/bgpd/rde.c
===================================================================
RCS file: /cvs/src/usr.sbin/bgpd/rde.c,v
diff -u -p -u -r1.578.2.1 rde.c
--- usr.sbin/bgpd/rde.c 21 Mar 2023 21:10:06 -0000      1.578.2.1
+++ usr.sbin/bgpd/rde.c 10 Jul 2023 12:45:38 -0000
@@ -1891,7 +1891,7 @@ bad_flags:
                       goto bad_flags;
               if (peer->conf.ebgp) {
                       /* ignore local-pref attr on non ibgp peers */
-                       plen += 4;
+                       plen += attr_len;
                       break;
               }
               if (a->flags & F_ATTR_LOCALPREF)
@@ -1915,7 +1915,7 @@ bad_flags:
                        * RFC 7606
                        */
                       log_peer_warnx(&peer->conf, "bad AGGREGATOR, "
-                           "partial attribute ignored");
+                           "attribute discarded");
                       plen += attr_len;
                       break;
               }
@@ -1963,7 +1963,6 @@ bad_flags:
                       a->flags |= F_ATTR_PARSE_ERR;
                       log_peer_warnx(&peer->conf, "bad COMMUNITIES, "
                           "path invalidated and prefix withdrawn");
-                       break;
               }
               plen += attr_len;
               break;
@@ -1980,7 +1979,6 @@ bad_flags:
                       a->flags |= F_ATTR_PARSE_ERR;
                       log_peer_warnx(&peer->conf, "bad LARGE COMMUNITIES, "
                           "path invalidated and prefix withdrawn");
-                       break;
               }
               plen += attr_len;
               break;
@@ -1997,7 +1995,6 @@ bad_flags:
                       a->flags |= F_ATTR_PARSE_ERR;
                       log_peer_warnx(&peer->conf, "bad EXT_COMMUNITIES, "
                           "path invalidated and prefix withdrawn");
-                       break;
               }
               plen += attr_len;
               break;
@@ -2044,10 +2041,8 @@ bad_flags:
       case ATTR_AS4_AGGREGATOR:
               if (attr_len != 8) {
                       /* see ATTR_AGGREGATOR ... */
-                       if ((flags & ATTR_PARTIAL) == 0)
-                               goto bad_len;
                       log_peer_warnx(&peer->conf, "bad AS4_AGGREGATOR, "
-                           "partial attribute ignored");
+                           "attribute discarded");
                       plen += attr_len;
                       break;
               }
@@ -2083,6 +2078,7 @@ bad_flags:
                       a->flags |= F_ATTR_PARSE_ERR;
                       log_peer_warnx(&peer->conf, "bad OTC, "
                           "path invalidated and prefix withdrawn");
+                       plen += attr_len;
                       break;
               }
               if (!CHECK_FLAGS(flags, ATTR_OPTIONAL|ATTR_TRANSITIVE,