CVE-2026-39831 Invoking bypass of FIDO/U2F security keys physical interaction in golang.org/x/crypto/ssh
Attackers can bypass physical touch requirements for FIDO/U2F security keys in Go SSH, enabling unattended authentication.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-39831?
CVE-2026-39831 is a critical vulnerability in golang.org/x/crypto/ssh, published on 22 May 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
The Verify() method for FIDO/U2F security key types ([email protected], [email protected]) did not check the User Presence flag. Signatures generated without physical touch were accepted, allowing unattended use of a hardware security key. To restore the previous behavior, return a "no-touch-required" extension in Permissions.Extensions from PublicKeyCallback.
Weakness: CWE-862
Which versions are affected by CVE-2026-39831?
3 open source packages ship an affected version, including golang.org/x/crypto. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
golang.org/x/crypto Go | All versions | 0.52.0 |
golang.org/x/crypto Go | All versions | 0.52.0 |
golang.org/x/crypto Go | All versions | 0.52.0 |
Products include Golang Crypto.
How do I fix CVE-2026-39831?
Upgrade golang.org/x/crypto to 0.52.0 or later.
Is CVE-2026-39831 being exploited?
There is no known exploitation of CVE-2026-39831 in the wild and no public exploit code.
Other vulnerabilities in golang.org/x/crypto/ssh
- CVE-2026-46595 Invoking VerifiedPublicKeyCallback permissions skip enforcement in golang.org/x/crypto/ssh
- CVE-2026-39830 Invoking client can cause server deadlock on unexpected responses in golang.org/x/crypto/ssh
- CVE-2026-39832 Invoking agent constraints dropped when forwarding keys in golang.org/x/crypto/ssh/agent
- CVE-2026-39833 Invoking key constraints not enforced in golang.org/x/crypto/ssh/agent
- CVE-2026-39834 Invoking infinite loop on large channel writes in golang.org/x/crypto/ssh
Sources
Also known as AZL-87173, AZL-87206, AZL-87281, BELL-CVE-2026-39831, CLEANSTART-2026-CE49224, CLEANSTART-2026-CF84977 and 1119 more.