aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordjm@openbsd.org <djm@openbsd.org>2026-05-13 05:11:02 +0000
committerGleb Smirnoff <glebius@FreeBSD.org>2026-05-26 19:27:45 +0000
commit77fd9e0ceabcfa99894b3e70f60013c157115ca0 (patch)
tree3db9a38837f82cd57398d7ddfd4ae1d88b751145
parentb9d16b7fd2fa6bc4b3e8364804cbdc1b76ebe8a5 (diff)
upstream: fix hard-to-reach NULL deref during pubkey auth
To hit this, the user must be using a PEM style private key with no corresponding .pub key adjacent to it. OpenBSD-Commit-ID: b7150acc5322fa33f21491834d9471fbe3d30f20 (cherry picked from commit cf6c0b3b94cdc223f1b8be1ef2d93e993af5d976) Reviewed by: emaste
-rw-r--r--crypto/openssh/sshconnect2.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/crypto/openssh/sshconnect2.c b/crypto/openssh/sshconnect2.c
index 478a9a52fd38..5a48c73edbef 100644
--- a/crypto/openssh/sshconnect2.c
+++ b/crypto/openssh/sshconnect2.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sshconnect2.c,v 1.385 2026/04/02 07:48:13 djm Exp $ */
+/* $OpenBSD: sshconnect2.c,v 1.386 2026/05/13 05:11:02 djm Exp $ */
/*
* Copyright (c) 2000 Markus Friedl. All rights reserved.
* Copyright (c) 2008 Damien Miller. All rights reserved.
@@ -1277,7 +1277,7 @@ identity_sign(struct identity *id, u_char **sigp, size_t *lenp,
* PKCS#11 tokens may not support all signature algorithms,
* so check what we get back.
*/
- if ((id->key->flags & SSHKEY_FLAG_EXT) != 0 &&
+ if (id->key != NULL && (id->key->flags & SSHKEY_FLAG_EXT) != 0 &&
(r = sshkey_check_sigtype(*sigp, *lenp, alg)) != 0) {
debug_fr(r, "sshkey_check_sigtype");
goto out;