[Bug 296119] Summary: www/chromium: crash on WebAuthn/FIDO2 security-key prompt (hid_service_freebsd.cc, EINVAL on O_NONBLOCK)

From: <bugzilla-noreply_at_freebsd.org>
Date: Wed, 17 Jun 2026 21:38:14 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=296119

            Bug ID: 296119
           Summary: Summary: www/chromium: crash on WebAuthn/FIDO2
                    security-key prompt (hid_service_freebsd.cc, EINVAL on
                    O_NONBLOCK)
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: Individual Port(s)
          Assignee: chromium@FreeBSD.org
          Reporter: taq@eustaquiorangel.com
             Flags: maintainer-feedback?(chromium@FreeBSD.org)
          Assignee: chromium@FreeBSD.org

Environment:

- FreeBSD 15.0-RELEASE
- chromium-149.0.7827.102
- Desktop: Hyprland (Wayland)
- Device: YubiKey 5 (firmware 5.4.3), accessed via /dev/uhid0

Description:

Chromium crashes instantly, with no on-screen error, whenever a website
triggers a WebAuthn/FIDO2 security-key prompt. Running chromium from a terminal
shows the crash originates in the FreeBSD HID backend: it fails to set the
non-blocking flag (O_NONBLOCK) on the /dev/uhid* file descriptor, returning
EINVAL (errno 22), and the process then aborts with SIGTRAP.

Steps to reproduce:

1. Launch chromium from a terminal.
2. Go to a WebAuthn test page, e.g.
https://demo.yubico.com/webauthn-technical/registration or https://webauthn.io
3. Start an action that requires the security key and touch the YubiKey when
prompted.
4. Chromium crashes immediately.

Expected: the security key is used and authentication completes.
Actual: the browser process aborts.

Relevant terminal output at the moment of the crash:

[ERROR:components/device_event_log/device_event_log_impl.cc:200] HID:
hid_service_freebsd.cc:382 Failed to set the non-blocking flag on the device
fd: Invalid argument (22)
    Trace/BPT trap             chrome

Ruled out:

- Permissions: the key is accessible; `fido2-token -L` and `fido2-token -I
/dev/uhid0` work, and /dev/uhid0 is in the u2f group with rw bits.

- Key state: a full FIDO2 reset was performed; the key works on demo.yubico.com
afterwards. The crash is identical before and after the reset.

- System: Firefox works on the same machine with the same key. Firefox uses
authenticator-rs (its own uhid handling); Chromium uses its C++ HID backend,
which is where this fails.

A user reported the same symptom (same OS/desktop) here, with no resolution:
https://forums.freebsd.org/threads/chromium-based-browser-crash-when-tfa-yubikey-is-being-triggered.101711/

This appears to be a bug in the port's hid_service_freebsd.cc rather than a
local configuration issue.

-- 
You are receiving this mail because:
You are the assignee for the bug.