Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RelyingParty.finishAssertion() fails when called with assertion result from Safari v15.4 #194

Closed
slunker opened this issue May 5, 2022 · 1 comment

Comments

@slunker
Copy link

slunker commented May 5, 2022

The call to RelyingParty.finishAssertion() with assertion result that came from Safari v15.4 when authenticating with a Yubico key fails with java.lang.IllegalArgumentException: User handle ByteArray() does not own credential ByteArray(<bytes>)

The problem seems to be that a value of the userHandle field is an empty string in the assertion result json in safari 15.4 instead of null.

This works in other browsers or in previous versions of safari. It also works when authenticating with TouchID. It was tried with these versions of webauthn server: 1.12.2, 1.12.4 and 2.0.0 .

@emlun
Copy link
Member

emlun commented May 7, 2022

Hi! Yes, that sounds like a bug in Safari. While the PublicKeyCredentialCreationOptions.user.id option no longer allows an empty user handle as an argument, it is still valid for authenticators to return an empty AuthenticatorAssertionResponse.userHandle, and that is distinct from a null value. There seems to already be a ticket for this in Safari's bug tracker: https://bugs.webkit.org/show_bug.cgi?id=239737

See also: w3c/webauthn#1722

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants