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.
{
"url": "https://pkg.go.dev/vuln/GO-2025-3487",
"review_status": "REVIEWED"
}{
"imports": [
{
"path": "golang.org/x/crypto/ssh",
"symbols": [
"Client.Dial",
"Client.DialContext",
"Client.DialTCP",
"Client.Listen",
"Client.ListenTCP",
"Client.ListenUnix",
"Client.NewSession",
"Dial",
"DiscardRequests",
"NewClient",
"NewClientConn",
"NewServerConn",
"Request.Reply",
"Session.Close",
"Session.CombinedOutput",
"Session.Output",
"Session.RequestPty",
"Session.RequestSubsystem",
"Session.Run",
"Session.SendRequest",
"Session.Setenv",
"Session.Shell",
"Session.Signal",
"Session.Start",
"Session.WindowChange",
"channel.Accept",
"channel.Close",
"channel.CloseWrite",
"channel.Read",
"channel.ReadExtended",
"channel.Reject",
"channel.SendRequest",
"channel.Write",
"channel.WriteExtended",
"connection.SendAuthBanner",
"curve25519sha256.Client",
"curve25519sha256.Server",
"dhGEXSHA.Client",
"dhGEXSHA.Server",
"dhGroup.Client",
"dhGroup.Server",
"ecdh.Client",
"ecdh.Server",
"extChannel.Read",
"extChannel.Write",
"handshakeTransport.kexLoop",
"handshakeTransport.recordWriteError",
"handshakeTransport.writePacket",
"mux.OpenChannel",
"mux.SendRequest",
"newHandshakeTransport",
"sessionStdin.Close",
"sshClientKeyboardInteractive.Challenge",
"tcpListener.Accept",
"tcpListener.Close",
"unixListener.Accept",
"unixListener.Close"
]
}
]
}