Skip to content

Commit a83b774

Browse files
authored
Release/965.0.0 (MetaMask#8728)
## Explanation **Current state** `PasskeyController` verifies registration and authentication with `requireUserVerification: true`, so the server expects the WebAuthn **user verification (UV)** flag on assertions. For enrollment-time `get()` options, `generatePostRegistrationAuthenticationOptions` already used `userVerification: 'required'`, but **`generateAuthenticationOptions`** (unlock / enrolled passkey) still used `userVerification: 'preferred'`. With `'preferred'`, the client may allow authenticators to skip UV, producing assertions **without** UV that the server then rejects—wasted ceremonies and confusing failures. **Solution** Set `userVerification: 'required'` on the object returned by `generateAuthenticationOptions`, matching the post-registration path and server verification. Add a unit test that enrolled flows emit `'required'`. Document the fix in `packages/passkey-controller/CHANGELOG.md` under the appropriate **Unreleased** or release section. **Not obvious** This is a client/server **hint alignment** fix, not a new API. Behavior may be stricter at `navigator.credentials.get()` (UV required), which matches what verification already enforced. **Scope** Changes are limited to `@metamask/passkey-controller` (implementation, tests, changelog). No dependency upgrades. ## References - Related: [MetaMask#8696](MetaMask#8696) *(replace or extend with your issue/PR links)* ## Checklist - [x] I've updated the test suite for new or updated code as appropriate - [ ] I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate *(optional: JSDoc on `generateAuthenticationOptions` if you want to mention UV)* - [x] I've communicated my changes to consumers by [updating changelogs for packages I've changed](https://github.com/MetaMask/core/tree/main/docs/processes/updating-changelogs.md) - [ ] I've introduced [breaking changes](https://github.com/MetaMask/core/tree/main/docs/processes/breaking-changes.md) in this PR and have prepared draft pull requests for clients and consumer packages to resolve them *(N/A—patch-level behavior fix, no breaking API changes)* <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Low risk release bookkeeping only (version bumps and changelog updates) with no functional code changes in this diff. > > **Overview** > Updates release metadata by bumping the root monorepo version to `965.0.0` and `@metamask/passkey-controller` to `2.0.1`. > > Adds a `passkey-controller` `2.0.1` changelog entry documenting stricter WebAuthn user verification requirements and the `generateAuthenticationOptions` alignment to `userVerification: 'required'`, and updates the changelog compare links accordingly. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit 8891f9b. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY -->
1 parent 8581c16 commit a83b774

3 files changed

Lines changed: 6 additions & 3 deletions

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@metamask/core-monorepo",
3-
"version": "964.0.0",
3+
"version": "965.0.0",
44
"private": true,
55
"description": "Monorepo for packages shared between MetaMask clients",
66
"repository": {

packages/passkey-controller/CHANGELOG.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [2.0.1]
11+
1012
### Changed
1113

1214
- `PasskeyController` verifies registration and authentication responses with `requireUserVerification: true`, so the WebAuthn user verification (UV) flag must be set; assertions with user presence only no longer pass verification ([#8696](https://github.com/MetaMask/core/pull/8696))
@@ -51,6 +53,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
5153
- Registration verification requires the credential `id`/`rawId` to match the credential id in authenticator data; vault wrapping key derivation uses that verified credential id so enrollment keys align with the stored credential.
5254
- Registration options request attestation conveyance `'none'` so clients are not asked for direct attestation formats the verifier does not implement (`none` and self-attested `packed` only).
5355

54-
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/passkey-controller@2.0.0...HEAD
56+
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/passkey-controller@2.0.1...HEAD
57+
[2.0.1]: https://github.com/MetaMask/core/compare/@metamask/passkey-controller@2.0.0...@metamask/passkey-controller@2.0.1
5558
[2.0.0]: https://github.com/MetaMask/core/compare/@metamask/passkey-controller@1.0.0...@metamask/passkey-controller@2.0.0
5659
[1.0.0]: https://github.com/MetaMask/core/releases/tag/@metamask/passkey-controller@1.0.0

packages/passkey-controller/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@metamask/passkey-controller",
3-
"version": "2.0.0",
3+
"version": "2.0.1",
44
"description": "Controller and utilities for passkey-based wallet unlock",
55
"keywords": [
66
"Ethereum",

0 commit comments

Comments
 (0)