untrusted comment: verify with openbsd-72-base.pub
RWQTKNnK3CZZ8BpZmfrQRq2F0DAhW6dxBSUKYtuqw3xcqBllvEsr7g3ZDLgB0T2zx/+fb509DjF9XHjo/kCSMuoKHqcNryx14wo=

OpenBSD 7.2 errata 001, October 24, 2022:

Custom verification callbacks could cause the X.509 verifier to fail
to store errors resulting from leaf certificate verification.

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

And then rebuild and install libcrypto and unwind:
   cd /usr/src/lib/libcrypto
   make obj
   make includes
   make
   make install

Index: lib/libcrypto/x509/x509_verify.c
===================================================================
RCS file: /cvs/src/lib/libcrypto/x509/x509_verify.c,v
retrieving revision 1.60
diff -u -p -r1.60 x509_verify.c
--- lib/libcrypto/x509/x509_verify.c    5 Aug 2022 14:46:52 -0000       1.60
+++ lib/libcrypto/x509/x509_verify.c    18 Oct 2022 08:32:25 -0000
@@ -494,6 +494,15 @@ x509_verify_ctx_add_chain(struct x509_ve
       if (!x509_verify_ctx_validate_legacy_chain(ctx, chain, depth))
               return 0;

+       /* Verify the leaf certificate and store any resulting error. */
+       if (!x509_verify_cert_valid(ctx, leaf, NULL))
+               return 0;
+       if (!x509_verify_cert_hostname(ctx, leaf, name))
+               return 0;
+       if (ctx->error_depth == 0 &&
+           ctx->error != X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY)
+               chain->cert_errors[0] = ctx->error;
+
       /*
        * In the non-legacy code, extensions and purpose are dealt
        * with as the chain is built.
@@ -508,16 +517,11 @@ x509_verify_ctx_add_chain(struct x509_ve
               return x509_verify_cert_error(ctx, last, depth,
                   X509_V_ERR_OUT_OF_MEM, 0);
       }
-
-       if (!x509_verify_cert_valid(ctx, leaf, NULL))
-               return 0;
-
-       if (!x509_verify_cert_hostname(ctx, leaf, name))
-               return 0;
-
       ctx->chains_count++;
+
       ctx->error = X509_V_OK;
       ctx->error_depth = depth;
+
       return 1;
}