CVE-2024-23840 is a medium-severity (CVSS 5.5) CWE-532 vulnerability in github.com/goreleaser/goreleaser. 1 public exploit reference exists, so weaponization risk is real. A fix is available for github.com/goreleaser/goreleaser β see the affected versions and patch details below.
`goreleaser release --debug` shows secrets
Exploitation Status
Proof-of-concept exploit code exists
- CISAβs SSVC triage found public proof-of-concept exploit code for this CVE, though no confirmed active exploitation.
Exploitation and automatability from CISAβs SSVC triage for CVE-2024-23840.
EPSS Exploitation Probability
EPSS (Exploit Prediction Scoring System) is a daily probability model maintained by FIRST.org. It estimates the likelihood a CVE will be exploited in production environments within the next 30 days, derived from real-world threat intelligence signals.
How urgent is this, really
CVE-2024-23840 plotted by exploitation likelihood (EPSS) against impact (CVSS). The shaded corner β EPSS 50%+ and CVSS 7.0+ β is where this CVE doesn't sit, though severity or exploitability alone can still warrant action.
Where this sits among everything scored
Of 377,636 CVEs with a current EPSS score, this one falls in the < 10% band (highlighted). Real counts from FIRST.org, not a sample β log-scaled since the landscape is heavily right-skewed.
Real-World Exposure
github.com/goreleaser/goreleaserReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects Go packages β download data is not available via public APIs for these ecosystems.
Description
Summary
Hello π
goreleaser release --debug log shows secret values used in the in the custom publisher.
How to reproduce the issue:
- Define a custom publisher as the one below. Make sure to provide a custom script to the
cmdfield and to provide a secret toenv
#.goreleaser.yml
publishers:
- name: my-publisher
# IDs of the artifacts we want to sign
ids:
- linux_archives
- linux_package
cmd: "./build/package/linux_notarize.sh"
env:
- VERSION={{ .Version }}
- SECRET_1={{.Env.SECRET_1}}
- SECRET_2={{.Env.SECRET_2}}
- run
goreleaser release --debug
You should see your secret value in the gorelease log. The log shows also the GITHUB_TOKEN
Example:
running cmd= ....
SECRET_1=secret_value
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| πΉGo | github.com/goreleaser/goreleaser | β₯ 1.23.0&&< 1.24.0 | 1.24.0go get github.com/goreleaser/goreleaser@v1.24.0 |
Research use only. For defensive security, authorized penetration testing, and academic research only. Never execute exploit code against systems without explicit written authorization.
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for github.com/goreleaser/goreleaser, including transitive dependencies β a direct dependency you never call can still pull in a vulnerable version.
Fix
Update github.com/goreleaser/goreleaser to 1.24.0 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range β O3 confirms CVE-2024-23840 is resolved across your whole dependency graph.
Workarounds
If you can't upgrade right away: gate or disable the affected feature, validate untrusted input at the boundary, and avoid passing attacker-controlled data into the vulnerable path. O3's runtime protection blocks exploitation in production as an interim safeguard until the upgrade lands.
How O3 protects you
O3 Security's impact-aware SCA analyses which vulnerable code paths your application actually calls, so a match like CVE-2024-23840 can be triaged on real exposure rather than presence alone.
Tailored to CVE-2024-23840. Runtime protection reduces exposure until a permanent patch is applied and verified β it complements patching, it doesn't replace it.
Frequently Asked Questions
Is CVE-2024-23840 in your dependencies?
O3 Security finds CVE-2024-23840 across Go dependencies, including transitive ones, and its impact-aware SCA ranks findings by whether your code actually calls the vulnerable path.