Open actionable advisories and recorded vendor fixes. This public package view has no inventory attached and cannot establish whether your deployment is affected. A vendor fix never resolves your finding; verify your installed version and the source guidance.
Open advisories
29 actionable advisories, newest first. Withdrawn advisories and news are excluded. Coverage is partial.
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.
Recommended action: Upgrade to 0.56.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.
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.
Recommended action: Upgrade to 0.56.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.
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.
Recommended action: Upgrade to 0.55.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.
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.
Recommended action: Upgrade to 0.52.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.
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.
Recommended action: Upgrade to 0.52.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.
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.
Recommended action: Upgrade to 0.52.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.
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.
Recommended action: Upgrade to 0.52.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.
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.
Recommended action: Upgrade to 0.52.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.
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.
Recommended action: Upgrade to 0.52.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.
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.
Recommended action: Upgrade to 0.52.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.
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.
Recommended action: Upgrade to 0.52.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.
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.
Recommended action: Upgrade to 0.52.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.
An incorrectly placed cast from bytes to int allowed for server-side panic in the AES-GCM packet decoder for well-crafted inputs.
Recommended action: Upgrade to 0.52.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.
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.
Recommended action: Upgrade to 0.52.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.
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.
Recommended action: Upgrade to 0.52.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.
For certain crafted inputs, a 'ed25519.PrivateKey' was created by casting malformed wire bytes, leading to a panic when used.
Recommended action: Upgrade to 0.52.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.
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.
Recommended action: Upgrade to 0.45.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.
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.
Recommended action: Upgrade to 0.45.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.
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.
Recommended action: Upgrade to 0.35.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.
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…
Recommended action: Upgrade to 0.31.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.
Go golang.org/x/crypto >= 0.1.0, < 0.17.0; < 0.0.0-20231218163308-9d2ee975ef9f
Fixed in
0.17.00.0.0-20231218163308-9d2ee975ef9f· Vendor fix available
Issue
Terrapin is a prefix truncation attack targeting the SSH protocol. More precisely, Terrapin breaks the integrity of SSH's secure channel. By carefully adjusting the sequence numbers during the handshake, an attacker can remove an arbitrary amount of messages sent by the client or server at the beginning of the secure channel without the client or server noticing it. Mitigations To mitigate this protocol vulnerability, OpenSSH suggested a so-called "strict kex" which alters the SSH handshake to ensure a Man-in-the-Middle attacker cannot introduce unauthenticated messages as well as convey sequence number manipulation across handshakes. Warning: To take effect, both the client and server must support this countermeasure. As a stop-gap measure, peers may also (temporarily) disable the affected algorithms and use unaffected alternatives like AES-GCM instead until patches are available. Details The SSH specifications of ChaCha20-Poly1305 (chacha20-poly1305@openssh.com) and…
Recommended action: Upgrade to 0.17.0 or 0.0.0-20231218163308-9d2ee975ef9f (pre-release) by release line, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.
Go golang.org/x/crypto < 0.0.0-20170330155735-e4e2799dd7aa
Fixed in
0.0.0-20170330155735-e4e2799dd7aa· Vendor fix available
Issue
The Go SSH library (golang.org/x/crypto/ssh) by default does not verify host keys, facilitating man-in-the-middle attacks if ClientConfig.HostKeyCallback is not set. Default behavior changed in commit e4e2799 to require explicitly registering a hostkey verification mechanism.
Recommended action: Upgrade to 0.0.0-20170330155735-e4e2799dd7aa (pre-release) or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.
Go golang.org/x/crypto < 0.0.0-20211202192323-5770296d904e
Fixed in
0.0.0-20211202192323-5770296d904e· Vendor fix available
Issue
The x/crypto/ssh package before 0.0.0-20211202192323-5770296d904e of golang.org/x/crypto allows an unauthenticated attacker to panic an SSH server. When using AES-GCM or ChaCha20Poly1305, consuming a malformed packet which contains an empty plaintext causes a panic.
Recommended action: Upgrade to 0.0.0-20211202192323-5770296d904e (pre-release) or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.
Go golang.org/x/crypto < 0.0.0-20201216223049-8b5274cf687f
Fixed in
0.0.0-20201216223049-8b5274cf687f· Vendor fix available
Issue
A nil pointer dereference in the golang.org/x/crypto/ssh component through v0.0.0-20201203163018-be400aefbc4c for Go allows remote attackers to cause a denial of service against SSH servers. An attacker can craft an authentication request message for the gssapi-with-mic method which will cause NewServerConn to panic via a nil pointer dereference if ServerConfig.GSSAPIWithMICConfig is nil.
Recommended action: Upgrade to 0.0.0-20201216223049-8b5274cf687f (pre-release) or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.
Go golang.org/x/crypto < 0.0.0-20190424203555-c05e17bb3b2d
Fixed in
0.0.0-20190424203555-c05e17bb3b2d· Vendor fix available
Issue
A message-forgery issue was discovered in crypto/openpgp/clearsign/clearsign.go in supplementary Go cryptography libraries 2019-03-25. According to the OpenPGP Message Format specification in RFC 4880 chapter 7, a cleartext signed message can contain one or more optional "Hash" Armor Headers. The "Hash" Armor Header specifies the message digest algorithm(s) used for the signature. However, the Go clearsign package ignores the value of this header, which allows an attacker to spoof it. Consequently, an attacker can lead a victim to believe the signature was generated using a different message digest algorithm than what was actually used. Moreover, since the library skips Armor Header parsing in general, an attacker can not only embed arbitrary Armor Headers, but also prepend arbitrary text to cleartext messages without invalidating the signatures.
Recommended action: Upgrade to 0.0.0-20190424203555-c05e17bb3b2d (pre-release) or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.