Skip to content

Commit e0da1d5

Browse files
authored
Merge pull request #133 from buildkite/fix/remove-possible-secret-exposures
Remove possible exposure to secrets in error handling
2 parents a55dea7 + 0c444dd commit e0da1d5

File tree

1 file changed

+14
-14
lines changed

1 file changed

+14
-14
lines changed

s3secrets-helper/secrets/secrets.go

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ func Run(conf *Config) error {
108108

109109
if ok, err := conf.Client.BucketExists(); !ok {
110110
if err != nil {
111-
log.Printf("+++ :warning: Bucket %q not found: %v", bucket, err)
111+
log.Printf("+++ :warning: Bucket %q not found", bucket)
112112
} else {
113113
log.Printf("+++ :warning: Bucket %q doesn't exist", bucket)
114114
}
@@ -219,7 +219,7 @@ func handleSSHKeys(conf *Config, results <-chan getResult) error {
219219
for r := range results {
220220
if r.err != nil {
221221
if r.err != sentinel.ErrNotFound && r.err != sentinel.ErrForbidden {
222-
log.Printf("+++ :warning: Failed to download ssh-key %s/%s: %v", r.bucket, r.key, r.err)
222+
log.Printf("+++ :warning: Failed to download ssh-key %s/%s", r.bucket, r.key)
223223
}
224224
continue
225225
}
@@ -233,7 +233,7 @@ func handleSSHKeys(conf *Config, results <-chan getResult) error {
233233
r.bucket, r.key, len(r.data), conf.SSHAgent.Pid(),
234234
)
235235
if err := conf.SSHAgent.Add(r.data); err != nil {
236-
return fmt.Errorf("ssh-agent add: %w", err)
236+
return fmt.Errorf("failed to add ssh-agent")
237237
}
238238
keyFound = true
239239
}
@@ -246,7 +246,7 @@ func handleSSHKeys(conf *Config, results <-chan getResult) error {
246246
log.Printf("See https://buildkite.com/docs/agent/v3/aws/elastic-ci-stack/ec2-linux-and-windows/secrets-bucket for more information.")
247247
}
248248
if _, err := io.Copy(conf.EnvSink, conf.SSHAgent.Stdout()); err != nil {
249-
return fmt.Errorf("copying ssh-agent env: %w", err)
249+
return fmt.Errorf("failed in copying ssh-agent env")
250250
}
251251
return nil
252252
}
@@ -256,7 +256,7 @@ func handleEnvs(conf *Config, results <-chan getResult) error {
256256
for r := range results {
257257
if r.err != nil {
258258
if r.err != sentinel.ErrNotFound && r.err != sentinel.ErrForbidden {
259-
log.Printf("+++ :warning: Failed to download env from %s/%s: %v", r.bucket, r.key, r.err)
259+
log.Printf("+++ :warning: Failed to download env from %s/%s", r.bucket, r.key)
260260
}
261261
continue
262262
}
@@ -272,7 +272,7 @@ func handleEnvs(conf *Config, results <-chan getResult) error {
272272
// Use godotenv library to properly handle multi-line secrets and avoid parsing bugs
273273
envMap, err := godotenv.UnmarshalBytes(r.data)
274274
if err != nil {
275-
log.Printf("Warning: failed to parse env file %s/%s: %v", r.bucket, r.key, err)
275+
log.Printf("Warning: failed to parse env file %s/%s", r.bucket, r.key)
276276
} else {
277277
for key, value := range envMap {
278278
if isSecretVar(key) && len(value) > 0 {
@@ -282,7 +282,7 @@ func handleEnvs(conf *Config, results <-chan getResult) error {
282282
}
283283

284284
if _, err := bytes.NewReader(data).WriteTo(conf.EnvSink); err != nil {
285-
return fmt.Errorf("copying env: %w", err)
285+
return fmt.Errorf("failed to write environment data")
286286
}
287287
}
288288
}
@@ -295,7 +295,7 @@ func handleGitCredentials(conf *Config, results <-chan getResult) error {
295295
for r := range results {
296296
if r.err != nil {
297297
if r.err != sentinel.ErrNotFound && r.err != sentinel.ErrForbidden {
298-
log.Printf("+++ :warning: Failed to check %s/%s: %v", r.bucket, r.key, r.err)
298+
log.Printf("+++ :warning: Failed to check %s/%s", r.bucket, r.key)
299299
}
300300
continue
301301
}
@@ -326,7 +326,7 @@ func handleGitCredentials(conf *Config, results <-chan getResult) error {
326326
env := "GIT_CONFIG_PARAMETERS=\"" + strings.Join(singleQuotedHelpers, " ") + "\"\n"
327327

328328
if _, err := io.WriteString(conf.EnvSink, env); err != nil {
329-
return fmt.Errorf("writing GIT_CONFIG_PARAMETERS env: %w", err)
329+
return fmt.Errorf("failed to write GIT_CONFIG_PARAMETERS env")
330330
}
331331
return nil
332332
}
@@ -341,7 +341,7 @@ func handleSecrets(conf *Config, results <-chan getResult) error {
341341
for r := range results {
342342
if r.err != nil {
343343
if r.err != sentinel.ErrNotFound && r.err != sentinel.ErrForbidden {
344-
log.Printf("+++ :warning: Failed to download secret %s/%s: %v", r.bucket, r.key, r.err)
344+
log.Printf("+++ :warning: Failed to download secret %s/%s", r.bucket, r.key)
345345
}
346346
continue
347347
}
@@ -372,7 +372,7 @@ func handleSecrets(conf *Config, results <-chan getResult) error {
372372
}
373373
envString = strings.Join(singleQuotedSecrets, "\n") + "\n"
374374
if _, err := io.WriteString(conf.EnvSink, envString); err != nil {
375-
return fmt.Errorf("writing SECRETS to env: %w", err)
375+
return fmt.Errorf("failed to write secrets to environment")
376376
}
377377
return nil
378378
}
@@ -602,15 +602,15 @@ func processSingleChunk(log *log.Logger, secrets []string, chunkNum, totalChunks
602602
}()
603603

604604
if err := tempFile.Chmod(0600); err != nil {
605-
return fmt.Errorf("failed to set permissions on temporary file for chunk %d: %w", chunkNum, err)
605+
return fmt.Errorf("failed to set permissions on temporary file for chunk %d", chunkNum)
606606
}
607607

608608
if _, err := tempFile.Write(jsonData); err != nil {
609-
return fmt.Errorf("failed to write chunk %d to temporary file: %w", chunkNum, err)
609+
return fmt.Errorf("failed to write chunk %d to temporary file", chunkNum)
610610
}
611611

612612
if err := tempFile.Sync(); err != nil {
613-
return fmt.Errorf("failed to sync temporary file for chunk %d: %w", chunkNum, err)
613+
return fmt.Errorf("failed to sync temporary file for chunk %d", chunkNum)
614614
}
615615

616616
if err := tempFile.Close(); err != nil {

0 commit comments

Comments
 (0)