Call for testing: OpenSSH 7.7

Damien Miller djm at mindrot.org
Sat Mar 24 10:06:33 AEDT 2018


On Fri, 23 Mar 2018, Peter Moody wrote:

> > Live testing on suitable non-production systems is also appreciated.
> > Please send reports of success or failure to
> > openssh-unix-dev at mindrot.org. Security bugs should be reported
> > directly to openssh at openssh.com.
> 
> I've got one weird case.
> 
> doing pubkey auth with certificates, if I have both the key and cert
> loaded in my agent, I see:
> 
> $ env SSH_AUTH_SOCK=/tmp/ssh.sock2 ./ssh-add -l
> 256 SHA256:byQi9IUy4F9Osg/977BQ/zyOHG2Yvlz0nSqpADvlZpQ (ED25519)
> 256 SHA256:byQi9IUy4F9Osg/977BQ/zyOHG2Yvlz0nSqpADvlZpQ (ED25519-CERT)
> 
> $ env SSH_AUTH_SOCK=/tmp/ssh.sock2 ./ssh host
> 
> pmoody at host:~$
> 
> but if I only have the certificate, I see:
> 
> $ env SSH_AUTH_SOCK=/tmp/ssh.sock2 ./ssh-add -l
> 256 SHA256:byQi9IUy4F9Osg/977BQ/zyOHG2Yvlz0nSqpADvlZpQ (ED25519-CERT)
> 
> $ env SSH_AUTH_SOCK=/tmp/ssh.sock2 ./ssh host
> warning: agent returned different signature type ssh-ed25519 (expected
> ssh-ed25519-cert-v01 at openssh.com)

Looks like a false positive from the warning code I added recently.

Please try this:

diff --git a/sshconnect2.c b/sshconnect2.c
index bf0b729..49eb205 100644
--- a/sshconnect2.c
+++ b/sshconnect2.c
@@ -1006,6 +1006,8 @@ check_sigtype(const struct sshkey *key, const u_char *sig, size_t len)
 	char *sigtype = NULL;
 	const char *alg = key_sign_encode(key);
 
+	if (sshkey_is_cert(key))
+		return 0;
 	if ((r = sshkey_sigtype(sig, len, &sigtype)) != 0)
 		return r;
 	if (strcmp(sigtype, alg) != 0) {


More information about the openssh-unix-dev mailing list