RESOLVED FIXED302813
WebAuthn auth attempts with ["nfc"] in allowCredentials hard-locks macOS Safari 26.1
https://bugs.webkit.org/show_bug.cgi?id=302813
Summary WebAuthn auth attempts with ["nfc"] in allowCredentials hard-locks macOS Safa...
Matthew Miller (Cisco)
Reported 2025-11-19 11:49:03 PST
Created attachment 477442 [details] Repro HTML document, to be hosted at http://localhost(:whatever) ## Summary Safari will hardlock when a WebAuthn authentication ceremony is triggered with a single allowCredentials entry containing `["nfc"]` for transports. You cannot cancel out of the platform modal that prompts you to use a security key. Additionally, triggering a similar authentication ceremony with a single allowCredentials entry containing `["nfc", "usb"]` will allow the platform modal to be cancelled out of, but will never allow the corresponding security key to used to complete the auth. `allowCredentials` must be empty for impacted security keys to become usable for auth. ## Requirements - macOS 26.1 - A USB NFC reader - An NFC-capable security key, like a YubiKey Security Key or a YubiKey 5 ## Repro Steps 1. Download the attached index.html 2. Host the HTML file at http://localhost(:whatever) 3. Navigate to http://localhost(:whatever) 4. Open Safari dev console 5. Complete Step 1 to register a passkey 6. Attempt Step 2a to call WebAuthn's `.get()` with `allowCredentials` containing a single entry with `transports: ["nfc"]` 7. Force-quit out of Safari because you cannot cancel the platform modal (see step_2a.png for what is shown after making the `.get()` call) 8. Go back to http://localhost(:whatever) and re-open the Safari dev console 9. Complete Step 1 again to register another passkey 10. Attempt Step 2b to call WebAuthn's `.get()` with `allowCredentials` containing a single entry with `transports: ["nfc", "usb"]` 11. Observe that the just-registered security key cannot be used to trigger auth. 12. Cancel out of the platform modal 13. Attempt Step 2c to call WebAuthn's `.get()` with an empty `allowCredentials` array 14. Use the registered security key to return an authentication response as expected ## Expected Behavior Safari supports use of NFC security keys when allowCredentials is populated.
Attachments
Repro HTML document, to be hosted at http://localhost(:whatever) (4.66 KB, text/html)
2025-11-19 11:49 PST, Matthew Miller (Cisco)
no flags
A screenshot of what Safari 26.1 shows when you get stuck on Step 2a or Step 2b (168.08 KB, image/png)
2025-11-19 11:49 PST, Matthew Miller (Cisco)
no flags
Matthew Miller (Cisco)
Comment 1 2025-11-19 11:49:40 PST
Created attachment 477443 [details] A screenshot of what Safari 26.1 shows when you get stuck on Step 2a or Step 2b
Radar WebKit Bug Importer
Comment 2 2025-11-26 11:49:10 PST
pascoe@apple.com
Comment 3 2025-12-16 11:11:33 PST
EWS
Comment 4 2025-12-17 09:40:09 PST
Committed 304605@main (24cc11a36603): <https://commits.webkit.org/304605@main> Reviewed commits have been landed. Closing PR #55490 and removing active labels.
Note You need to log in before you can comment on or make changes to this bug.