From d379fba6188c4fce20e2837ae308e006051a858e Mon Sep 17 00:00:00 2001 From: andig Date: Sun, 10 Mar 2024 23:00:18 +0100 Subject: [PATCH] chore: validate server name --- util/cloud/client.go | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/util/cloud/client.go b/util/cloud/client.go index 84a5ec2a9..414da155f 100644 --- a/util/cloud/client.go +++ b/util/cloud/client.go @@ -3,6 +3,7 @@ package cloud import ( "crypto/tls" _ "embed" + "net" "github.com/evcc-io/evcc/util" "google.golang.org/grpc" @@ -10,7 +11,7 @@ import ( ) var ( - host = util.Getenv("GRPC_URI", "sponsor.evcc.io:8080") + hostport = util.Getenv("GRPC_URI", "sponsor.evcc.io:8080") conn *grpc.ClientConn ) @@ -20,9 +21,15 @@ func Connection() (*grpc.ClientConn, error) { return conn, nil } - var err error - creds := credentials.NewTLS(new(tls.Config)) - conn, err = grpc.Dial(host, grpc.WithTransportCredentials(creds)) + host, _, err := net.SplitHostPort(hostport) + if err != nil { + return nil, err + } + + creds := credentials.NewTLS(&tls.Config{ + ServerName: host, + }) + conn, err = grpc.Dial(hostport, grpc.WithTransportCredentials(creds)) return conn, err }