Skip to content

Commit 06b52b1

Browse files
committed
Merge commit from fork
fix(security): clear env vars
2 parents 089a10a + 5822ed1 commit 06b52b1

File tree

4 files changed

+11
-43
lines changed

4 files changed

+11
-43
lines changed

db_lib/AnsiblePlaybook.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ func (p AnsiblePlaybook) makeCmd(command string, args []string, environmentVars
2222
cmd := exec.Command(command, args...) //nolint: gas
2323
cmd.Dir = p.GetFullPath()
2424

25-
cmd.Env = removeSensitiveEnvs(os.Environ())
25+
cmd.Env = []string{}
2626

2727
cmd.Env = append(cmd.Env, fmt.Sprintf("HOME=%s", util.Config.TmpPath))
2828
cmd.Env = append(cmd.Env, fmt.Sprintf("PWD=%s", cmd.Dir))

db_lib/LocalApp.go

-34
Original file line numberDiff line numberDiff line change
@@ -2,44 +2,10 @@ package db_lib
22

33
import (
44
"os"
5-
"strings"
65

76
"github.com/ansible-semaphore/semaphore/pkg/task_logger"
87
)
98

10-
func isSensitiveVar(v string) bool {
11-
sensitives := []string{
12-
"SEMAPHORE_ACCESS_KEY_ENCRYPTION",
13-
"SEMAPHORE_ADMIN_PASSWORD",
14-
"SEMAPHORE_DB_USER",
15-
"SEMAPHORE_DB_NAME",
16-
"SEMAPHORE_DB_HOST",
17-
"SEMAPHORE_DB_PASS",
18-
"SEMAPHORE_LDAP_PASSWORD",
19-
"SEMAPHORE_RUNNER_TOKEN",
20-
"SEMAPHORE_RUNNER_ID",
21-
}
22-
23-
for _, s := range sensitives {
24-
if strings.HasPrefix(v, s+"=") {
25-
return true
26-
}
27-
}
28-
29-
return false
30-
}
31-
32-
func removeSensitiveEnvs(envs []string) (res []string) {
33-
34-
for _, e := range envs {
35-
if !isSensitiveVar(e) {
36-
res = append(res, e)
37-
}
38-
}
39-
40-
return res
41-
}
42-
439
type LocalApp interface {
4410
SetLogger(logger task_logger.Logger) task_logger.Logger
4511
InstallRequirements(environmentVars *[]string) error

db_lib/ShellApp.go

+5-4
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,14 @@ package db_lib
22

33
import (
44
"fmt"
5-
"github.com/ansible-semaphore/semaphore/db"
6-
"github.com/ansible-semaphore/semaphore/pkg/task_logger"
7-
"github.com/ansible-semaphore/semaphore/util"
85
"os"
96
"os/exec"
107
"strings"
118
"time"
9+
10+
"github.com/ansible-semaphore/semaphore/db"
11+
"github.com/ansible-semaphore/semaphore/pkg/task_logger"
12+
"github.com/ansible-semaphore/semaphore/util"
1213
)
1314

1415
type ShellApp struct {
@@ -44,7 +45,7 @@ func (t *ShellApp) makeCmd(command string, args []string, environmentVars *[]str
4445
cmd := exec.Command(command, args...) //nolint: gas
4546
cmd.Dir = t.GetFullPath()
4647

47-
cmd.Env = removeSensitiveEnvs(os.Environ())
48+
cmd.Env = []string{}
4849
cmd.Env = append(cmd.Env, fmt.Sprintf("HOME=%s", util.Config.TmpPath))
4950
cmd.Env = append(cmd.Env, fmt.Sprintf("PWD=%s", cmd.Dir))
5051

db_lib/TerraformApp.go

+5-4
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@ package db_lib
22

33
import (
44
"fmt"
5-
"github.com/ansible-semaphore/semaphore/db"
6-
"github.com/ansible-semaphore/semaphore/pkg/task_logger"
7-
"github.com/ansible-semaphore/semaphore/util"
85
"os"
96
"os/exec"
107
"path"
118
"strings"
129
"time"
10+
11+
"github.com/ansible-semaphore/semaphore/db"
12+
"github.com/ansible-semaphore/semaphore/pkg/task_logger"
13+
"github.com/ansible-semaphore/semaphore/util"
1314
)
1415

1516
type TerraformApp struct {
@@ -37,7 +38,7 @@ func (t *TerraformApp) makeCmd(command string, args []string, environmentVars *[
3738
cmd := exec.Command(command, args...) //nolint: gas
3839
cmd.Dir = t.GetFullPath()
3940

40-
cmd.Env = removeSensitiveEnvs(os.Environ())
41+
cmd.Env = []string{}
4142
cmd.Env = append(cmd.Env, fmt.Sprintf("HOME=%s", util.Config.TmpPath))
4243
cmd.Env = append(cmd.Env, fmt.Sprintf("PWD=%s", cmd.Dir))
4344

0 commit comments

Comments
 (0)