Skip to content

Migration from CredentialV3 to CredentialV5 seems to be impossible when the Passkey was backed up in the past #510

Description

@zUnixorn

I did this

I expected the following

When allow_backup_eligible_upgrade is allowed finish_passkey_authentication() should return an AuthenticationResult to make it possible to actually upgrade backup_eligible

What actually happened

finish_passkey_authentication() returns the CredentialMayNotBeHardwareBound error, which makes it seemingly impossible to migrate those credentials.

Version (and git commit)

webauthn-rs 0.5.2 (tag 0.5.2)

Operating System / Version

Linux 6.15.9-zen1-1-zen

Any other comments

Is this the intended behavior or am I missing something here? Or is there some other way to update the credential before calling finish_passkey_authentication()?

Since the CredentialV3 didn't save the value of backup_eligible when it was originally registered, it is set to false in the conversion to CredentialV5. When it could have been true for that specific Passkey, when it was setup up originally.

This causes backup_state to be true, because the key had backup_eligible set to true internally and it got backed up. But the backup_eligible value on the server-side doesn't match since it never existed before the migration to CredentialV5 and is just assumed to be false

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions