Prevent security failure due to bad APP_ID (#18678)
WebAuthn may cause a security exception if the provided APP_ID is not allowed for the current origin. Therefore we should reattempt authentication without the appid extension. Also we should allow [u2f] as-well as [U2F] sections. Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
This commit is contained in:
parent
4160aff86e
commit
2f76608221
2 changed files with 18 additions and 2 deletions
|
@ -24,6 +24,19 @@ export function initUserAuthWebAuthn() {
|
|||
.then((credential) => {
|
||||
verifyAssertion(credential);
|
||||
}).catch((err) => {
|
||||
// Try again... without the appid
|
||||
if (makeAssertionOptions.publicKey.extensions && makeAssertionOptions.publicKey.extensions.appid) {
|
||||
delete makeAssertionOptions.publicKey.extensions['appid'];
|
||||
navigator.credentials.get({
|
||||
publicKey: makeAssertionOptions.publicKey
|
||||
})
|
||||
.then((credential) => {
|
||||
verifyAssertion(credential);
|
||||
}).catch((err) => {
|
||||
webAuthnError('general', err.message);
|
||||
});
|
||||
return;
|
||||
}
|
||||
webAuthnError('general', err.message);
|
||||
});
|
||||
}).fail(() => {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue