Track vulnerabilities like this one.
Sign up free to get alerted when software you use is affected.
9.1
CVE-2026-39831: golang.org/x/crypto/ssh accepts security key without touch
CVE-2026-39831 · published 4 months ago
Summary
The SSH library used by several Canonical tools can approve signatures from a hardware security key even when the user does not physically press the key. This means someone could use the key remotely without the owner’s presence, bypassing the intended two‑factor protection. Update the affected packages to the latest version that restores the touch‑required check, or apply the recommended code change to re‑enable the physical‑presence verification.
What to do
- Update x golang.org/x/crypto to version v0.35.0-aikido.3.
- Update x golang.org/x/crypto to version 0.52.0.
- Update golang.org x to version 0.52.0.
- Update x rootio-golang.org/x/crypto to version v0.45.0-root.io.1.
- Update x golang.org/x/crypto to version v0.45.0-aikido.1.
- Update x rootio-golang.org/x/crypto to version v0.31.0-root.io.8.
- Update x golang.org/x/crypto to version v0.31.0-aikido.8.
- Update x rootio-golang.org/x/crypto to version v0.35.0-root.io.3.
- Update x rootio-golang.org/x/crypto to version v0.45.0-root.io.2.
- Update x golang.org/x/crypto to version v0.45.0-aikido.2.
- Update x rootio-golang.org/x/crypto to version v0.46.0-root.io.2.
- Update x golang.org/x/crypto to version v0.46.0-aikido.2.
- Update x golang.org/x/crypto to version v0.32.0-aikido.3.
- Update x rootio-golang.org/x/crypto to version v0.32.0-root.io.3.
- Update x golang.org/x/crypto to version v0.32.0-aikido.5.
- Update x rootio-golang.org/x/crypto to version v0.32.0-root.io.5.
- Update x golang.org/x/crypto to version v0.32.0-aikido.4.
- Update x rootio-golang.org/x/crypto to version v0.32.0-root.io.4.
- Update x golang.org/x/crypto to version v0.31.0-aikido.9.
- Update x rootio-golang.org/x/crypto to version v0.31.0-root.io.9.
- Update debian golang-go.crypto to version 1:0.52.0-1.
- Update canonical google-guest-agent to version 20240716.00-0ubuntu1~16.04.0+esm3.
- Update canonical google-guest-agent to version 20241011.01-0ubuntu1~18.04.0+esm3.
- Update canonical google-guest-agent to version 20250116.00-0ubuntu1~20.04.0+esm3.
- Update canonical golang-go.crypto to version 1:0.0~git20200221.2aa609c-1ubuntu0.1~esm2.
- Update canonical google-guest-agent to version 20250116.00-0ubuntu1~22.04.3.
- Update canonical golang-go.crypto to version 1:0.0~git20211202.5770296-1ubuntu0.1~esm2.
- Update canonical google-guest-agent to version 20250116.00-0ubuntu1~24.04.4.
- Update canonical golang-go.crypto to version 1:0.19.0-1ubuntu0.1~esm2.
- Update canonical google-guest-agent to version 20250506.01-0ubuntu1.2.
- Update canonical google-guest-agent to version 20250506.01-0ubuntu2.1.
- Update canonical golang-go.crypto to version 1:0.47.0-1ubuntu0.1~esm1.
- Update golang crypto to version 0.52.0 or later.
Affected software
| Ecosystem | Vendor | Product | Affected versions |
|---|---|---|---|
| Ubuntu:Pro:16.04:LTS | canonical | snapd | All versions |
| Ubuntu:Pro:16.04:LTS | canonical | google-guest-agent |
< 20240716.00-0ubuntu1~16.04.0+esm3 Fix: upgrade to 20240716.00-0ubuntu1~16.04.0+esm3
|
| Ubuntu:Pro:18.04:LTS | canonical | lxd | All versions |
| Ubuntu:Pro:18.04:LTS | canonical | snapd | All versions |
| Ubuntu:Pro:18.04:LTS | canonical | golang-go.crypto | All versions |
| Ubuntu:Pro:18.04:LTS | canonical | google-guest-agent |
< 20241011.01-0ubuntu1~18.04.0+esm3 Fix: upgrade to 20241011.01-0ubuntu1~18.04.0+esm3
|
| Ubuntu:Pro:20.04:LTS | canonical | google-guest-agent |
< 20250116.00-0ubuntu1~20.04.0+esm3 Fix: upgrade to 20250116.00-0ubuntu1~20.04.0+esm3
|
| Ubuntu:Pro:20.04:LTS | canonical | snapd | All versions |
| Ubuntu:Pro:20.04:LTS | canonical | golang-go.crypto |
< 1:0.0~git20200221.2aa609c-1ubuntu0.1~esm2 Fix: upgrade to 1:0.0~git20200221.2aa609c-1ubuntu0.1~esm2
|
| Ubuntu:22.04:LTS | canonical | google-guest-agent |
< 20250116.00-0ubuntu1~22.04.3 Fix: upgrade to 20250116.00-0ubuntu1~22.04.3
|
| Ubuntu:22.04:LTS | canonical | snapd | All versions |
| Ubuntu:Pro:22.04:LTS | canonical | golang-go.crypto |
< 1:0.0~git20211202.5770296-1ubuntu0.1~esm2 Fix: upgrade to 1:0.0~git20211202.5770296-1ubuntu0.1~esm2
|
| Ubuntu:24.04:LTS | canonical | google-guest-agent |
< 20250116.00-0ubuntu1~24.04.4 Fix: upgrade to 20250116.00-0ubuntu1~24.04.4
|
| Ubuntu:24.04:LTS | canonical | snapd | All versions |
| Ubuntu:Pro:24.04:LTS | canonical | golang-go.crypto |
< 1:0.19.0-1ubuntu0.1~esm2 Fix: upgrade to 1:0.19.0-1ubuntu0.1~esm2
|
| Ubuntu:25.10 | canonical | golang-go.crypto | All versions |
| Ubuntu:25.10 | canonical | google-guest-agent |
< 20250506.01-0ubuntu1.2 Fix: upgrade to 20250506.01-0ubuntu1.2
|
| Ubuntu:25.10 | canonical | snapd | All versions |
| Ubuntu:26.04:LTS | canonical | golang-go.crypto | All versions |
| Ubuntu:26.04:LTS | canonical | google-guest-agent |
< 20250506.01-0ubuntu2.1 Fix: upgrade to 20250506.01-0ubuntu2.1
|
| Ubuntu:26.04:LTS | canonical | snapd | All versions |
| Root:Go | x | golang.org/x/crypto |
< v0.35.0-aikido.3 < v0.45.0-aikido.1 < v0.31.0-aikido.8 < v0.45.0-aikido.2 < v0.46.0-aikido.2 < v0.32.0-aikido.3 < v0.32.0-aikido.5 < v0.32.0-aikido.4 < v0.31.0-aikido.9 Fix: upgrade to v0.35.0-aikido.3
|
| Go | x | golang.org/x/crypto |
< 0.52.0 Fix: upgrade to 0.52.0
|
| Debian:11 | debian | golang-go.crypto | All versions |
| Debian:12 | debian | golang-go.crypto | All versions |
| Debian:13 | debian | golang-go.crypto | All versions |
| Debian:14 | debian | golang-go.crypto |
< 1:0.52.0-1 Fix: upgrade to 1:0.52.0-1
|
| Ubuntu:Pro:16.04:LTS | canonical | golang-go.crypto | All versions |
| Ubuntu:Pro:16.04:LTS | canonical | lxd | All versions |
| – | golang | crypto |
< 0.52.0 cpe:2.3:a:golang:crypto:*:*:*:*:*:go:*:* |
| go | golang.org | x |
< 0.52.0 Fix: upgrade to 0.52.0
|
| Root:Go | x | rootio-golang.org/x/crypto |
< v0.45.0-root.io.1 < v0.31.0-root.io.8 < v0.35.0-root.io.3 < v0.45.0-root.io.2 < v0.46.0-root.io.2 < v0.32.0-root.io.3 < v0.32.0-root.io.5 < v0.32.0-root.io.4 < v0.31.0-root.io.9 Fix: upgrade to v0.45.0-root.io.1
|
| Ubuntu:Pro:26.04:LTS | canonical | golang-go.crypto |
< 1:0.47.0-1ubuntu0.1~esm1 Fix: upgrade to 1:0.47.0-1ubuntu0.1~esm1
|
Original advisory text
Invoking bypass of FIDO/U2F security keys physical interaction in golang.org/x/crypto/ssh
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.
References
- https://github.com/golang/crypto/commit/b61cf853a89d82cad68da5e12a6beca2116f8456 Third Party Advisory
- https://ubuntu.com/security/notices/USN-8447-1 Vendor Advisory
- https://ubuntu.com/security/notices/USN-8447-3 Vendor Advisory
- https://security-tracker.debian.org/tracker/CVE-2026-39831 Vendor Advisory
- https://ubuntu.com/security/CVE-2026-39831 Third Party Advisory
- https://www.cve.org/CVERecord?id=CVE-2026-39831 Third Party Advisory
- https://github.com/advisories/GHSA-89gr-r52h-f8rx
- https://pkg.go.dev URL
- https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/39xxx/CVE-2026-39831... Vendor Advisory
- https://go.dev/cl/781662 Third Party Advisory
- https://go.dev/issue/79566 Third Party Advisory
- https://groups.google.com/g/golang-announce/c/a082jnz-LvI Third Party Advisory
- https://pkg.go.dev/vuln/GO-2026-5019 Third Party Advisory
- https://nvd.nist.gov/vuln/detail/CVE-2026-39831 Vendor Advisory
Internet-facing
3 days
Internal
60 days
- Not known to be exploited
- Can be exploited automatically
- Gives an attacker full control
Severity
9.1
Critical
Type
CWE-862Missing Authorization
Timeline
Published22 May 2026
Updated11 Oct 2026
First seen22 May 2026
Sources
DEBIAN-CVE-2026-39831 · OSV
UBUNTU-CVE-2026-39831 · OSV
GO-2026-5019 · OSV
CVE-2026-39831 · NVD
GHSA-89gr-r52h-f8rx · GHSA
CVE-2026-39831 · OSV
Track software like this
Free during beta