Index: openssh-8.7p1/ssh-ecdsa-sk.c
===================================================================
--- openssh-8.7p1.orig/ssh-ecdsa-sk.c
+++ openssh-8.7p1/ssh-ecdsa-sk.c
@@ -191,14 +191,17 @@ ssh_ecdsa_sk_verify(const struct sshkey
ret = SSH_ERR_INVALID_FORMAT;
goto out;
}
- if (is_webauthn) {
- if (sshbuf_get_cstring(b, &webauthn_origin, NULL) != 0 ||
- sshbuf_froms(b, &webauthn_wrapper) != 0 ||
- sshbuf_froms(b, &webauthn_exts) != 0) {
- ret = SSH_ERR_INVALID_FORMAT;
- goto out;
- }
- }
+ if (sshbuf_get_cstring(b, &webauthn_origin, NULL) != 0 ||
+ sshbuf_froms(b, &webauthn_wrapper) != 0 ||
+ sshbuf_froms(b, &webauthn_exts) != 0) {
+ if (is_webauthn) {
+ ret = SSH_ERR_INVALID_FORMAT;
+ goto out;
+ }
+ } else {
+ // webauthn signature detected based on structure
+ is_webauthn = 1;
+ }
if (sshbuf_len(b) != 0) {
ret = SSH_ERR_UNEXPECTED_TRAILING_DATA;
goto out;