From 83d775b88b9039d42a23153997907310fd640daa Mon Sep 17 00:00:00 2001 From: Antoine GIRARD Date: Thu, 2 May 2019 02:42:28 +0200 Subject: [PATCH 1/2] ssh: ignore env command totally --- modules/ssh/ssh.go | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/modules/ssh/ssh.go b/modules/ssh/ssh.go index f42c576cdb7a6..d0cf6e04e87f5 100644 --- a/modules/ssh/ssh.go +++ b/modules/ssh/ssh.go @@ -52,18 +52,22 @@ func handleServerConn(keyID string, chans <-chan ssh.NewChannel) { for req := range in { payload := cleanCommand(string(req.Payload)) switch req.Type { - case "env": - args := strings.Split(strings.Replace(payload, "\x00", "", -1), "\v") - if len(args) != 2 { - log.Warn("SSH: Invalid env arguments: '%#v'", args) - continue - } - args[0] = strings.TrimLeft(args[0], "\x04") - _, _, err := com.ExecCmdBytes("env", args[0]+"="+args[1]) - if err != nil { - log.Error("env: %v", err) - return - } + /* + //Disabled as it doesn't do anything to sub-sequent calls + //TODO fix by populating an array of env to be added at cmd.Env of exec calls + case "env": + args := strings.Split(strings.Replace(payload, "\x00", "", -1), "\v") + if len(args) != 2 { + log.Warn("SSH: Invalid env arguments: '%#v'", args) + continue + } + args[0] = strings.TrimLeft(args[0], "\x04") + _, _, err := com.ExecCmdBytes("env", args[0]+"="+args[1]) + if err != nil { + log.Error("env: %v", err) + return + } + */ case "exec": cmdName := strings.TrimLeft(payload, "'()") log.Trace("SSH: Payload: %v", cmdName) From 5824a5a8f2074a4d8d9f6dcda0226daee7c550c0 Mon Sep 17 00:00:00 2001 From: Antoine GIRARD Date: Fri, 10 May 2019 00:00:57 +0200 Subject: [PATCH 2/2] Remove commented code Needed fix described in issue #6889 --- modules/ssh/ssh.go | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/modules/ssh/ssh.go b/modules/ssh/ssh.go index d0cf6e04e87f5..98ff50bfeca9a 100644 --- a/modules/ssh/ssh.go +++ b/modules/ssh/ssh.go @@ -52,22 +52,6 @@ func handleServerConn(keyID string, chans <-chan ssh.NewChannel) { for req := range in { payload := cleanCommand(string(req.Payload)) switch req.Type { - /* - //Disabled as it doesn't do anything to sub-sequent calls - //TODO fix by populating an array of env to be added at cmd.Env of exec calls - case "env": - args := strings.Split(strings.Replace(payload, "\x00", "", -1), "\v") - if len(args) != 2 { - log.Warn("SSH: Invalid env arguments: '%#v'", args) - continue - } - args[0] = strings.TrimLeft(args[0], "\x04") - _, _, err := com.ExecCmdBytes("env", args[0]+"="+args[1]) - if err != nil { - log.Error("env: %v", err) - return - } - */ case "exec": cmdName := strings.TrimLeft(payload, "'()") log.Trace("SSH: Payload: %v", cmdName)