Skip to content

goreleaser logs environment variables when building under the right conditions

Moderate
caarlos0 published GHSA-f6mm-5fc7-3g3c May 15, 2024

Package

gomod goreleaser (Go)

Affected versions

1.26.0

Patched versions

>=1.26.1

Description

Summary

Since #4787 the log output is printed on the INFO level, while previously it was logged on DEBUG. This means if the go build output is non-empty, goreleaser leaks the environment.

PoC

  • Create a Go project with dependencies, do not pull them yet (or run goreleaser later in a container, or delete $GOPATH/pkg).
  • Make sure to have secrets set in the environment
  • Make sure to not have go mod tidy in a before hook
  • Run goreleaser release --clean
  • Go prints lots of go: downloading ... lines, which triggers the "if output not empty, log it" line, which includes the environment.

Impact

Credentials and tokens are leaked.

Severity

Moderate
6.2
/ 10

CVSS base metrics

Attack vector
Local
Attack complexity
Low
Privileges required
None
User interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

CVE ID

No known CVE

Weaknesses

No CWEs

Credits