Open
Description
What version of Go are you using (go version
)?
$ go version go version go1.15.6 linux/arm64
Does this issue reproduce with the latest release?
I am using
golang.org/x/crypto v0.0.0-20201124201722-c8d3bf9c5392 [v0.0.0-20201203163018-be400aefbc4c]
What operating system and processor architecture are you using (go env
)?
go env
Output
$ go env GO111MODULE="" GOARCH="arm64" GOBIN="" GOCACHE="/home/ubuntu/.cache/go-build" GOENV="/home/ubuntu/.config/go/env" GOEXE="" GOFLAGS="" GOHOSTARCH="arm64" GOHOSTOS="linux" GOINSECURE="" GOMODCACHE="/home/ubuntu/go/pkg/mod" GONOPROXY="" GONOSUMDB="" GOOS="linux" GOPATH="/home/ubuntu/go" GOPRIVATE="" GOPROXY="https://proxy.golang.org,direct" GOROOT="/usr/local/go" GOSUMDB="sum.golang.org" GOTMPDIR="" GOTOOLDIR="/usr/local/go/pkg/tool/linux_arm64" GCCGO="gccgo" AR="ar" CC="gcc" CXX="g++" CGO_ENABLED="1" GOMOD="/home/ubuntu/ssh-honeypot/go.mod" CGO_CFLAGS="-g -O2" CGO_CPPFLAGS="" CGO_CXXFLAGS="-g -O2" CGO_FFLAGS="-g -O2" CGO_LDFLAGS="-g -O2" PKG_CONFIG="pkg-config" GOGCCFLAGS="-fPIC -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build038631070=/tmp/go-build -gno-record-gcc-switches"
What did you do?
I'm writing an SSH honeypot. When receiving connections, sometimes, their connection isn't accepted because of an unmarshal error. I'm not sure if this is an issue that can be resolved.
If I had to guess, maybe unsupported characters are in the Language field of the disconnectMsg struct.
Unfortunately, there's no easy way to reproduce. I just ran my honeypot and got these errors occasionally.
What did you expect to see?
I expected to see a successful authentication.
What did you see instead?
I receive these messages in my logs after calling ssh.NewServerConn:
[DBG] SSH password attempt from 142.93.52.3:48066. [DBG] Username: root [DBG] Password: Password [DBG] Could not initiate SSH handshake: ssh: unmarshal error for field Language of type disconnectMsg