golang.org/x/crypto
Activity
- Latest release
- 5d ago
- Total releases
- 55
- Cadence
- ~29 days
- Last 12 months
- 15
Details
- First release
- Oct 19, 2022
| Version | Released | |
|---|---|---|
v0.57.0
minor
1 CVE
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev |
v0.57.0
minor
Dependencies (3)
|
|
v0.56.0
minor
1 CVE
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev |
v0.56.0
minor
Dependencies (3)
|
|
v0.55.0
minor
3 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev |
v0.55.0
minor
Dependencies (3)
|
|
v0.54.0
minor
4 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev |
v0.54.0
minor
Dependencies (3)
|
|
v0.53.0
minor
4 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev |
v0.53.0
minor
Dependencies (3)
|
|
v0.52.0
minor
4 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev |
v0.52.0
minor
Dependencies (3)
|
|
v0.51.0
minor
17 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev |
v0.51.0
minor
Dependencies (3)
|
|
v0.50.0
minor
17 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev |
v0.50.0
minor
Dependencies (3)
|
|
v0.49.0
minor
17 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev |
v0.49.0
minor
Dependencies (3)
|
|
v0.48.0
minor
17 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev |
v0.48.0
minor
Dependencies (3)
|
|
v0.47.0
minor
17 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev |
v0.47.0
minor
Dependencies (3)
|
|
v0.46.0
minor
17 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev |
v0.46.0
minor
Dependencies (3)
|
|
v0.45.0
minor
17 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev |
v0.45.0
minor
Dependencies (3)
|
|
v0.44.0
minor
19 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47914
GHSA-f6x5-jh6r-wrfv
GO-2025-4135
Nov 19, 2025
golang.org/x/crypto/ssh/agent vulnerable to panic if message is malformed due to out of bounds read
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH Agent servers do not validate the size of messages when processing new identity requests, which may cause the program to panic if the message is malformed due to an out of bounds read. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-58181
GHSA-j5w8-q4qc-rx2x
GO-2025-4134
Nov 19, 2025
golang.org/x/crypto/ssh allows an attacker to cause unbounded memory consumption
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers parsing GSSAPI authentication requests do not validate the number of mechanisms specified in the request, allowing an attacker to cause unbounded memory consumption. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev |
v0.44.0
minor
Dependencies (3)
|
|
v0.43.0
minor
19 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47914
GHSA-f6x5-jh6r-wrfv
GO-2025-4135
Nov 19, 2025
golang.org/x/crypto/ssh/agent vulnerable to panic if message is malformed due to out of bounds read
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH Agent servers do not validate the size of messages when processing new identity requests, which may cause the program to panic if the message is malformed due to an out of bounds read. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-58181
GHSA-j5w8-q4qc-rx2x
GO-2025-4134
Nov 19, 2025
golang.org/x/crypto/ssh allows an attacker to cause unbounded memory consumption
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers parsing GSSAPI authentication requests do not validate the number of mechanisms specified in the request, allowing an attacker to cause unbounded memory consumption. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev |
v0.43.0
minor
Dependencies (3)
|
|
v0.42.0
minor
20 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47914
GHSA-f6x5-jh6r-wrfv
GO-2025-4135
Nov 19, 2025
golang.org/x/crypto/ssh/agent vulnerable to panic if message is malformed due to out of bounds read
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH Agent servers do not validate the size of messages when processing new identity requests, which may cause the program to panic if the message is malformed due to an out of bounds read. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-58181
GHSA-j5w8-q4qc-rx2x
GO-2025-4134
Nov 19, 2025
golang.org/x/crypto/ssh allows an attacker to cause unbounded memory consumption
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers parsing GSSAPI authentication requests do not validate the number of mechanisms specified in the request, allowing an attacker to cause unbounded memory consumption. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47913
GO-2025-4116
GHSA-56w8-48fp-6mgv
Nov 13, 2025
Potential denial of service in golang.org/x/crypto/ssh/agent SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process. Fixed in
0.43.0
References Updated May 21, 2026 · Source: OSV.dev |
v0.42.0
minor
Dependencies (3)
|
|
v0.41.0
minor
20 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47914
GHSA-f6x5-jh6r-wrfv
GO-2025-4135
Nov 19, 2025
golang.org/x/crypto/ssh/agent vulnerable to panic if message is malformed due to out of bounds read
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH Agent servers do not validate the size of messages when processing new identity requests, which may cause the program to panic if the message is malformed due to an out of bounds read. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-58181
GHSA-j5w8-q4qc-rx2x
GO-2025-4134
Nov 19, 2025
golang.org/x/crypto/ssh allows an attacker to cause unbounded memory consumption
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers parsing GSSAPI authentication requests do not validate the number of mechanisms specified in the request, allowing an attacker to cause unbounded memory consumption. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47913
GO-2025-4116
GHSA-56w8-48fp-6mgv
Nov 13, 2025
Potential denial of service in golang.org/x/crypto/ssh/agent SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process. Fixed in
0.43.0
References Updated May 21, 2026 · Source: OSV.dev |
v0.41.0
minor
Dependencies (3)
|
|
v0.40.0
minor
20 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47914
GHSA-f6x5-jh6r-wrfv
GO-2025-4135
Nov 19, 2025
golang.org/x/crypto/ssh/agent vulnerable to panic if message is malformed due to out of bounds read
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH Agent servers do not validate the size of messages when processing new identity requests, which may cause the program to panic if the message is malformed due to an out of bounds read. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-58181
GHSA-j5w8-q4qc-rx2x
GO-2025-4134
Nov 19, 2025
golang.org/x/crypto/ssh allows an attacker to cause unbounded memory consumption
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers parsing GSSAPI authentication requests do not validate the number of mechanisms specified in the request, allowing an attacker to cause unbounded memory consumption. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47913
GO-2025-4116
GHSA-56w8-48fp-6mgv
Nov 13, 2025
Potential denial of service in golang.org/x/crypto/ssh/agent SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process. Fixed in
0.43.0
References Updated May 21, 2026 · Source: OSV.dev |
v0.40.0
minor
Dependencies (3)
|
|
v0.39.0
minor
20 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47914
GHSA-f6x5-jh6r-wrfv
GO-2025-4135
Nov 19, 2025
golang.org/x/crypto/ssh/agent vulnerable to panic if message is malformed due to out of bounds read
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH Agent servers do not validate the size of messages when processing new identity requests, which may cause the program to panic if the message is malformed due to an out of bounds read. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-58181
GHSA-j5w8-q4qc-rx2x
GO-2025-4134
Nov 19, 2025
golang.org/x/crypto/ssh allows an attacker to cause unbounded memory consumption
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers parsing GSSAPI authentication requests do not validate the number of mechanisms specified in the request, allowing an attacker to cause unbounded memory consumption. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47913
GO-2025-4116
GHSA-56w8-48fp-6mgv
Nov 13, 2025
Potential denial of service in golang.org/x/crypto/ssh/agent SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process. Fixed in
0.43.0
References Updated May 21, 2026 · Source: OSV.dev |
v0.39.0
minor
Dependencies (3)
|
|
v0.38.0
minor
20 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47914
GHSA-f6x5-jh6r-wrfv
GO-2025-4135
Nov 19, 2025
golang.org/x/crypto/ssh/agent vulnerable to panic if message is malformed due to out of bounds read
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH Agent servers do not validate the size of messages when processing new identity requests, which may cause the program to panic if the message is malformed due to an out of bounds read. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-58181
GHSA-j5w8-q4qc-rx2x
GO-2025-4134
Nov 19, 2025
golang.org/x/crypto/ssh allows an attacker to cause unbounded memory consumption
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers parsing GSSAPI authentication requests do not validate the number of mechanisms specified in the request, allowing an attacker to cause unbounded memory consumption. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47913
GO-2025-4116
GHSA-56w8-48fp-6mgv
Nov 13, 2025
Potential denial of service in golang.org/x/crypto/ssh/agent SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process. Fixed in
0.43.0
References Updated May 21, 2026 · Source: OSV.dev |
v0.38.0
minor
Dependencies (3)
|
|
v0.37.0
minor
20 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47914
GHSA-f6x5-jh6r-wrfv
GO-2025-4135
Nov 19, 2025
golang.org/x/crypto/ssh/agent vulnerable to panic if message is malformed due to out of bounds read
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH Agent servers do not validate the size of messages when processing new identity requests, which may cause the program to panic if the message is malformed due to an out of bounds read. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-58181
GHSA-j5w8-q4qc-rx2x
GO-2025-4134
Nov 19, 2025
golang.org/x/crypto/ssh allows an attacker to cause unbounded memory consumption
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers parsing GSSAPI authentication requests do not validate the number of mechanisms specified in the request, allowing an attacker to cause unbounded memory consumption. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47913
GO-2025-4116
GHSA-56w8-48fp-6mgv
Nov 13, 2025
Potential denial of service in golang.org/x/crypto/ssh/agent SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process. Fixed in
0.43.0
References Updated May 21, 2026 · Source: OSV.dev |
v0.37.0
minor
Dependencies (3)
|
|
v0.36.0
minor
20 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47914
GHSA-f6x5-jh6r-wrfv
GO-2025-4135
Nov 19, 2025
golang.org/x/crypto/ssh/agent vulnerable to panic if message is malformed due to out of bounds read
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH Agent servers do not validate the size of messages when processing new identity requests, which may cause the program to panic if the message is malformed due to an out of bounds read. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-58181
GHSA-j5w8-q4qc-rx2x
GO-2025-4134
Nov 19, 2025
golang.org/x/crypto/ssh allows an attacker to cause unbounded memory consumption
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers parsing GSSAPI authentication requests do not validate the number of mechanisms specified in the request, allowing an attacker to cause unbounded memory consumption. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47913
GO-2025-4116
GHSA-56w8-48fp-6mgv
Nov 13, 2025
Potential denial of service in golang.org/x/crypto/ssh/agent SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process. Fixed in
0.43.0
References Updated May 21, 2026 · Source: OSV.dev |
v0.36.0
minor
Dependencies (3)
|
|
v0.35.0
minor
20 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47914
GHSA-f6x5-jh6r-wrfv
GO-2025-4135
Nov 19, 2025
golang.org/x/crypto/ssh/agent vulnerable to panic if message is malformed due to out of bounds read
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH Agent servers do not validate the size of messages when processing new identity requests, which may cause the program to panic if the message is malformed due to an out of bounds read. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-58181
GHSA-j5w8-q4qc-rx2x
GO-2025-4134
Nov 19, 2025
golang.org/x/crypto/ssh allows an attacker to cause unbounded memory consumption
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers parsing GSSAPI authentication requests do not validate the number of mechanisms specified in the request, allowing an attacker to cause unbounded memory consumption. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47913
GO-2025-4116
GHSA-56w8-48fp-6mgv
Nov 13, 2025
Potential denial of service in golang.org/x/crypto/ssh/agent SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process. Fixed in
0.43.0
References Updated May 21, 2026 · Source: OSV.dev |
v0.35.0
minor
Dependencies (3)
|
|
v0.34.0
minor
21 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47914
GHSA-f6x5-jh6r-wrfv
GO-2025-4135
Nov 19, 2025
golang.org/x/crypto/ssh/agent vulnerable to panic if message is malformed due to out of bounds read
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH Agent servers do not validate the size of messages when processing new identity requests, which may cause the program to panic if the message is malformed due to an out of bounds read. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-58181
GHSA-j5w8-q4qc-rx2x
GO-2025-4134
Nov 19, 2025
golang.org/x/crypto/ssh allows an attacker to cause unbounded memory consumption
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers parsing GSSAPI authentication requests do not validate the number of mechanisms specified in the request, allowing an attacker to cause unbounded memory consumption. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47913
GO-2025-4116
GHSA-56w8-48fp-6mgv
Nov 13, 2025
Potential denial of service in golang.org/x/crypto/ssh/agent SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process. Fixed in
0.43.0
References Updated May 21, 2026 · Source: OSV.dev
CVE-2025-22869
GHSA-hcg3-q754-cr77
GO-2025-3487
Apr 12, 2025
golang.org/x/crypto Vulnerable to Denial of Service (DoS) via Slow or Incomplete Key Exchange
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SSH servers which implement file transfer protocols are vulnerable to a denial of service attack from clients which complete the key exchange slowly, or not at all, causing pending content to be read into memory, but never transmitted. Fixed in
0.35.0
References Updated Sep 10, 2026 · Source: OSV.dev |
v0.34.0
minor
Dependencies (3)
|
|
v0.33.0
minor
21 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47914
GHSA-f6x5-jh6r-wrfv
GO-2025-4135
Nov 19, 2025
golang.org/x/crypto/ssh/agent vulnerable to panic if message is malformed due to out of bounds read
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH Agent servers do not validate the size of messages when processing new identity requests, which may cause the program to panic if the message is malformed due to an out of bounds read. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-58181
GHSA-j5w8-q4qc-rx2x
GO-2025-4134
Nov 19, 2025
golang.org/x/crypto/ssh allows an attacker to cause unbounded memory consumption
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers parsing GSSAPI authentication requests do not validate the number of mechanisms specified in the request, allowing an attacker to cause unbounded memory consumption. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47913
GO-2025-4116
GHSA-56w8-48fp-6mgv
Nov 13, 2025
Potential denial of service in golang.org/x/crypto/ssh/agent SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process. Fixed in
0.43.0
References Updated May 21, 2026 · Source: OSV.dev
CVE-2025-22869
GHSA-hcg3-q754-cr77
GO-2025-3487
Apr 12, 2025
golang.org/x/crypto Vulnerable to Denial of Service (DoS) via Slow or Incomplete Key Exchange
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SSH servers which implement file transfer protocols are vulnerable to a denial of service attack from clients which complete the key exchange slowly, or not at all, causing pending content to be read into memory, but never transmitted. Fixed in
0.35.0
References Updated Sep 10, 2026 · Source: OSV.dev |
v0.33.0
minor
Dependencies (3)
|
|
v0.32.0
minor
21 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47914
GHSA-f6x5-jh6r-wrfv
GO-2025-4135
Nov 19, 2025
golang.org/x/crypto/ssh/agent vulnerable to panic if message is malformed due to out of bounds read
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH Agent servers do not validate the size of messages when processing new identity requests, which may cause the program to panic if the message is malformed due to an out of bounds read. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-58181
GHSA-j5w8-q4qc-rx2x
GO-2025-4134
Nov 19, 2025
golang.org/x/crypto/ssh allows an attacker to cause unbounded memory consumption
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers parsing GSSAPI authentication requests do not validate the number of mechanisms specified in the request, allowing an attacker to cause unbounded memory consumption. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47913
GO-2025-4116
GHSA-56w8-48fp-6mgv
Nov 13, 2025
Potential denial of service in golang.org/x/crypto/ssh/agent SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process. Fixed in
0.43.0
References Updated May 21, 2026 · Source: OSV.dev
CVE-2025-22869
GHSA-hcg3-q754-cr77
GO-2025-3487
Apr 12, 2025
golang.org/x/crypto Vulnerable to Denial of Service (DoS) via Slow or Incomplete Key Exchange
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SSH servers which implement file transfer protocols are vulnerable to a denial of service attack from clients which complete the key exchange slowly, or not at all, causing pending content to be read into memory, but never transmitted. Fixed in
0.35.0
References Updated Sep 10, 2026 · Source: OSV.dev |
v0.32.0
minor
Dependencies (3)
|
|
v0.31.0
minor
21 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47914
GHSA-f6x5-jh6r-wrfv
GO-2025-4135
Nov 19, 2025
golang.org/x/crypto/ssh/agent vulnerable to panic if message is malformed due to out of bounds read
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH Agent servers do not validate the size of messages when processing new identity requests, which may cause the program to panic if the message is malformed due to an out of bounds read. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-58181
GHSA-j5w8-q4qc-rx2x
GO-2025-4134
Nov 19, 2025
golang.org/x/crypto/ssh allows an attacker to cause unbounded memory consumption
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers parsing GSSAPI authentication requests do not validate the number of mechanisms specified in the request, allowing an attacker to cause unbounded memory consumption. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47913
GO-2025-4116
GHSA-56w8-48fp-6mgv
Nov 13, 2025
Potential denial of service in golang.org/x/crypto/ssh/agent SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process. Fixed in
0.43.0
References Updated May 21, 2026 · Source: OSV.dev
CVE-2025-22869
GHSA-hcg3-q754-cr77
GO-2025-3487
Apr 12, 2025
golang.org/x/crypto Vulnerable to Denial of Service (DoS) via Slow or Incomplete Key Exchange
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SSH servers which implement file transfer protocols are vulnerable to a denial of service attack from clients which complete the key exchange slowly, or not at all, causing pending content to be read into memory, but never transmitted. Fixed in
0.35.0
References Updated Sep 10, 2026 · Source: OSV.dev |
v0.31.0
minor
Dependencies (3)
|
|
v0.30.0
minor
22 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47914
GHSA-f6x5-jh6r-wrfv
GO-2025-4135
Nov 19, 2025
golang.org/x/crypto/ssh/agent vulnerable to panic if message is malformed due to out of bounds read
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH Agent servers do not validate the size of messages when processing new identity requests, which may cause the program to panic if the message is malformed due to an out of bounds read. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-58181
GHSA-j5w8-q4qc-rx2x
GO-2025-4134
Nov 19, 2025
golang.org/x/crypto/ssh allows an attacker to cause unbounded memory consumption
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers parsing GSSAPI authentication requests do not validate the number of mechanisms specified in the request, allowing an attacker to cause unbounded memory consumption. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47913
GO-2025-4116
GHSA-56w8-48fp-6mgv
Nov 13, 2025
Potential denial of service in golang.org/x/crypto/ssh/agent SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process. Fixed in
0.43.0
References Updated May 21, 2026 · Source: OSV.dev
CVE-2025-22869
GHSA-hcg3-q754-cr77
GO-2025-3487
Apr 12, 2025
golang.org/x/crypto Vulnerable to Denial of Service (DoS) via Slow or Incomplete Key Exchange
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SSH servers which implement file transfer protocols are vulnerable to a denial of service attack from clients which complete the key exchange slowly, or not at all, causing pending content to be read into memory, but never transmitted. Fixed in
0.35.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2024-45337
GHSA-v778-237x-gjrc
GO-2024-3321
Dec 11, 2024
Misuse of ServerConfig.PublicKeyCallback may cause authorization bypass in golang.org/x/crypto
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Applications and libraries which misuse the ServerConfig.PublicKeyCallback callback may be susceptible to an authorization bypass. The documentation for ServerConfig.PublicKeyCallback says that "A call to this function does not guarantee that the key offered is in fact used to authenticate." Specifically, the SSH protocol allows clients to inquire about whether a public key is acceptable before proving control of the corresponding private key. PublicKeyCallback may be called with multiple keys, and the order in which the keys were provided cannot be used to infer which key the client successfully authenticated with, if any. Some applications, which store the key(s) passed to PublicKeyCallback (or derived information) and make security relevant determinations based on it once the connection is established, may make incorrect assumptions. For example, an attacker may send public keys A and B, and then authenticate with A. PublicKeyCallback would be called only twice, first with A and then with B. A vulnerable application may then make authorization decisions based on key B for which the attacker does not actually control the private key. Since this API is widely misused, as a partial mitigation golang.org/x/crypto@v0.31.0 enforces the property that, when successfully authenticating via public key, the last key passed to ServerConfig.PublicKeyCallback will be the key used to authenticate the connection. PublicKeyCallback will now be called multiple times with the same key, if necessary. Note that the client may still not control the last key passed to PublicKeyCallback if the connection is then authenticated with a different method, such as PasswordCallback, KeyboardInteractiveCallback, or NoClientAuth. Users should be using the Extensions field of the Permissions return value from the various authentication callbacks to record data associated with the authentication attempt instead of referencing external state. Once the connection is established the state corresponding to the successful authentication attempt can be retrieved via the ServerConn.Permissions field. Note that some third-party libraries misuse the Permissions type by sharing it across authentication attempts; users of third-party libraries should refer to the relevant projects for guidance. Fixed in
0.31.0
References Updated Sep 10, 2026 · Source: OSV.dev |
v0.30.0
minor
Dependencies (3)
|
|
v0.29.0
minor
22 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47914
GHSA-f6x5-jh6r-wrfv
GO-2025-4135
Nov 19, 2025
golang.org/x/crypto/ssh/agent vulnerable to panic if message is malformed due to out of bounds read
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH Agent servers do not validate the size of messages when processing new identity requests, which may cause the program to panic if the message is malformed due to an out of bounds read. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-58181
GHSA-j5w8-q4qc-rx2x
GO-2025-4134
Nov 19, 2025
golang.org/x/crypto/ssh allows an attacker to cause unbounded memory consumption
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers parsing GSSAPI authentication requests do not validate the number of mechanisms specified in the request, allowing an attacker to cause unbounded memory consumption. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47913
GO-2025-4116
GHSA-56w8-48fp-6mgv
Nov 13, 2025
Potential denial of service in golang.org/x/crypto/ssh/agent SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process. Fixed in
0.43.0
References Updated May 21, 2026 · Source: OSV.dev
CVE-2025-22869
GHSA-hcg3-q754-cr77
GO-2025-3487
Apr 12, 2025
golang.org/x/crypto Vulnerable to Denial of Service (DoS) via Slow or Incomplete Key Exchange
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SSH servers which implement file transfer protocols are vulnerable to a denial of service attack from clients which complete the key exchange slowly, or not at all, causing pending content to be read into memory, but never transmitted. Fixed in
0.35.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2024-45337
GHSA-v778-237x-gjrc
GO-2024-3321
Dec 11, 2024
Misuse of ServerConfig.PublicKeyCallback may cause authorization bypass in golang.org/x/crypto
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Applications and libraries which misuse the ServerConfig.PublicKeyCallback callback may be susceptible to an authorization bypass. The documentation for ServerConfig.PublicKeyCallback says that "A call to this function does not guarantee that the key offered is in fact used to authenticate." Specifically, the SSH protocol allows clients to inquire about whether a public key is acceptable before proving control of the corresponding private key. PublicKeyCallback may be called with multiple keys, and the order in which the keys were provided cannot be used to infer which key the client successfully authenticated with, if any. Some applications, which store the key(s) passed to PublicKeyCallback (or derived information) and make security relevant determinations based on it once the connection is established, may make incorrect assumptions. For example, an attacker may send public keys A and B, and then authenticate with A. PublicKeyCallback would be called only twice, first with A and then with B. A vulnerable application may then make authorization decisions based on key B for which the attacker does not actually control the private key. Since this API is widely misused, as a partial mitigation golang.org/x/crypto@v0.31.0 enforces the property that, when successfully authenticating via public key, the last key passed to ServerConfig.PublicKeyCallback will be the key used to authenticate the connection. PublicKeyCallback will now be called multiple times with the same key, if necessary. Note that the client may still not control the last key passed to PublicKeyCallback if the connection is then authenticated with a different method, such as PasswordCallback, KeyboardInteractiveCallback, or NoClientAuth. Users should be using the Extensions field of the Permissions return value from the various authentication callbacks to record data associated with the authentication attempt instead of referencing external state. Once the connection is established the state corresponding to the successful authentication attempt can be retrieved via the ServerConn.Permissions field. Note that some third-party libraries misuse the Permissions type by sharing it across authentication attempts; users of third-party libraries should refer to the relevant projects for guidance. Fixed in
0.31.0
References Updated Sep 10, 2026 · Source: OSV.dev |
v0.29.0
minor
Dependencies (3)
|
|
v0.28.0
minor
22 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47914
GHSA-f6x5-jh6r-wrfv
GO-2025-4135
Nov 19, 2025
golang.org/x/crypto/ssh/agent vulnerable to panic if message is malformed due to out of bounds read
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH Agent servers do not validate the size of messages when processing new identity requests, which may cause the program to panic if the message is malformed due to an out of bounds read. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-58181
GHSA-j5w8-q4qc-rx2x
GO-2025-4134
Nov 19, 2025
golang.org/x/crypto/ssh allows an attacker to cause unbounded memory consumption
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers parsing GSSAPI authentication requests do not validate the number of mechanisms specified in the request, allowing an attacker to cause unbounded memory consumption. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47913
GO-2025-4116
GHSA-56w8-48fp-6mgv
Nov 13, 2025
Potential denial of service in golang.org/x/crypto/ssh/agent SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process. Fixed in
0.43.0
References Updated May 21, 2026 · Source: OSV.dev
CVE-2025-22869
GHSA-hcg3-q754-cr77
GO-2025-3487
Apr 12, 2025
golang.org/x/crypto Vulnerable to Denial of Service (DoS) via Slow or Incomplete Key Exchange
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SSH servers which implement file transfer protocols are vulnerable to a denial of service attack from clients which complete the key exchange slowly, or not at all, causing pending content to be read into memory, but never transmitted. Fixed in
0.35.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2024-45337
GHSA-v778-237x-gjrc
GO-2024-3321
Dec 11, 2024
Misuse of ServerConfig.PublicKeyCallback may cause authorization bypass in golang.org/x/crypto
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Applications and libraries which misuse the ServerConfig.PublicKeyCallback callback may be susceptible to an authorization bypass. The documentation for ServerConfig.PublicKeyCallback says that "A call to this function does not guarantee that the key offered is in fact used to authenticate." Specifically, the SSH protocol allows clients to inquire about whether a public key is acceptable before proving control of the corresponding private key. PublicKeyCallback may be called with multiple keys, and the order in which the keys were provided cannot be used to infer which key the client successfully authenticated with, if any. Some applications, which store the key(s) passed to PublicKeyCallback (or derived information) and make security relevant determinations based on it once the connection is established, may make incorrect assumptions. For example, an attacker may send public keys A and B, and then authenticate with A. PublicKeyCallback would be called only twice, first with A and then with B. A vulnerable application may then make authorization decisions based on key B for which the attacker does not actually control the private key. Since this API is widely misused, as a partial mitigation golang.org/x/crypto@v0.31.0 enforces the property that, when successfully authenticating via public key, the last key passed to ServerConfig.PublicKeyCallback will be the key used to authenticate the connection. PublicKeyCallback will now be called multiple times with the same key, if necessary. Note that the client may still not control the last key passed to PublicKeyCallback if the connection is then authenticated with a different method, such as PasswordCallback, KeyboardInteractiveCallback, or NoClientAuth. Users should be using the Extensions field of the Permissions return value from the various authentication callbacks to record data associated with the authentication attempt instead of referencing external state. Once the connection is established the state corresponding to the successful authentication attempt can be retrieved via the ServerConn.Permissions field. Note that some third-party libraries misuse the Permissions type by sharing it across authentication attempts; users of third-party libraries should refer to the relevant projects for guidance. Fixed in
0.31.0
References Updated Sep 10, 2026 · Source: OSV.dev |
v0.28.0
minor
Dependencies (3)
|
|
v0.27.0
minor
22 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47914
GHSA-f6x5-jh6r-wrfv
GO-2025-4135
Nov 19, 2025
golang.org/x/crypto/ssh/agent vulnerable to panic if message is malformed due to out of bounds read
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH Agent servers do not validate the size of messages when processing new identity requests, which may cause the program to panic if the message is malformed due to an out of bounds read. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-58181
GHSA-j5w8-q4qc-rx2x
GO-2025-4134
Nov 19, 2025
golang.org/x/crypto/ssh allows an attacker to cause unbounded memory consumption
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers parsing GSSAPI authentication requests do not validate the number of mechanisms specified in the request, allowing an attacker to cause unbounded memory consumption. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47913
GO-2025-4116
GHSA-56w8-48fp-6mgv
Nov 13, 2025
Potential denial of service in golang.org/x/crypto/ssh/agent SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process. Fixed in
0.43.0
References Updated May 21, 2026 · Source: OSV.dev
CVE-2025-22869
GHSA-hcg3-q754-cr77
GO-2025-3487
Apr 12, 2025
golang.org/x/crypto Vulnerable to Denial of Service (DoS) via Slow or Incomplete Key Exchange
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SSH servers which implement file transfer protocols are vulnerable to a denial of service attack from clients which complete the key exchange slowly, or not at all, causing pending content to be read into memory, but never transmitted. Fixed in
0.35.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2024-45337
GHSA-v778-237x-gjrc
GO-2024-3321
Dec 11, 2024
Misuse of ServerConfig.PublicKeyCallback may cause authorization bypass in golang.org/x/crypto
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Applications and libraries which misuse the ServerConfig.PublicKeyCallback callback may be susceptible to an authorization bypass. The documentation for ServerConfig.PublicKeyCallback says that "A call to this function does not guarantee that the key offered is in fact used to authenticate." Specifically, the SSH protocol allows clients to inquire about whether a public key is acceptable before proving control of the corresponding private key. PublicKeyCallback may be called with multiple keys, and the order in which the keys were provided cannot be used to infer which key the client successfully authenticated with, if any. Some applications, which store the key(s) passed to PublicKeyCallback (or derived information) and make security relevant determinations based on it once the connection is established, may make incorrect assumptions. For example, an attacker may send public keys A and B, and then authenticate with A. PublicKeyCallback would be called only twice, first with A and then with B. A vulnerable application may then make authorization decisions based on key B for which the attacker does not actually control the private key. Since this API is widely misused, as a partial mitigation golang.org/x/crypto@v0.31.0 enforces the property that, when successfully authenticating via public key, the last key passed to ServerConfig.PublicKeyCallback will be the key used to authenticate the connection. PublicKeyCallback will now be called multiple times with the same key, if necessary. Note that the client may still not control the last key passed to PublicKeyCallback if the connection is then authenticated with a different method, such as PasswordCallback, KeyboardInteractiveCallback, or NoClientAuth. Users should be using the Extensions field of the Permissions return value from the various authentication callbacks to record data associated with the authentication attempt instead of referencing external state. Once the connection is established the state corresponding to the successful authentication attempt can be retrieved via the ServerConn.Permissions field. Note that some third-party libraries misuse the Permissions type by sharing it across authentication attempts; users of third-party libraries should refer to the relevant projects for guidance. Fixed in
0.31.0
References Updated Sep 10, 2026 · Source: OSV.dev |
v0.27.0
minor
Dependencies (3)
|
|
v0.25.0
minor
22 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47914
GHSA-f6x5-jh6r-wrfv
GO-2025-4135
Nov 19, 2025
golang.org/x/crypto/ssh/agent vulnerable to panic if message is malformed due to out of bounds read
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH Agent servers do not validate the size of messages when processing new identity requests, which may cause the program to panic if the message is malformed due to an out of bounds read. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-58181
GHSA-j5w8-q4qc-rx2x
GO-2025-4134
Nov 19, 2025
golang.org/x/crypto/ssh allows an attacker to cause unbounded memory consumption
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers parsing GSSAPI authentication requests do not validate the number of mechanisms specified in the request, allowing an attacker to cause unbounded memory consumption. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47913
GO-2025-4116
GHSA-56w8-48fp-6mgv
Nov 13, 2025
Potential denial of service in golang.org/x/crypto/ssh/agent SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process. Fixed in
0.43.0
References Updated May 21, 2026 · Source: OSV.dev
CVE-2025-22869
GHSA-hcg3-q754-cr77
GO-2025-3487
Apr 12, 2025
golang.org/x/crypto Vulnerable to Denial of Service (DoS) via Slow or Incomplete Key Exchange
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SSH servers which implement file transfer protocols are vulnerable to a denial of service attack from clients which complete the key exchange slowly, or not at all, causing pending content to be read into memory, but never transmitted. Fixed in
0.35.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2024-45337
GHSA-v778-237x-gjrc
GO-2024-3321
Dec 11, 2024
Misuse of ServerConfig.PublicKeyCallback may cause authorization bypass in golang.org/x/crypto
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Applications and libraries which misuse the ServerConfig.PublicKeyCallback callback may be susceptible to an authorization bypass. The documentation for ServerConfig.PublicKeyCallback says that "A call to this function does not guarantee that the key offered is in fact used to authenticate." Specifically, the SSH protocol allows clients to inquire about whether a public key is acceptable before proving control of the corresponding private key. PublicKeyCallback may be called with multiple keys, and the order in which the keys were provided cannot be used to infer which key the client successfully authenticated with, if any. Some applications, which store the key(s) passed to PublicKeyCallback (or derived information) and make security relevant determinations based on it once the connection is established, may make incorrect assumptions. For example, an attacker may send public keys A and B, and then authenticate with A. PublicKeyCallback would be called only twice, first with A and then with B. A vulnerable application may then make authorization decisions based on key B for which the attacker does not actually control the private key. Since this API is widely misused, as a partial mitigation golang.org/x/crypto@v0.31.0 enforces the property that, when successfully authenticating via public key, the last key passed to ServerConfig.PublicKeyCallback will be the key used to authenticate the connection. PublicKeyCallback will now be called multiple times with the same key, if necessary. Note that the client may still not control the last key passed to PublicKeyCallback if the connection is then authenticated with a different method, such as PasswordCallback, KeyboardInteractiveCallback, or NoClientAuth. Users should be using the Extensions field of the Permissions return value from the various authentication callbacks to record data associated with the authentication attempt instead of referencing external state. Once the connection is established the state corresponding to the successful authentication attempt can be retrieved via the ServerConn.Permissions field. Note that some third-party libraries misuse the Permissions type by sharing it across authentication attempts; users of third-party libraries should refer to the relevant projects for guidance. Fixed in
0.31.0
References Updated Sep 10, 2026 · Source: OSV.dev |
v0.25.0
minor
Dependencies (3)
|
|
v0.24.0
minor
22 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47914
GHSA-f6x5-jh6r-wrfv
GO-2025-4135
Nov 19, 2025
golang.org/x/crypto/ssh/agent vulnerable to panic if message is malformed due to out of bounds read
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH Agent servers do not validate the size of messages when processing new identity requests, which may cause the program to panic if the message is malformed due to an out of bounds read. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-58181
GHSA-j5w8-q4qc-rx2x
GO-2025-4134
Nov 19, 2025
golang.org/x/crypto/ssh allows an attacker to cause unbounded memory consumption
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers parsing GSSAPI authentication requests do not validate the number of mechanisms specified in the request, allowing an attacker to cause unbounded memory consumption. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47913
GO-2025-4116
GHSA-56w8-48fp-6mgv
Nov 13, 2025
Potential denial of service in golang.org/x/crypto/ssh/agent SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process. Fixed in
0.43.0
References Updated May 21, 2026 · Source: OSV.dev
CVE-2025-22869
GHSA-hcg3-q754-cr77
GO-2025-3487
Apr 12, 2025
golang.org/x/crypto Vulnerable to Denial of Service (DoS) via Slow or Incomplete Key Exchange
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SSH servers which implement file transfer protocols are vulnerable to a denial of service attack from clients which complete the key exchange slowly, or not at all, causing pending content to be read into memory, but never transmitted. Fixed in
0.35.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2024-45337
GHSA-v778-237x-gjrc
GO-2024-3321
Dec 11, 2024
Misuse of ServerConfig.PublicKeyCallback may cause authorization bypass in golang.org/x/crypto
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Applications and libraries which misuse the ServerConfig.PublicKeyCallback callback may be susceptible to an authorization bypass. The documentation for ServerConfig.PublicKeyCallback says that "A call to this function does not guarantee that the key offered is in fact used to authenticate." Specifically, the SSH protocol allows clients to inquire about whether a public key is acceptable before proving control of the corresponding private key. PublicKeyCallback may be called with multiple keys, and the order in which the keys were provided cannot be used to infer which key the client successfully authenticated with, if any. Some applications, which store the key(s) passed to PublicKeyCallback (or derived information) and make security relevant determinations based on it once the connection is established, may make incorrect assumptions. For example, an attacker may send public keys A and B, and then authenticate with A. PublicKeyCallback would be called only twice, first with A and then with B. A vulnerable application may then make authorization decisions based on key B for which the attacker does not actually control the private key. Since this API is widely misused, as a partial mitigation golang.org/x/crypto@v0.31.0 enforces the property that, when successfully authenticating via public key, the last key passed to ServerConfig.PublicKeyCallback will be the key used to authenticate the connection. PublicKeyCallback will now be called multiple times with the same key, if necessary. Note that the client may still not control the last key passed to PublicKeyCallback if the connection is then authenticated with a different method, such as PasswordCallback, KeyboardInteractiveCallback, or NoClientAuth. Users should be using the Extensions field of the Permissions return value from the various authentication callbacks to record data associated with the authentication attempt instead of referencing external state. Once the connection is established the state corresponding to the successful authentication attempt can be retrieved via the ServerConn.Permissions field. Note that some third-party libraries misuse the Permissions type by sharing it across authentication attempts; users of third-party libraries should refer to the relevant projects for guidance. Fixed in
0.31.0
References Updated Sep 10, 2026 · Source: OSV.dev |
v0.24.0
minor
Dependencies (3)
|
|
v0.23.0
minor
22 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47914
GHSA-f6x5-jh6r-wrfv
GO-2025-4135
Nov 19, 2025
golang.org/x/crypto/ssh/agent vulnerable to panic if message is malformed due to out of bounds read
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH Agent servers do not validate the size of messages when processing new identity requests, which may cause the program to panic if the message is malformed due to an out of bounds read. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-58181
GHSA-j5w8-q4qc-rx2x
GO-2025-4134
Nov 19, 2025
golang.org/x/crypto/ssh allows an attacker to cause unbounded memory consumption
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers parsing GSSAPI authentication requests do not validate the number of mechanisms specified in the request, allowing an attacker to cause unbounded memory consumption. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47913
GO-2025-4116
GHSA-56w8-48fp-6mgv
Nov 13, 2025
Potential denial of service in golang.org/x/crypto/ssh/agent SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process. Fixed in
0.43.0
References Updated May 21, 2026 · Source: OSV.dev
CVE-2025-22869
GHSA-hcg3-q754-cr77
GO-2025-3487
Apr 12, 2025
golang.org/x/crypto Vulnerable to Denial of Service (DoS) via Slow or Incomplete Key Exchange
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SSH servers which implement file transfer protocols are vulnerable to a denial of service attack from clients which complete the key exchange slowly, or not at all, causing pending content to be read into memory, but never transmitted. Fixed in
0.35.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2024-45337
GHSA-v778-237x-gjrc
GO-2024-3321
Dec 11, 2024
Misuse of ServerConfig.PublicKeyCallback may cause authorization bypass in golang.org/x/crypto
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Applications and libraries which misuse the ServerConfig.PublicKeyCallback callback may be susceptible to an authorization bypass. The documentation for ServerConfig.PublicKeyCallback says that "A call to this function does not guarantee that the key offered is in fact used to authenticate." Specifically, the SSH protocol allows clients to inquire about whether a public key is acceptable before proving control of the corresponding private key. PublicKeyCallback may be called with multiple keys, and the order in which the keys were provided cannot be used to infer which key the client successfully authenticated with, if any. Some applications, which store the key(s) passed to PublicKeyCallback (or derived information) and make security relevant determinations based on it once the connection is established, may make incorrect assumptions. For example, an attacker may send public keys A and B, and then authenticate with A. PublicKeyCallback would be called only twice, first with A and then with B. A vulnerable application may then make authorization decisions based on key B for which the attacker does not actually control the private key. Since this API is widely misused, as a partial mitigation golang.org/x/crypto@v0.31.0 enforces the property that, when successfully authenticating via public key, the last key passed to ServerConfig.PublicKeyCallback will be the key used to authenticate the connection. PublicKeyCallback will now be called multiple times with the same key, if necessary. Note that the client may still not control the last key passed to PublicKeyCallback if the connection is then authenticated with a different method, such as PasswordCallback, KeyboardInteractiveCallback, or NoClientAuth. Users should be using the Extensions field of the Permissions return value from the various authentication callbacks to record data associated with the authentication attempt instead of referencing external state. Once the connection is established the state corresponding to the successful authentication attempt can be retrieved via the ServerConn.Permissions field. Note that some third-party libraries misuse the Permissions type by sharing it across authentication attempts; users of third-party libraries should refer to the relevant projects for guidance. Fixed in
0.31.0
References Updated Sep 10, 2026 · Source: OSV.dev |
v0.23.0
minor
Dependencies (3)
|
|
v0.22.0
minor
22 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47914
GHSA-f6x5-jh6r-wrfv
GO-2025-4135
Nov 19, 2025
golang.org/x/crypto/ssh/agent vulnerable to panic if message is malformed due to out of bounds read
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH Agent servers do not validate the size of messages when processing new identity requests, which may cause the program to panic if the message is malformed due to an out of bounds read. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-58181
GHSA-j5w8-q4qc-rx2x
GO-2025-4134
Nov 19, 2025
golang.org/x/crypto/ssh allows an attacker to cause unbounded memory consumption
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers parsing GSSAPI authentication requests do not validate the number of mechanisms specified in the request, allowing an attacker to cause unbounded memory consumption. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47913
GO-2025-4116
GHSA-56w8-48fp-6mgv
Nov 13, 2025
Potential denial of service in golang.org/x/crypto/ssh/agent SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process. Fixed in
0.43.0
References Updated May 21, 2026 · Source: OSV.dev
CVE-2025-22869
GHSA-hcg3-q754-cr77
GO-2025-3487
Apr 12, 2025
golang.org/x/crypto Vulnerable to Denial of Service (DoS) via Slow or Incomplete Key Exchange
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SSH servers which implement file transfer protocols are vulnerable to a denial of service attack from clients which complete the key exchange slowly, or not at all, causing pending content to be read into memory, but never transmitted. Fixed in
0.35.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2024-45337
GHSA-v778-237x-gjrc
GO-2024-3321
Dec 11, 2024
Misuse of ServerConfig.PublicKeyCallback may cause authorization bypass in golang.org/x/crypto
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Applications and libraries which misuse the ServerConfig.PublicKeyCallback callback may be susceptible to an authorization bypass. The documentation for ServerConfig.PublicKeyCallback says that "A call to this function does not guarantee that the key offered is in fact used to authenticate." Specifically, the SSH protocol allows clients to inquire about whether a public key is acceptable before proving control of the corresponding private key. PublicKeyCallback may be called with multiple keys, and the order in which the keys were provided cannot be used to infer which key the client successfully authenticated with, if any. Some applications, which store the key(s) passed to PublicKeyCallback (or derived information) and make security relevant determinations based on it once the connection is established, may make incorrect assumptions. For example, an attacker may send public keys A and B, and then authenticate with A. PublicKeyCallback would be called only twice, first with A and then with B. A vulnerable application may then make authorization decisions based on key B for which the attacker does not actually control the private key. Since this API is widely misused, as a partial mitigation golang.org/x/crypto@v0.31.0 enforces the property that, when successfully authenticating via public key, the last key passed to ServerConfig.PublicKeyCallback will be the key used to authenticate the connection. PublicKeyCallback will now be called multiple times with the same key, if necessary. Note that the client may still not control the last key passed to PublicKeyCallback if the connection is then authenticated with a different method, such as PasswordCallback, KeyboardInteractiveCallback, or NoClientAuth. Users should be using the Extensions field of the Permissions return value from the various authentication callbacks to record data associated with the authentication attempt instead of referencing external state. Once the connection is established the state corresponding to the successful authentication attempt can be retrieved via the ServerConn.Permissions field. Note that some third-party libraries misuse the Permissions type by sharing it across authentication attempts; users of third-party libraries should refer to the relevant projects for guidance. Fixed in
0.31.0
References Updated Sep 10, 2026 · Source: OSV.dev |
v0.22.0
minor
Dependencies (3)
|
|
v0.21.0
minor
22 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47914
GHSA-f6x5-jh6r-wrfv
GO-2025-4135
Nov 19, 2025
golang.org/x/crypto/ssh/agent vulnerable to panic if message is malformed due to out of bounds read
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH Agent servers do not validate the size of messages when processing new identity requests, which may cause the program to panic if the message is malformed due to an out of bounds read. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-58181
GHSA-j5w8-q4qc-rx2x
GO-2025-4134
Nov 19, 2025
golang.org/x/crypto/ssh allows an attacker to cause unbounded memory consumption
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers parsing GSSAPI authentication requests do not validate the number of mechanisms specified in the request, allowing an attacker to cause unbounded memory consumption. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47913
GO-2025-4116
GHSA-56w8-48fp-6mgv
Nov 13, 2025
Potential denial of service in golang.org/x/crypto/ssh/agent SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process. Fixed in
0.43.0
References Updated May 21, 2026 · Source: OSV.dev
CVE-2025-22869
GHSA-hcg3-q754-cr77
GO-2025-3487
Apr 12, 2025
golang.org/x/crypto Vulnerable to Denial of Service (DoS) via Slow or Incomplete Key Exchange
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SSH servers which implement file transfer protocols are vulnerable to a denial of service attack from clients which complete the key exchange slowly, or not at all, causing pending content to be read into memory, but never transmitted. Fixed in
0.35.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2024-45337
GHSA-v778-237x-gjrc
GO-2024-3321
Dec 11, 2024
Misuse of ServerConfig.PublicKeyCallback may cause authorization bypass in golang.org/x/crypto
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Applications and libraries which misuse the ServerConfig.PublicKeyCallback callback may be susceptible to an authorization bypass. The documentation for ServerConfig.PublicKeyCallback says that "A call to this function does not guarantee that the key offered is in fact used to authenticate." Specifically, the SSH protocol allows clients to inquire about whether a public key is acceptable before proving control of the corresponding private key. PublicKeyCallback may be called with multiple keys, and the order in which the keys were provided cannot be used to infer which key the client successfully authenticated with, if any. Some applications, which store the key(s) passed to PublicKeyCallback (or derived information) and make security relevant determinations based on it once the connection is established, may make incorrect assumptions. For example, an attacker may send public keys A and B, and then authenticate with A. PublicKeyCallback would be called only twice, first with A and then with B. A vulnerable application may then make authorization decisions based on key B for which the attacker does not actually control the private key. Since this API is widely misused, as a partial mitigation golang.org/x/crypto@v0.31.0 enforces the property that, when successfully authenticating via public key, the last key passed to ServerConfig.PublicKeyCallback will be the key used to authenticate the connection. PublicKeyCallback will now be called multiple times with the same key, if necessary. Note that the client may still not control the last key passed to PublicKeyCallback if the connection is then authenticated with a different method, such as PasswordCallback, KeyboardInteractiveCallback, or NoClientAuth. Users should be using the Extensions field of the Permissions return value from the various authentication callbacks to record data associated with the authentication attempt instead of referencing external state. Once the connection is established the state corresponding to the successful authentication attempt can be retrieved via the ServerConn.Permissions field. Note that some third-party libraries misuse the Permissions type by sharing it across authentication attempts; users of third-party libraries should refer to the relevant projects for guidance. Fixed in
0.31.0
References Updated Sep 10, 2026 · Source: OSV.dev |
v0.21.0
minor
Dependencies (3)
|
|
v0.20.0
minor
22 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47914
GHSA-f6x5-jh6r-wrfv
GO-2025-4135
Nov 19, 2025
golang.org/x/crypto/ssh/agent vulnerable to panic if message is malformed due to out of bounds read
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH Agent servers do not validate the size of messages when processing new identity requests, which may cause the program to panic if the message is malformed due to an out of bounds read. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-58181
GHSA-j5w8-q4qc-rx2x
GO-2025-4134
Nov 19, 2025
golang.org/x/crypto/ssh allows an attacker to cause unbounded memory consumption
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers parsing GSSAPI authentication requests do not validate the number of mechanisms specified in the request, allowing an attacker to cause unbounded memory consumption. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47913
GO-2025-4116
GHSA-56w8-48fp-6mgv
Nov 13, 2025
Potential denial of service in golang.org/x/crypto/ssh/agent SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process. Fixed in
0.43.0
References Updated May 21, 2026 · Source: OSV.dev
CVE-2025-22869
GHSA-hcg3-q754-cr77
GO-2025-3487
Apr 12, 2025
golang.org/x/crypto Vulnerable to Denial of Service (DoS) via Slow or Incomplete Key Exchange
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SSH servers which implement file transfer protocols are vulnerable to a denial of service attack from clients which complete the key exchange slowly, or not at all, causing pending content to be read into memory, but never transmitted. Fixed in
0.35.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2024-45337
GHSA-v778-237x-gjrc
GO-2024-3321
Dec 11, 2024
Misuse of ServerConfig.PublicKeyCallback may cause authorization bypass in golang.org/x/crypto
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Applications and libraries which misuse the ServerConfig.PublicKeyCallback callback may be susceptible to an authorization bypass. The documentation for ServerConfig.PublicKeyCallback says that "A call to this function does not guarantee that the key offered is in fact used to authenticate." Specifically, the SSH protocol allows clients to inquire about whether a public key is acceptable before proving control of the corresponding private key. PublicKeyCallback may be called with multiple keys, and the order in which the keys were provided cannot be used to infer which key the client successfully authenticated with, if any. Some applications, which store the key(s) passed to PublicKeyCallback (or derived information) and make security relevant determinations based on it once the connection is established, may make incorrect assumptions. For example, an attacker may send public keys A and B, and then authenticate with A. PublicKeyCallback would be called only twice, first with A and then with B. A vulnerable application may then make authorization decisions based on key B for which the attacker does not actually control the private key. Since this API is widely misused, as a partial mitigation golang.org/x/crypto@v0.31.0 enforces the property that, when successfully authenticating via public key, the last key passed to ServerConfig.PublicKeyCallback will be the key used to authenticate the connection. PublicKeyCallback will now be called multiple times with the same key, if necessary. Note that the client may still not control the last key passed to PublicKeyCallback if the connection is then authenticated with a different method, such as PasswordCallback, KeyboardInteractiveCallback, or NoClientAuth. Users should be using the Extensions field of the Permissions return value from the various authentication callbacks to record data associated with the authentication attempt instead of referencing external state. Once the connection is established the state corresponding to the successful authentication attempt can be retrieved via the ServerConn.Permissions field. Note that some third-party libraries misuse the Permissions type by sharing it across authentication attempts; users of third-party libraries should refer to the relevant projects for guidance. Fixed in
0.31.0
References Updated Sep 10, 2026 · Source: OSV.dev |
v0.20.0
minor
Dependencies (3)
|
|
v0.19.0
minor
22 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47914
GHSA-f6x5-jh6r-wrfv
GO-2025-4135
Nov 19, 2025
golang.org/x/crypto/ssh/agent vulnerable to panic if message is malformed due to out of bounds read
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH Agent servers do not validate the size of messages when processing new identity requests, which may cause the program to panic if the message is malformed due to an out of bounds read. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-58181
GHSA-j5w8-q4qc-rx2x
GO-2025-4134
Nov 19, 2025
golang.org/x/crypto/ssh allows an attacker to cause unbounded memory consumption
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers parsing GSSAPI authentication requests do not validate the number of mechanisms specified in the request, allowing an attacker to cause unbounded memory consumption. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47913
GO-2025-4116
GHSA-56w8-48fp-6mgv
Nov 13, 2025
Potential denial of service in golang.org/x/crypto/ssh/agent SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process. Fixed in
0.43.0
References Updated May 21, 2026 · Source: OSV.dev
CVE-2025-22869
GHSA-hcg3-q754-cr77
GO-2025-3487
Apr 12, 2025
golang.org/x/crypto Vulnerable to Denial of Service (DoS) via Slow or Incomplete Key Exchange
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SSH servers which implement file transfer protocols are vulnerable to a denial of service attack from clients which complete the key exchange slowly, or not at all, causing pending content to be read into memory, but never transmitted. Fixed in
0.35.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2024-45337
GHSA-v778-237x-gjrc
GO-2024-3321
Dec 11, 2024
Misuse of ServerConfig.PublicKeyCallback may cause authorization bypass in golang.org/x/crypto
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Applications and libraries which misuse the ServerConfig.PublicKeyCallback callback may be susceptible to an authorization bypass. The documentation for ServerConfig.PublicKeyCallback says that "A call to this function does not guarantee that the key offered is in fact used to authenticate." Specifically, the SSH protocol allows clients to inquire about whether a public key is acceptable before proving control of the corresponding private key. PublicKeyCallback may be called with multiple keys, and the order in which the keys were provided cannot be used to infer which key the client successfully authenticated with, if any. Some applications, which store the key(s) passed to PublicKeyCallback (or derived information) and make security relevant determinations based on it once the connection is established, may make incorrect assumptions. For example, an attacker may send public keys A and B, and then authenticate with A. PublicKeyCallback would be called only twice, first with A and then with B. A vulnerable application may then make authorization decisions based on key B for which the attacker does not actually control the private key. Since this API is widely misused, as a partial mitigation golang.org/x/crypto@v0.31.0 enforces the property that, when successfully authenticating via public key, the last key passed to ServerConfig.PublicKeyCallback will be the key used to authenticate the connection. PublicKeyCallback will now be called multiple times with the same key, if necessary. Note that the client may still not control the last key passed to PublicKeyCallback if the connection is then authenticated with a different method, such as PasswordCallback, KeyboardInteractiveCallback, or NoClientAuth. Users should be using the Extensions field of the Permissions return value from the various authentication callbacks to record data associated with the authentication attempt instead of referencing external state. Once the connection is established the state corresponding to the successful authentication attempt can be retrieved via the ServerConn.Permissions field. Note that some third-party libraries misuse the Permissions type by sharing it across authentication attempts; users of third-party libraries should refer to the relevant projects for guidance. Fixed in
0.31.0
References Updated Sep 10, 2026 · Source: OSV.dev |
v0.19.0
minor
Dependencies (3)
|
|
v0.18.0
minor
22 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47914
GHSA-f6x5-jh6r-wrfv
GO-2025-4135
Nov 19, 2025
golang.org/x/crypto/ssh/agent vulnerable to panic if message is malformed due to out of bounds read
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH Agent servers do not validate the size of messages when processing new identity requests, which may cause the program to panic if the message is malformed due to an out of bounds read. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-58181
GHSA-j5w8-q4qc-rx2x
GO-2025-4134
Nov 19, 2025
golang.org/x/crypto/ssh allows an attacker to cause unbounded memory consumption
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers parsing GSSAPI authentication requests do not validate the number of mechanisms specified in the request, allowing an attacker to cause unbounded memory consumption. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47913
GO-2025-4116
GHSA-56w8-48fp-6mgv
Nov 13, 2025
Potential denial of service in golang.org/x/crypto/ssh/agent SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process. Fixed in
0.43.0
References Updated May 21, 2026 · Source: OSV.dev
CVE-2025-22869
GHSA-hcg3-q754-cr77
GO-2025-3487
Apr 12, 2025
golang.org/x/crypto Vulnerable to Denial of Service (DoS) via Slow or Incomplete Key Exchange
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SSH servers which implement file transfer protocols are vulnerable to a denial of service attack from clients which complete the key exchange slowly, or not at all, causing pending content to be read into memory, but never transmitted. Fixed in
0.35.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2024-45337
GHSA-v778-237x-gjrc
GO-2024-3321
Dec 11, 2024
Misuse of ServerConfig.PublicKeyCallback may cause authorization bypass in golang.org/x/crypto
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Applications and libraries which misuse the ServerConfig.PublicKeyCallback callback may be susceptible to an authorization bypass. The documentation for ServerConfig.PublicKeyCallback says that "A call to this function does not guarantee that the key offered is in fact used to authenticate." Specifically, the SSH protocol allows clients to inquire about whether a public key is acceptable before proving control of the corresponding private key. PublicKeyCallback may be called with multiple keys, and the order in which the keys were provided cannot be used to infer which key the client successfully authenticated with, if any. Some applications, which store the key(s) passed to PublicKeyCallback (or derived information) and make security relevant determinations based on it once the connection is established, may make incorrect assumptions. For example, an attacker may send public keys A and B, and then authenticate with A. PublicKeyCallback would be called only twice, first with A and then with B. A vulnerable application may then make authorization decisions based on key B for which the attacker does not actually control the private key. Since this API is widely misused, as a partial mitigation golang.org/x/crypto@v0.31.0 enforces the property that, when successfully authenticating via public key, the last key passed to ServerConfig.PublicKeyCallback will be the key used to authenticate the connection. PublicKeyCallback will now be called multiple times with the same key, if necessary. Note that the client may still not control the last key passed to PublicKeyCallback if the connection is then authenticated with a different method, such as PasswordCallback, KeyboardInteractiveCallback, or NoClientAuth. Users should be using the Extensions field of the Permissions return value from the various authentication callbacks to record data associated with the authentication attempt instead of referencing external state. Once the connection is established the state corresponding to the successful authentication attempt can be retrieved via the ServerConn.Permissions field. Note that some third-party libraries misuse the Permissions type by sharing it across authentication attempts; users of third-party libraries should refer to the relevant projects for guidance. Fixed in
0.31.0
References Updated Sep 10, 2026 · Source: OSV.dev |
v0.18.0
minor
Dependencies (3)
|
|
v0.17.0
minor
22 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47914
GHSA-f6x5-jh6r-wrfv
GO-2025-4135
Nov 19, 2025
golang.org/x/crypto/ssh/agent vulnerable to panic if message is malformed due to out of bounds read
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH Agent servers do not validate the size of messages when processing new identity requests, which may cause the program to panic if the message is malformed due to an out of bounds read. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-58181
GHSA-j5w8-q4qc-rx2x
GO-2025-4134
Nov 19, 2025
golang.org/x/crypto/ssh allows an attacker to cause unbounded memory consumption
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers parsing GSSAPI authentication requests do not validate the number of mechanisms specified in the request, allowing an attacker to cause unbounded memory consumption. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47913
GO-2025-4116
GHSA-56w8-48fp-6mgv
Nov 13, 2025
Potential denial of service in golang.org/x/crypto/ssh/agent SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process. Fixed in
0.43.0
References Updated May 21, 2026 · Source: OSV.dev
CVE-2025-22869
GHSA-hcg3-q754-cr77
GO-2025-3487
Apr 12, 2025
golang.org/x/crypto Vulnerable to Denial of Service (DoS) via Slow or Incomplete Key Exchange
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SSH servers which implement file transfer protocols are vulnerable to a denial of service attack from clients which complete the key exchange slowly, or not at all, causing pending content to be read into memory, but never transmitted. Fixed in
0.35.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2024-45337
GHSA-v778-237x-gjrc
GO-2024-3321
Dec 11, 2024
Misuse of ServerConfig.PublicKeyCallback may cause authorization bypass in golang.org/x/crypto
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Applications and libraries which misuse the ServerConfig.PublicKeyCallback callback may be susceptible to an authorization bypass. The documentation for ServerConfig.PublicKeyCallback says that "A call to this function does not guarantee that the key offered is in fact used to authenticate." Specifically, the SSH protocol allows clients to inquire about whether a public key is acceptable before proving control of the corresponding private key. PublicKeyCallback may be called with multiple keys, and the order in which the keys were provided cannot be used to infer which key the client successfully authenticated with, if any. Some applications, which store the key(s) passed to PublicKeyCallback (or derived information) and make security relevant determinations based on it once the connection is established, may make incorrect assumptions. For example, an attacker may send public keys A and B, and then authenticate with A. PublicKeyCallback would be called only twice, first with A and then with B. A vulnerable application may then make authorization decisions based on key B for which the attacker does not actually control the private key. Since this API is widely misused, as a partial mitigation golang.org/x/crypto@v0.31.0 enforces the property that, when successfully authenticating via public key, the last key passed to ServerConfig.PublicKeyCallback will be the key used to authenticate the connection. PublicKeyCallback will now be called multiple times with the same key, if necessary. Note that the client may still not control the last key passed to PublicKeyCallback if the connection is then authenticated with a different method, such as PasswordCallback, KeyboardInteractiveCallback, or NoClientAuth. Users should be using the Extensions field of the Permissions return value from the various authentication callbacks to record data associated with the authentication attempt instead of referencing external state. Once the connection is established the state corresponding to the successful authentication attempt can be retrieved via the ServerConn.Permissions field. Note that some third-party libraries misuse the Permissions type by sharing it across authentication attempts; users of third-party libraries should refer to the relevant projects for guidance. Fixed in
0.31.0
References Updated Sep 10, 2026 · Source: OSV.dev |
v0.17.0
minor
Dependencies (3)
|
|
v0.16.0
minor
23 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47914
GHSA-f6x5-jh6r-wrfv
GO-2025-4135
Nov 19, 2025
golang.org/x/crypto/ssh/agent vulnerable to panic if message is malformed due to out of bounds read
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH Agent servers do not validate the size of messages when processing new identity requests, which may cause the program to panic if the message is malformed due to an out of bounds read. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-58181
GHSA-j5w8-q4qc-rx2x
GO-2025-4134
Nov 19, 2025
golang.org/x/crypto/ssh allows an attacker to cause unbounded memory consumption
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers parsing GSSAPI authentication requests do not validate the number of mechanisms specified in the request, allowing an attacker to cause unbounded memory consumption. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47913
GO-2025-4116
GHSA-56w8-48fp-6mgv
Nov 13, 2025
Potential denial of service in golang.org/x/crypto/ssh/agent SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process. Fixed in
0.43.0
References Updated May 21, 2026 · Source: OSV.dev
CVE-2025-22869
GHSA-hcg3-q754-cr77
GO-2025-3487
Apr 12, 2025
golang.org/x/crypto Vulnerable to Denial of Service (DoS) via Slow or Incomplete Key Exchange
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SSH servers which implement file transfer protocols are vulnerable to a denial of service attack from clients which complete the key exchange slowly, or not at all, causing pending content to be read into memory, but never transmitted. Fixed in
0.35.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2024-45337
GHSA-v778-237x-gjrc
GO-2024-3321
Dec 11, 2024
Misuse of ServerConfig.PublicKeyCallback may cause authorization bypass in golang.org/x/crypto
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Applications and libraries which misuse the ServerConfig.PublicKeyCallback callback may be susceptible to an authorization bypass. The documentation for ServerConfig.PublicKeyCallback says that "A call to this function does not guarantee that the key offered is in fact used to authenticate." Specifically, the SSH protocol allows clients to inquire about whether a public key is acceptable before proving control of the corresponding private key. PublicKeyCallback may be called with multiple keys, and the order in which the keys were provided cannot be used to infer which key the client successfully authenticated with, if any. Some applications, which store the key(s) passed to PublicKeyCallback (or derived information) and make security relevant determinations based on it once the connection is established, may make incorrect assumptions. For example, an attacker may send public keys A and B, and then authenticate with A. PublicKeyCallback would be called only twice, first with A and then with B. A vulnerable application may then make authorization decisions based on key B for which the attacker does not actually control the private key. Since this API is widely misused, as a partial mitigation golang.org/x/crypto@v0.31.0 enforces the property that, when successfully authenticating via public key, the last key passed to ServerConfig.PublicKeyCallback will be the key used to authenticate the connection. PublicKeyCallback will now be called multiple times with the same key, if necessary. Note that the client may still not control the last key passed to PublicKeyCallback if the connection is then authenticated with a different method, such as PasswordCallback, KeyboardInteractiveCallback, or NoClientAuth. Users should be using the Extensions field of the Permissions return value from the various authentication callbacks to record data associated with the authentication attempt instead of referencing external state. Once the connection is established the state corresponding to the successful authentication attempt can be retrieved via the ServerConn.Permissions field. Note that some third-party libraries misuse the Permissions type by sharing it across authentication attempts; users of third-party libraries should refer to the relevant projects for guidance. Fixed in
0.31.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2023-48795
GO-2023-2402
GHSA-45x7-px36-x8w8
PYSEC-2026-1758
Dec 18, 2023
Man-in-the-middle attacker can compromise integrity of secure channel in golang.org/x/crypto A protocol weakness allows a MITM attacker to compromise the integrity of the secure channel before it is established, allowing the attacker to prevent transmission of a number of messages immediately after the secure channel is established without either side being aware. The impact of this attack is relatively limited, as it does not compromise confidentiality of the channel. Notably this attack would allow an attacker to prevent the transmission of the SSH2_MSG_EXT_INFO message, disabling a handful of newer security features. This protocol weakness was also fixed in OpenSSH 9.6. Fixed in
0.17.0
References Updated Jul 07, 2026 · Source: OSV.dev |
v0.16.0
minor
Dependencies (3)
|
|
v0.14.0
minor
23 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47914
GHSA-f6x5-jh6r-wrfv
GO-2025-4135
Nov 19, 2025
golang.org/x/crypto/ssh/agent vulnerable to panic if message is malformed due to out of bounds read
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH Agent servers do not validate the size of messages when processing new identity requests, which may cause the program to panic if the message is malformed due to an out of bounds read. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-58181
GHSA-j5w8-q4qc-rx2x
GO-2025-4134
Nov 19, 2025
golang.org/x/crypto/ssh allows an attacker to cause unbounded memory consumption
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers parsing GSSAPI authentication requests do not validate the number of mechanisms specified in the request, allowing an attacker to cause unbounded memory consumption. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47913
GO-2025-4116
GHSA-56w8-48fp-6mgv
Nov 13, 2025
Potential denial of service in golang.org/x/crypto/ssh/agent SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process. Fixed in
0.43.0
References Updated May 21, 2026 · Source: OSV.dev
CVE-2025-22869
GHSA-hcg3-q754-cr77
GO-2025-3487
Apr 12, 2025
golang.org/x/crypto Vulnerable to Denial of Service (DoS) via Slow or Incomplete Key Exchange
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SSH servers which implement file transfer protocols are vulnerable to a denial of service attack from clients which complete the key exchange slowly, or not at all, causing pending content to be read into memory, but never transmitted. Fixed in
0.35.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2024-45337
GHSA-v778-237x-gjrc
GO-2024-3321
Dec 11, 2024
Misuse of ServerConfig.PublicKeyCallback may cause authorization bypass in golang.org/x/crypto
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Applications and libraries which misuse the ServerConfig.PublicKeyCallback callback may be susceptible to an authorization bypass. The documentation for ServerConfig.PublicKeyCallback says that "A call to this function does not guarantee that the key offered is in fact used to authenticate." Specifically, the SSH protocol allows clients to inquire about whether a public key is acceptable before proving control of the corresponding private key. PublicKeyCallback may be called with multiple keys, and the order in which the keys were provided cannot be used to infer which key the client successfully authenticated with, if any. Some applications, which store the key(s) passed to PublicKeyCallback (or derived information) and make security relevant determinations based on it once the connection is established, may make incorrect assumptions. For example, an attacker may send public keys A and B, and then authenticate with A. PublicKeyCallback would be called only twice, first with A and then with B. A vulnerable application may then make authorization decisions based on key B for which the attacker does not actually control the private key. Since this API is widely misused, as a partial mitigation golang.org/x/crypto@v0.31.0 enforces the property that, when successfully authenticating via public key, the last key passed to ServerConfig.PublicKeyCallback will be the key used to authenticate the connection. PublicKeyCallback will now be called multiple times with the same key, if necessary. Note that the client may still not control the last key passed to PublicKeyCallback if the connection is then authenticated with a different method, such as PasswordCallback, KeyboardInteractiveCallback, or NoClientAuth. Users should be using the Extensions field of the Permissions return value from the various authentication callbacks to record data associated with the authentication attempt instead of referencing external state. Once the connection is established the state corresponding to the successful authentication attempt can be retrieved via the ServerConn.Permissions field. Note that some third-party libraries misuse the Permissions type by sharing it across authentication attempts; users of third-party libraries should refer to the relevant projects for guidance. Fixed in
0.31.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2023-48795
GO-2023-2402
GHSA-45x7-px36-x8w8
PYSEC-2026-1758
Dec 18, 2023
Man-in-the-middle attacker can compromise integrity of secure channel in golang.org/x/crypto A protocol weakness allows a MITM attacker to compromise the integrity of the secure channel before it is established, allowing the attacker to prevent transmission of a number of messages immediately after the secure channel is established without either side being aware. The impact of this attack is relatively limited, as it does not compromise confidentiality of the channel. Notably this attack would allow an attacker to prevent the transmission of the SSH2_MSG_EXT_INFO message, disabling a handful of newer security features. This protocol weakness was also fixed in OpenSSH 9.6. Fixed in
0.17.0
References Updated Jul 07, 2026 · Source: OSV.dev |
v0.14.0
minor
Dependencies (3)
|
|
v0.13.0
minor
23 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47914
GHSA-f6x5-jh6r-wrfv
GO-2025-4135
Nov 19, 2025
golang.org/x/crypto/ssh/agent vulnerable to panic if message is malformed due to out of bounds read
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH Agent servers do not validate the size of messages when processing new identity requests, which may cause the program to panic if the message is malformed due to an out of bounds read. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-58181
GHSA-j5w8-q4qc-rx2x
GO-2025-4134
Nov 19, 2025
golang.org/x/crypto/ssh allows an attacker to cause unbounded memory consumption
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers parsing GSSAPI authentication requests do not validate the number of mechanisms specified in the request, allowing an attacker to cause unbounded memory consumption. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47913
GO-2025-4116
GHSA-56w8-48fp-6mgv
Nov 13, 2025
Potential denial of service in golang.org/x/crypto/ssh/agent SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process. Fixed in
0.43.0
References Updated May 21, 2026 · Source: OSV.dev
CVE-2025-22869
GHSA-hcg3-q754-cr77
GO-2025-3487
Apr 12, 2025
golang.org/x/crypto Vulnerable to Denial of Service (DoS) via Slow or Incomplete Key Exchange
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SSH servers which implement file transfer protocols are vulnerable to a denial of service attack from clients which complete the key exchange slowly, or not at all, causing pending content to be read into memory, but never transmitted. Fixed in
0.35.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2024-45337
GHSA-v778-237x-gjrc
GO-2024-3321
Dec 11, 2024
Misuse of ServerConfig.PublicKeyCallback may cause authorization bypass in golang.org/x/crypto
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Applications and libraries which misuse the ServerConfig.PublicKeyCallback callback may be susceptible to an authorization bypass. The documentation for ServerConfig.PublicKeyCallback says that "A call to this function does not guarantee that the key offered is in fact used to authenticate." Specifically, the SSH protocol allows clients to inquire about whether a public key is acceptable before proving control of the corresponding private key. PublicKeyCallback may be called with multiple keys, and the order in which the keys were provided cannot be used to infer which key the client successfully authenticated with, if any. Some applications, which store the key(s) passed to PublicKeyCallback (or derived information) and make security relevant determinations based on it once the connection is established, may make incorrect assumptions. For example, an attacker may send public keys A and B, and then authenticate with A. PublicKeyCallback would be called only twice, first with A and then with B. A vulnerable application may then make authorization decisions based on key B for which the attacker does not actually control the private key. Since this API is widely misused, as a partial mitigation golang.org/x/crypto@v0.31.0 enforces the property that, when successfully authenticating via public key, the last key passed to ServerConfig.PublicKeyCallback will be the key used to authenticate the connection. PublicKeyCallback will now be called multiple times with the same key, if necessary. Note that the client may still not control the last key passed to PublicKeyCallback if the connection is then authenticated with a different method, such as PasswordCallback, KeyboardInteractiveCallback, or NoClientAuth. Users should be using the Extensions field of the Permissions return value from the various authentication callbacks to record data associated with the authentication attempt instead of referencing external state. Once the connection is established the state corresponding to the successful authentication attempt can be retrieved via the ServerConn.Permissions field. Note that some third-party libraries misuse the Permissions type by sharing it across authentication attempts; users of third-party libraries should refer to the relevant projects for guidance. Fixed in
0.31.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2023-48795
GO-2023-2402
GHSA-45x7-px36-x8w8
PYSEC-2026-1758
Dec 18, 2023
Man-in-the-middle attacker can compromise integrity of secure channel in golang.org/x/crypto A protocol weakness allows a MITM attacker to compromise the integrity of the secure channel before it is established, allowing the attacker to prevent transmission of a number of messages immediately after the secure channel is established without either side being aware. The impact of this attack is relatively limited, as it does not compromise confidentiality of the channel. Notably this attack would allow an attacker to prevent the transmission of the SSH2_MSG_EXT_INFO message, disabling a handful of newer security features. This protocol weakness was also fixed in OpenSSH 9.6. Fixed in
0.17.0
References Updated Jul 07, 2026 · Source: OSV.dev |
v0.13.0
minor
Dependencies (3)
|
|
v0.12.0
minor
23 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47914
GHSA-f6x5-jh6r-wrfv
GO-2025-4135
Nov 19, 2025
golang.org/x/crypto/ssh/agent vulnerable to panic if message is malformed due to out of bounds read
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH Agent servers do not validate the size of messages when processing new identity requests, which may cause the program to panic if the message is malformed due to an out of bounds read. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-58181
GHSA-j5w8-q4qc-rx2x
GO-2025-4134
Nov 19, 2025
golang.org/x/crypto/ssh allows an attacker to cause unbounded memory consumption
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers parsing GSSAPI authentication requests do not validate the number of mechanisms specified in the request, allowing an attacker to cause unbounded memory consumption. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47913
GO-2025-4116
GHSA-56w8-48fp-6mgv
Nov 13, 2025
Potential denial of service in golang.org/x/crypto/ssh/agent SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process. Fixed in
0.43.0
References Updated May 21, 2026 · Source: OSV.dev
CVE-2025-22869
GHSA-hcg3-q754-cr77
GO-2025-3487
Apr 12, 2025
golang.org/x/crypto Vulnerable to Denial of Service (DoS) via Slow or Incomplete Key Exchange
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SSH servers which implement file transfer protocols are vulnerable to a denial of service attack from clients which complete the key exchange slowly, or not at all, causing pending content to be read into memory, but never transmitted. Fixed in
0.35.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2024-45337
GHSA-v778-237x-gjrc
GO-2024-3321
Dec 11, 2024
Misuse of ServerConfig.PublicKeyCallback may cause authorization bypass in golang.org/x/crypto
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Applications and libraries which misuse the ServerConfig.PublicKeyCallback callback may be susceptible to an authorization bypass. The documentation for ServerConfig.PublicKeyCallback says that "A call to this function does not guarantee that the key offered is in fact used to authenticate." Specifically, the SSH protocol allows clients to inquire about whether a public key is acceptable before proving control of the corresponding private key. PublicKeyCallback may be called with multiple keys, and the order in which the keys were provided cannot be used to infer which key the client successfully authenticated with, if any. Some applications, which store the key(s) passed to PublicKeyCallback (or derived information) and make security relevant determinations based on it once the connection is established, may make incorrect assumptions. For example, an attacker may send public keys A and B, and then authenticate with A. PublicKeyCallback would be called only twice, first with A and then with B. A vulnerable application may then make authorization decisions based on key B for which the attacker does not actually control the private key. Since this API is widely misused, as a partial mitigation golang.org/x/crypto@v0.31.0 enforces the property that, when successfully authenticating via public key, the last key passed to ServerConfig.PublicKeyCallback will be the key used to authenticate the connection. PublicKeyCallback will now be called multiple times with the same key, if necessary. Note that the client may still not control the last key passed to PublicKeyCallback if the connection is then authenticated with a different method, such as PasswordCallback, KeyboardInteractiveCallback, or NoClientAuth. Users should be using the Extensions field of the Permissions return value from the various authentication callbacks to record data associated with the authentication attempt instead of referencing external state. Once the connection is established the state corresponding to the successful authentication attempt can be retrieved via the ServerConn.Permissions field. Note that some third-party libraries misuse the Permissions type by sharing it across authentication attempts; users of third-party libraries should refer to the relevant projects for guidance. Fixed in
0.31.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2023-48795
GO-2023-2402
GHSA-45x7-px36-x8w8
PYSEC-2026-1758
Dec 18, 2023
Man-in-the-middle attacker can compromise integrity of secure channel in golang.org/x/crypto A protocol weakness allows a MITM attacker to compromise the integrity of the secure channel before it is established, allowing the attacker to prevent transmission of a number of messages immediately after the secure channel is established without either side being aware. The impact of this attack is relatively limited, as it does not compromise confidentiality of the channel. Notably this attack would allow an attacker to prevent the transmission of the SSH2_MSG_EXT_INFO message, disabling a handful of newer security features. This protocol weakness was also fixed in OpenSSH 9.6. Fixed in
0.17.0
References Updated Jul 07, 2026 · Source: OSV.dev |
v0.12.0
minor
Dependencies (3)
|
|
v0.11.0
minor
23 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47914
GHSA-f6x5-jh6r-wrfv
GO-2025-4135
Nov 19, 2025
golang.org/x/crypto/ssh/agent vulnerable to panic if message is malformed due to out of bounds read
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH Agent servers do not validate the size of messages when processing new identity requests, which may cause the program to panic if the message is malformed due to an out of bounds read. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-58181
GHSA-j5w8-q4qc-rx2x
GO-2025-4134
Nov 19, 2025
golang.org/x/crypto/ssh allows an attacker to cause unbounded memory consumption
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers parsing GSSAPI authentication requests do not validate the number of mechanisms specified in the request, allowing an attacker to cause unbounded memory consumption. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47913
GO-2025-4116
GHSA-56w8-48fp-6mgv
Nov 13, 2025
Potential denial of service in golang.org/x/crypto/ssh/agent SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process. Fixed in
0.43.0
References Updated May 21, 2026 · Source: OSV.dev
CVE-2025-22869
GHSA-hcg3-q754-cr77
GO-2025-3487
Apr 12, 2025
golang.org/x/crypto Vulnerable to Denial of Service (DoS) via Slow or Incomplete Key Exchange
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SSH servers which implement file transfer protocols are vulnerable to a denial of service attack from clients which complete the key exchange slowly, or not at all, causing pending content to be read into memory, but never transmitted. Fixed in
0.35.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2024-45337
GHSA-v778-237x-gjrc
GO-2024-3321
Dec 11, 2024
Misuse of ServerConfig.PublicKeyCallback may cause authorization bypass in golang.org/x/crypto
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Applications and libraries which misuse the ServerConfig.PublicKeyCallback callback may be susceptible to an authorization bypass. The documentation for ServerConfig.PublicKeyCallback says that "A call to this function does not guarantee that the key offered is in fact used to authenticate." Specifically, the SSH protocol allows clients to inquire about whether a public key is acceptable before proving control of the corresponding private key. PublicKeyCallback may be called with multiple keys, and the order in which the keys were provided cannot be used to infer which key the client successfully authenticated with, if any. Some applications, which store the key(s) passed to PublicKeyCallback (or derived information) and make security relevant determinations based on it once the connection is established, may make incorrect assumptions. For example, an attacker may send public keys A and B, and then authenticate with A. PublicKeyCallback would be called only twice, first with A and then with B. A vulnerable application may then make authorization decisions based on key B for which the attacker does not actually control the private key. Since this API is widely misused, as a partial mitigation golang.org/x/crypto@v0.31.0 enforces the property that, when successfully authenticating via public key, the last key passed to ServerConfig.PublicKeyCallback will be the key used to authenticate the connection. PublicKeyCallback will now be called multiple times with the same key, if necessary. Note that the client may still not control the last key passed to PublicKeyCallback if the connection is then authenticated with a different method, such as PasswordCallback, KeyboardInteractiveCallback, or NoClientAuth. Users should be using the Extensions field of the Permissions return value from the various authentication callbacks to record data associated with the authentication attempt instead of referencing external state. Once the connection is established the state corresponding to the successful authentication attempt can be retrieved via the ServerConn.Permissions field. Note that some third-party libraries misuse the Permissions type by sharing it across authentication attempts; users of third-party libraries should refer to the relevant projects for guidance. Fixed in
0.31.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2023-48795
GO-2023-2402
GHSA-45x7-px36-x8w8
PYSEC-2026-1758
Dec 18, 2023
Man-in-the-middle attacker can compromise integrity of secure channel in golang.org/x/crypto A protocol weakness allows a MITM attacker to compromise the integrity of the secure channel before it is established, allowing the attacker to prevent transmission of a number of messages immediately after the secure channel is established without either side being aware. The impact of this attack is relatively limited, as it does not compromise confidentiality of the channel. Notably this attack would allow an attacker to prevent the transmission of the SSH2_MSG_EXT_INFO message, disabling a handful of newer security features. This protocol weakness was also fixed in OpenSSH 9.6. Fixed in
0.17.0
References Updated Jul 07, 2026 · Source: OSV.dev |
v0.11.0
minor
Dependencies (3)
|
|
v0.10.0
minor
23 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47914
GHSA-f6x5-jh6r-wrfv
GO-2025-4135
Nov 19, 2025
golang.org/x/crypto/ssh/agent vulnerable to panic if message is malformed due to out of bounds read
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH Agent servers do not validate the size of messages when processing new identity requests, which may cause the program to panic if the message is malformed due to an out of bounds read. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-58181
GHSA-j5w8-q4qc-rx2x
GO-2025-4134
Nov 19, 2025
golang.org/x/crypto/ssh allows an attacker to cause unbounded memory consumption
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers parsing GSSAPI authentication requests do not validate the number of mechanisms specified in the request, allowing an attacker to cause unbounded memory consumption. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47913
GO-2025-4116
GHSA-56w8-48fp-6mgv
Nov 13, 2025
Potential denial of service in golang.org/x/crypto/ssh/agent SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process. Fixed in
0.43.0
References Updated May 21, 2026 · Source: OSV.dev
CVE-2025-22869
GHSA-hcg3-q754-cr77
GO-2025-3487
Apr 12, 2025
golang.org/x/crypto Vulnerable to Denial of Service (DoS) via Slow or Incomplete Key Exchange
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SSH servers which implement file transfer protocols are vulnerable to a denial of service attack from clients which complete the key exchange slowly, or not at all, causing pending content to be read into memory, but never transmitted. Fixed in
0.35.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2024-45337
GHSA-v778-237x-gjrc
GO-2024-3321
Dec 11, 2024
Misuse of ServerConfig.PublicKeyCallback may cause authorization bypass in golang.org/x/crypto
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Applications and libraries which misuse the ServerConfig.PublicKeyCallback callback may be susceptible to an authorization bypass. The documentation for ServerConfig.PublicKeyCallback says that "A call to this function does not guarantee that the key offered is in fact used to authenticate." Specifically, the SSH protocol allows clients to inquire about whether a public key is acceptable before proving control of the corresponding private key. PublicKeyCallback may be called with multiple keys, and the order in which the keys were provided cannot be used to infer which key the client successfully authenticated with, if any. Some applications, which store the key(s) passed to PublicKeyCallback (or derived information) and make security relevant determinations based on it once the connection is established, may make incorrect assumptions. For example, an attacker may send public keys A and B, and then authenticate with A. PublicKeyCallback would be called only twice, first with A and then with B. A vulnerable application may then make authorization decisions based on key B for which the attacker does not actually control the private key. Since this API is widely misused, as a partial mitigation golang.org/x/crypto@v0.31.0 enforces the property that, when successfully authenticating via public key, the last key passed to ServerConfig.PublicKeyCallback will be the key used to authenticate the connection. PublicKeyCallback will now be called multiple times with the same key, if necessary. Note that the client may still not control the last key passed to PublicKeyCallback if the connection is then authenticated with a different method, such as PasswordCallback, KeyboardInteractiveCallback, or NoClientAuth. Users should be using the Extensions field of the Permissions return value from the various authentication callbacks to record data associated with the authentication attempt instead of referencing external state. Once the connection is established the state corresponding to the successful authentication attempt can be retrieved via the ServerConn.Permissions field. Note that some third-party libraries misuse the Permissions type by sharing it across authentication attempts; users of third-party libraries should refer to the relevant projects for guidance. Fixed in
0.31.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2023-48795
GO-2023-2402
GHSA-45x7-px36-x8w8
PYSEC-2026-1758
Dec 18, 2023
Man-in-the-middle attacker can compromise integrity of secure channel in golang.org/x/crypto A protocol weakness allows a MITM attacker to compromise the integrity of the secure channel before it is established, allowing the attacker to prevent transmission of a number of messages immediately after the secure channel is established without either side being aware. The impact of this attack is relatively limited, as it does not compromise confidentiality of the channel. Notably this attack would allow an attacker to prevent the transmission of the SSH2_MSG_EXT_INFO message, disabling a handful of newer security features. This protocol weakness was also fixed in OpenSSH 9.6. Fixed in
0.17.0
References Updated Jul 07, 2026 · Source: OSV.dev |
v0.10.0
minor
Dependencies (3)
|
|
v0.9.0
minor
23 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47914
GHSA-f6x5-jh6r-wrfv
GO-2025-4135
Nov 19, 2025
golang.org/x/crypto/ssh/agent vulnerable to panic if message is malformed due to out of bounds read
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH Agent servers do not validate the size of messages when processing new identity requests, which may cause the program to panic if the message is malformed due to an out of bounds read. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-58181
GHSA-j5w8-q4qc-rx2x
GO-2025-4134
Nov 19, 2025
golang.org/x/crypto/ssh allows an attacker to cause unbounded memory consumption
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers parsing GSSAPI authentication requests do not validate the number of mechanisms specified in the request, allowing an attacker to cause unbounded memory consumption. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47913
GO-2025-4116
GHSA-56w8-48fp-6mgv
Nov 13, 2025
Potential denial of service in golang.org/x/crypto/ssh/agent SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process. Fixed in
0.43.0
References Updated May 21, 2026 · Source: OSV.dev
CVE-2025-22869
GHSA-hcg3-q754-cr77
GO-2025-3487
Apr 12, 2025
golang.org/x/crypto Vulnerable to Denial of Service (DoS) via Slow or Incomplete Key Exchange
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SSH servers which implement file transfer protocols are vulnerable to a denial of service attack from clients which complete the key exchange slowly, or not at all, causing pending content to be read into memory, but never transmitted. Fixed in
0.35.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2024-45337
GHSA-v778-237x-gjrc
GO-2024-3321
Dec 11, 2024
Misuse of ServerConfig.PublicKeyCallback may cause authorization bypass in golang.org/x/crypto
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Applications and libraries which misuse the ServerConfig.PublicKeyCallback callback may be susceptible to an authorization bypass. The documentation for ServerConfig.PublicKeyCallback says that "A call to this function does not guarantee that the key offered is in fact used to authenticate." Specifically, the SSH protocol allows clients to inquire about whether a public key is acceptable before proving control of the corresponding private key. PublicKeyCallback may be called with multiple keys, and the order in which the keys were provided cannot be used to infer which key the client successfully authenticated with, if any. Some applications, which store the key(s) passed to PublicKeyCallback (or derived information) and make security relevant determinations based on it once the connection is established, may make incorrect assumptions. For example, an attacker may send public keys A and B, and then authenticate with A. PublicKeyCallback would be called only twice, first with A and then with B. A vulnerable application may then make authorization decisions based on key B for which the attacker does not actually control the private key. Since this API is widely misused, as a partial mitigation golang.org/x/crypto@v0.31.0 enforces the property that, when successfully authenticating via public key, the last key passed to ServerConfig.PublicKeyCallback will be the key used to authenticate the connection. PublicKeyCallback will now be called multiple times with the same key, if necessary. Note that the client may still not control the last key passed to PublicKeyCallback if the connection is then authenticated with a different method, such as PasswordCallback, KeyboardInteractiveCallback, or NoClientAuth. Users should be using the Extensions field of the Permissions return value from the various authentication callbacks to record data associated with the authentication attempt instead of referencing external state. Once the connection is established the state corresponding to the successful authentication attempt can be retrieved via the ServerConn.Permissions field. Note that some third-party libraries misuse the Permissions type by sharing it across authentication attempts; users of third-party libraries should refer to the relevant projects for guidance. Fixed in
0.31.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2023-48795
GO-2023-2402
GHSA-45x7-px36-x8w8
PYSEC-2026-1758
Dec 18, 2023
Man-in-the-middle attacker can compromise integrity of secure channel in golang.org/x/crypto A protocol weakness allows a MITM attacker to compromise the integrity of the secure channel before it is established, allowing the attacker to prevent transmission of a number of messages immediately after the secure channel is established without either side being aware. The impact of this attack is relatively limited, as it does not compromise confidentiality of the channel. Notably this attack would allow an attacker to prevent the transmission of the SSH2_MSG_EXT_INFO message, disabling a handful of newer security features. This protocol weakness was also fixed in OpenSSH 9.6. Fixed in
0.17.0
References Updated Jul 07, 2026 · Source: OSV.dev |
v0.9.0
minor
Dependencies (3)
|
|
v0.8.0
minor
23 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47914
GHSA-f6x5-jh6r-wrfv
GO-2025-4135
Nov 19, 2025
golang.org/x/crypto/ssh/agent vulnerable to panic if message is malformed due to out of bounds read
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH Agent servers do not validate the size of messages when processing new identity requests, which may cause the program to panic if the message is malformed due to an out of bounds read. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-58181
GHSA-j5w8-q4qc-rx2x
GO-2025-4134
Nov 19, 2025
golang.org/x/crypto/ssh allows an attacker to cause unbounded memory consumption
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers parsing GSSAPI authentication requests do not validate the number of mechanisms specified in the request, allowing an attacker to cause unbounded memory consumption. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47913
GO-2025-4116
GHSA-56w8-48fp-6mgv
Nov 13, 2025
Potential denial of service in golang.org/x/crypto/ssh/agent SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process. Fixed in
0.43.0
References Updated May 21, 2026 · Source: OSV.dev
CVE-2025-22869
GHSA-hcg3-q754-cr77
GO-2025-3487
Apr 12, 2025
golang.org/x/crypto Vulnerable to Denial of Service (DoS) via Slow or Incomplete Key Exchange
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SSH servers which implement file transfer protocols are vulnerable to a denial of service attack from clients which complete the key exchange slowly, or not at all, causing pending content to be read into memory, but never transmitted. Fixed in
0.35.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2024-45337
GHSA-v778-237x-gjrc
GO-2024-3321
Dec 11, 2024
Misuse of ServerConfig.PublicKeyCallback may cause authorization bypass in golang.org/x/crypto
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Applications and libraries which misuse the ServerConfig.PublicKeyCallback callback may be susceptible to an authorization bypass. The documentation for ServerConfig.PublicKeyCallback says that "A call to this function does not guarantee that the key offered is in fact used to authenticate." Specifically, the SSH protocol allows clients to inquire about whether a public key is acceptable before proving control of the corresponding private key. PublicKeyCallback may be called with multiple keys, and the order in which the keys were provided cannot be used to infer which key the client successfully authenticated with, if any. Some applications, which store the key(s) passed to PublicKeyCallback (or derived information) and make security relevant determinations based on it once the connection is established, may make incorrect assumptions. For example, an attacker may send public keys A and B, and then authenticate with A. PublicKeyCallback would be called only twice, first with A and then with B. A vulnerable application may then make authorization decisions based on key B for which the attacker does not actually control the private key. Since this API is widely misused, as a partial mitigation golang.org/x/crypto@v0.31.0 enforces the property that, when successfully authenticating via public key, the last key passed to ServerConfig.PublicKeyCallback will be the key used to authenticate the connection. PublicKeyCallback will now be called multiple times with the same key, if necessary. Note that the client may still not control the last key passed to PublicKeyCallback if the connection is then authenticated with a different method, such as PasswordCallback, KeyboardInteractiveCallback, or NoClientAuth. Users should be using the Extensions field of the Permissions return value from the various authentication callbacks to record data associated with the authentication attempt instead of referencing external state. Once the connection is established the state corresponding to the successful authentication attempt can be retrieved via the ServerConn.Permissions field. Note that some third-party libraries misuse the Permissions type by sharing it across authentication attempts; users of third-party libraries should refer to the relevant projects for guidance. Fixed in
0.31.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2023-48795
GO-2023-2402
GHSA-45x7-px36-x8w8
PYSEC-2026-1758
Dec 18, 2023
Man-in-the-middle attacker can compromise integrity of secure channel in golang.org/x/crypto A protocol weakness allows a MITM attacker to compromise the integrity of the secure channel before it is established, allowing the attacker to prevent transmission of a number of messages immediately after the secure channel is established without either side being aware. The impact of this attack is relatively limited, as it does not compromise confidentiality of the channel. Notably this attack would allow an attacker to prevent the transmission of the SSH2_MSG_EXT_INFO message, disabling a handful of newer security features. This protocol weakness was also fixed in OpenSSH 9.6. Fixed in
0.17.0
References Updated Jul 07, 2026 · Source: OSV.dev |
v0.8.0
minor
Dependencies (3)
|
|
v0.7.0
minor
23 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47914
GHSA-f6x5-jh6r-wrfv
GO-2025-4135
Nov 19, 2025
golang.org/x/crypto/ssh/agent vulnerable to panic if message is malformed due to out of bounds read
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH Agent servers do not validate the size of messages when processing new identity requests, which may cause the program to panic if the message is malformed due to an out of bounds read. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-58181
GHSA-j5w8-q4qc-rx2x
GO-2025-4134
Nov 19, 2025
golang.org/x/crypto/ssh allows an attacker to cause unbounded memory consumption
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers parsing GSSAPI authentication requests do not validate the number of mechanisms specified in the request, allowing an attacker to cause unbounded memory consumption. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47913
GO-2025-4116
GHSA-56w8-48fp-6mgv
Nov 13, 2025
Potential denial of service in golang.org/x/crypto/ssh/agent SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process. Fixed in
0.43.0
References Updated May 21, 2026 · Source: OSV.dev
CVE-2025-22869
GHSA-hcg3-q754-cr77
GO-2025-3487
Apr 12, 2025
golang.org/x/crypto Vulnerable to Denial of Service (DoS) via Slow or Incomplete Key Exchange
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SSH servers which implement file transfer protocols are vulnerable to a denial of service attack from clients which complete the key exchange slowly, or not at all, causing pending content to be read into memory, but never transmitted. Fixed in
0.35.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2024-45337
GHSA-v778-237x-gjrc
GO-2024-3321
Dec 11, 2024
Misuse of ServerConfig.PublicKeyCallback may cause authorization bypass in golang.org/x/crypto
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Applications and libraries which misuse the ServerConfig.PublicKeyCallback callback may be susceptible to an authorization bypass. The documentation for ServerConfig.PublicKeyCallback says that "A call to this function does not guarantee that the key offered is in fact used to authenticate." Specifically, the SSH protocol allows clients to inquire about whether a public key is acceptable before proving control of the corresponding private key. PublicKeyCallback may be called with multiple keys, and the order in which the keys were provided cannot be used to infer which key the client successfully authenticated with, if any. Some applications, which store the key(s) passed to PublicKeyCallback (or derived information) and make security relevant determinations based on it once the connection is established, may make incorrect assumptions. For example, an attacker may send public keys A and B, and then authenticate with A. PublicKeyCallback would be called only twice, first with A and then with B. A vulnerable application may then make authorization decisions based on key B for which the attacker does not actually control the private key. Since this API is widely misused, as a partial mitigation golang.org/x/crypto@v0.31.0 enforces the property that, when successfully authenticating via public key, the last key passed to ServerConfig.PublicKeyCallback will be the key used to authenticate the connection. PublicKeyCallback will now be called multiple times with the same key, if necessary. Note that the client may still not control the last key passed to PublicKeyCallback if the connection is then authenticated with a different method, such as PasswordCallback, KeyboardInteractiveCallback, or NoClientAuth. Users should be using the Extensions field of the Permissions return value from the various authentication callbacks to record data associated with the authentication attempt instead of referencing external state. Once the connection is established the state corresponding to the successful authentication attempt can be retrieved via the ServerConn.Permissions field. Note that some third-party libraries misuse the Permissions type by sharing it across authentication attempts; users of third-party libraries should refer to the relevant projects for guidance. Fixed in
0.31.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2023-48795
GO-2023-2402
GHSA-45x7-px36-x8w8
PYSEC-2026-1758
Dec 18, 2023
Man-in-the-middle attacker can compromise integrity of secure channel in golang.org/x/crypto A protocol weakness allows a MITM attacker to compromise the integrity of the secure channel before it is established, allowing the attacker to prevent transmission of a number of messages immediately after the secure channel is established without either side being aware. The impact of this attack is relatively limited, as it does not compromise confidentiality of the channel. Notably this attack would allow an attacker to prevent the transmission of the SSH2_MSG_EXT_INFO message, disabling a handful of newer security features. This protocol weakness was also fixed in OpenSSH 9.6. Fixed in
0.17.0
References Updated Jul 07, 2026 · Source: OSV.dev |
v0.7.0
minor
Dependencies (3)
|
|
v0.6.0
minor
23 CVEs
CVE-2026-56855
GO-2026-6355
Sep 02, 2026
Prevent DoS on deadlocked established channel in golang.org/x/crypto/ssh Previously, after a channel has been established, a malicious peer could send crafted messages that would deadlock the entire connection. Now, we handle all RFC 4254 channel messages; global requests are handled explicitly. Then, treat all other messages as a protocol error and tear the connection down instead of buffering and blocking. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-78662
GO-2026-6354
Sep 02, 2026
Prevent DoS on deadlocked undecided channel in golang.org/x/crypto/ssh Previously, a channel registered in the mux's chanList is not usable until it is established. A malicious peer was able flood the channel's incomingRequests, deadlocking the entire connection. Now, we add an atomic established state, set when a channel becomes usable. Until such a time, handlePacket drops every packet other than the open confirmation/failure, without blocking and without tearing down the connection. Fixed in
0.56.0
References Updated Sep 03, 2026 · Source: OSV.dev
CVE-2026-56854
GO-2026-6303
Aug 28, 2026
Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh The source-address critical option in the Permissions returned by an authentication callback was only enforced for the PublicKeyCallback and VerifiedPublicKeyCallback paths, extending the fix for CVE-2026-46595. Permissions returned by the PasswordCallback, KeyboardInteractiveCallback, NoClientAuthCallback, and GSSAPIWithMICConfig.AllowLogin callbacks were not validated against the client's remote address, so a source-address restriction set by those callbacks was silently ignored. The check is now applied to the Permissions returned by any authentication callback. Fixed in
0.55.0
Updated Aug 29, 2026 · Source: OSV.dev
GO-2026-5932
Jul 07, 2026
The golang.org/x/crypto/openpgp package is unmaintained, unsafe by design, and has known security issues The golang.org/x/crypto/openpgp package is unsafe by design, has numerous known security issues, is not maintained, and should not be used. If you are required to interoperate with OpenPGP systems and need a maintained package, consider github.com/ProtonMail/go-crypto/openpgp which is a maintained fork that aims to be a drop-in replacement for this package. References Updated Jul 10, 2026 · Source: OSV.dev
CVE-2026-46595
GHSA-x527-x647-q7gg
GO-2026-5023
Jun 25, 2026
golang.org/x/crypto: Invoking VerifiedPublicKeyCallback permissions skip enforcement
10.0
/ 10
Critical
Network
Low
None
None
Changed
High
High
Low
Previously, CVE-2024-45337 fixed an authorization bypass for misused ssh server configurations; if any other type of callback is passed other than public key, then the source-address validation would be skipped. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-42508
GHSA-5cgq-3rg8-m6cv
GO-2026-5021
Jun 25, 2026
golang.org/x/crypto vulnerable to auth bypass via unenforced @revoked status
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Previously, a revoked 'SignatureKey' belonging to a CA was not correctly checked for revocation. Now, both the 'key' and 'key.SignatureKey' are checked for @revoked. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39834
GHSA-rm3j-f69w-wqmq
GO-2026-5020
Jun 25, 2026
golang.org/x/crypto vulnerable to infinite loop on large channel writes
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
None
High
High
When writing data larger than 4GB in a single Write call on an SSH channel, an integer overflow in the internal payload size calculation caused the write loop to spin indefinitely, sending empty packets without making progress. The size comparison now uses int64 to prevent truncation. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39831
GHSA-89gr-r52h-f8rx
GO-2026-5019
Jun 25, 2026
golang.org/x/crypto: FIDO/U2F security key physical presence check can be bypassed
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The Verify() method for FIDO/U2F security key types (sk-ecdsa-sha2-nistp256@openssh.com, sk-ssh-ed25519@openssh.com) 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. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39829
GHSA-w879-237q-wc7r
GO-2026-5018
Jun 25, 2026
golang.org/x/crypto: Invoking pathological RSA/DSA parameters may cause DoS
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
The RSA and DSA public key parsers did not enforce size limits on key parameters. A crafted public key with an excessively large modulus or DSA parameter could cause several minutes of CPU consumption during signature verification. This could be triggered by unauthenticated clients during public key authentication. RSA moduli are now limited to 8192 bits, and DSA parameters are validated per FIPS 186-2. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39830
GHSA-vgwf-h737-ff37
GO-2026-5017
Jun 25, 2026
golang.org/x/crypto: Invoking client can cause server deadlock on unexpected responses
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
None
High
A malicious SSH peer could send unsolicited global request responses to fill an internal buffer, blocking the connection's read loop. The blocked goroutine could not be released by calling Close(), resulting in a resource leak per connection. Unsolicited global responses are now discarded. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39827
GHSA-qpw4-5x99-6vjp
GO-2026-5016
Jun 25, 2026
golang.org/x/crypto: Invoking memory leak when rejecting channels can lead to DoS
6.5
/ 10
Medium
Network
Low
Low
None
Unchanged
None
None
High
An authenticated SSH client that repeatedly opened channels which were rejected by the server caused unbounded memory growth, eventually crashing the server process and affecting all connected users. Rejected channels are now properly removed from the connection's internal state and released for garbage collection. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39835
GHSA-78mq-xcr3-xm33
GO-2026-5015
Jun 25, 2026
golang.org/x/crypto is vulnerable to invoking server panic during CheckHostKey/Authenticate flow
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers which use CertChecker as a public key callback without setting IsUserAuthority or IsHostAuthority could be caused to panic by a client presenting a certificate. CertChecker now returns an error instead of panicking when these callbacks are nil. Fixed in
0.52.0
References Updated Sep 11, 2026 · Source: OSV.dev
CVE-2026-39828
GHSA-45gg-vh54-h5m9
GO-2026-5014
Jun 25, 2026
golang.org/x/crypto vulnerable to invoking bypass of certificate restrictions
6.3
/ 10
Medium
Network
Low
Low
None
Unchanged
Low
Low
Low
When an SSH server authentication callback returned PartialSuccessError with non-nil Permissions, those permissions were silently discarded, potentially dropping certificate restrictions such as force-command after a second factor succeeded. Returning non-nil Permissions with PartialSuccessError now results in a connection error. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46597
GHSA-q4h4-gmj2-qvw2
GO-2026-5013
Jun 25, 2026
golang.org/x/crypto: Invoking byte arithmetic causes underflow and panic
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39832
GHSA-f5wc-c3c7-36mc
GO-2026-5006
Jun 25, 2026
golang.org/x/crypto doesn't drop invoking agent constraints when forwarding keys
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
When adding a key to a remote agent constraint extensions such as restrict-destination-v00@openssh.com were not serialized in the request. Destination restrictions were silently stripped when forwarding keys, allowing unrestricted use of the key on the remote host. The client now serializes all constraint extensions. Additionally, the in-memory keyring returned by NewKeyring() now rejects keys with unsupported constraint extensions instead of silently ignoring them. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-39833
GHSA-jppx-rxg9-jmrx
GO-2026-5005
Jun 25, 2026
golang.org/x/crypto doesn't enforce invoking key constraints
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2026-46598
GHSA-9m57-25v3-79x9
GO-2026-5033
Jun 25, 2026
golang.org/x/crypto: Invoking pathological inputs can lead to client panic
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used. Fixed in
0.52.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47914
GHSA-f6x5-jh6r-wrfv
GO-2025-4135
Nov 19, 2025
golang.org/x/crypto/ssh/agent vulnerable to panic if message is malformed due to out of bounds read
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH Agent servers do not validate the size of messages when processing new identity requests, which may cause the program to panic if the message is malformed due to an out of bounds read. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-58181
GHSA-j5w8-q4qc-rx2x
GO-2025-4134
Nov 19, 2025
golang.org/x/crypto/ssh allows an attacker to cause unbounded memory consumption
5.3
/ 10
Medium
Network
Low
None
None
Unchanged
None
None
Low
SSH servers parsing GSSAPI authentication requests do not validate the number of mechanisms specified in the request, allowing an attacker to cause unbounded memory consumption. Fixed in
0.45.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2025-47913
GO-2025-4116
GHSA-56w8-48fp-6mgv
Nov 13, 2025
Potential denial of service in golang.org/x/crypto/ssh/agent SSH clients receiving SSH_AGENT_SUCCESS when expecting a typed response will panic and cause early termination of the client process. Fixed in
0.43.0
References Updated May 21, 2026 · Source: OSV.dev
CVE-2025-22869
GHSA-hcg3-q754-cr77
GO-2025-3487
Apr 12, 2025
golang.org/x/crypto Vulnerable to Denial of Service (DoS) via Slow or Incomplete Key Exchange
7.5
/ 10
High
Network
Low
None
None
Unchanged
None
None
High
SSH servers which implement file transfer protocols are vulnerable to a denial of service attack from clients which complete the key exchange slowly, or not at all, causing pending content to be read into memory, but never transmitted. Fixed in
0.35.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2024-45337
GHSA-v778-237x-gjrc
GO-2024-3321
Dec 11, 2024
Misuse of ServerConfig.PublicKeyCallback may cause authorization bypass in golang.org/x/crypto
9.1
/ 10
Critical
Network
Low
None
None
Unchanged
High
High
None
Applications and libraries which misuse the ServerConfig.PublicKeyCallback callback may be susceptible to an authorization bypass. The documentation for ServerConfig.PublicKeyCallback says that "A call to this function does not guarantee that the key offered is in fact used to authenticate." Specifically, the SSH protocol allows clients to inquire about whether a public key is acceptable before proving control of the corresponding private key. PublicKeyCallback may be called with multiple keys, and the order in which the keys were provided cannot be used to infer which key the client successfully authenticated with, if any. Some applications, which store the key(s) passed to PublicKeyCallback (or derived information) and make security relevant determinations based on it once the connection is established, may make incorrect assumptions. For example, an attacker may send public keys A and B, and then authenticate with A. PublicKeyCallback would be called only twice, first with A and then with B. A vulnerable application may then make authorization decisions based on key B for which the attacker does not actually control the private key. Since this API is widely misused, as a partial mitigation golang.org/x/crypto@v0.31.0 enforces the property that, when successfully authenticating via public key, the last key passed to ServerConfig.PublicKeyCallback will be the key used to authenticate the connection. PublicKeyCallback will now be called multiple times with the same key, if necessary. Note that the client may still not control the last key passed to PublicKeyCallback if the connection is then authenticated with a different method, such as PasswordCallback, KeyboardInteractiveCallback, or NoClientAuth. Users should be using the Extensions field of the Permissions return value from the various authentication callbacks to record data associated with the authentication attempt instead of referencing external state. Once the connection is established the state corresponding to the successful authentication attempt can be retrieved via the ServerConn.Permissions field. Note that some third-party libraries misuse the Permissions type by sharing it across authentication attempts; users of third-party libraries should refer to the relevant projects for guidance. Fixed in
0.31.0
References Updated Sep 10, 2026 · Source: OSV.dev
CVE-2023-48795
GO-2023-2402
GHSA-45x7-px36-x8w8
PYSEC-2026-1758
Dec 18, 2023
Man-in-the-middle attacker can compromise integrity of secure channel in golang.org/x/crypto A protocol weakness allows a MITM attacker to compromise the integrity of the secure channel before it is established, allowing the attacker to prevent transmission of a number of messages immediately after the secure channel is established without either side being aware. The impact of this attack is relatively limited, as it does not compromise confidentiality of the channel. Notably this attack would allow an attacker to prevent the transmission of the SSH2_MSG_EXT_INFO message, disabling a handful of newer security features. This protocol weakness was also fixed in OpenSSH 9.6. Fixed in
0.17.0
References Updated Jul 07, 2026 · Source: OSV.dev |
v0.6.0
minor
Dependencies (3)
|