Firefox virtual passkey diagnostics 2026 10 10 - kmosoti/FabricO11y GitHub Wiki
Firefox 157 virtual passkey diagnostics, 2026-10-10
These finite diagnostics used the exact UI09 candidate: Debian SHA-256
7047c67defdcbee29b5ba9372debc8906bf8b8af65ef577275a27aabc4bc7c74,
packaged console assets from console-live-build-09, Firefox 157.0 and
geckodriver 0.37.1. Their private frozen harnesses and complete commands remain
in each browser receipt. All executions used python3 -B tools/resource_group.py -- taskset -c 2,3 python3 -B HARNESS ..., verified a 4,000,000,000-byte/no-swap
outer bound, and retained logs and screenshots after removing owned fixtures
and process groups. They overlapped R2 worker cores 2–3; the measured R2 server
remained on cores 0–1. They do not fill standalone browser acceptance.
The first discriminator disabled the fixture USB backend while keeping the
software manager enabled, with actual preference readback. Protected owner
registration and two passkey enrollments succeeded; a later fresh login failed.
Receipt results/console-live-firefox-usb-selection-04/browser.json, unit
c259647cbead4689b6533d394f75a9be: exit 1, 43.672 seconds, 874.1 MiB peak,
no swap, cleanup confirmed. Earlier USB-enabled 60-second registration failures
remain failed. The pinned Firefox dispatch chooses USB before its software
manager, which explains why the virtual token was previously unused.
The observation-only retry preserved CTAP 2.0, required UV and the same corrected
transport selection. Its failed fresh-login request contained two public
credential IDs, no transport hints and RP localhost. The active virtual store
contained exactly one matching ID under that RP; its signature counter was 2.
Receipt results/console-live-firefox-allowlist-05/browser.json, unit
f2f2fd6c770b457bbc10b8f3beb9e66a: exit 1, 103 completed finite assertions,
46.448 seconds, 884 MiB peak, no swap, cleanup confirmed. The minimal public
condition and actual receipt hashes are preserved in
evidence/firefox-allowlist-diagnostic-05/counterexample.json; no private key
material is exported.
Firefox's exact FIREFOX_157_0_RELEASE test token source
deliberately omits the CTAP 2.0 credential ID when the filtered allowlist has one
entry. The bridge
restores the ID only when the original allowlist had one entry. Our original
two-entry request and one matched virtual credential exercise that discrepancy.
The USB dispatch source
separately establishes manager precedence.
Changing only the virtual protocol to CTAP 2.1 completed all 127 finite
assertions, including fresh owner login, narrowed delegation, cross-tab clearing,
logout, step-up and invitation behavior. Required UV and all original assertions
remained. Receipt results/console-live-firefox-ctap21-selection-06/browser.json,
unit ffd8e10e1f504796bc8a7cfbd63e6b72: exit 0, 29.548 seconds, 808.7 MiB peak,
no swap, cleanup confirmed. This discriminates the virtual CTAP 2.0 omission
hypothesis; it does not establish a Fabric or physical-authenticator defect.
Fixture corrections are commits 7c48999 and 63a63ce; prospective standalone
Firefox CTAP 2.1 registration is the separate policy commit d84486a.
Standalone acceptance, physical authenticators and physical Android/iOS cells
remain separate. Resident-key capability was enabled, but the observed production
request used residentKey=discouraged and the stored credential was nonresident;
actual discoverable-credential coverage is unestablished.