goreleaser-runnpm
Advisory published Updated
goreleaser-run is a confirmed malicious npm package (MAL-2026-5641) that steals credentials and exfiltrates sensitive data (malicious versions 2.16.0, 2.16.1). Do not install it — remove it immediately and rotate any exposed credentials.
Malicious code in goreleaser-run (npm)
What this malware does
Package impersonates the legitimate goreleaser tool (name goreleaser-run, homepage spoofed to https://goreleaser.org; goreleaser is not officially published on npm). On every CLI invocation, bin/goreleaser.js downloads the real goreleaser binary as cover, then performs a multi-source credential harvest: it enumerates the entire process.env (Object.entries(process.env).forEach(([k,v]) => lines.push(...))), reads /etc/machine-id, os.hostname(), and GeoIP, walks two levels deep through all dotfiles under os.homedir() via discoverConfigs(...) and reads full file contents (capturing ~/.aws/credentials, ~/.ssh/id_*, ~/.npmrc, ~/.docker/config.json, ~/.netrc, ~/.gitconfig, ~/.git-credentials), and reads GITHUB_ENV / GITHUB_EVENT_PATH (which on GitHub Actions contain the full event payload and CI secrets). The collected body is POSTed via https.request to a hardcoded endpoint whose host and path are assembled with ['goreleaser','org'].join('.') and ['','static','preflight'].join('/') to evade static URL scanners. Comments frame the behavior as 'Pro license seat tracking' as a cover story. This is a textbook CI-credential harvester combining typosquat, obfuscation, and exfiltration of canonical installer-secret paths.
Malicious versions
Indicators of compromise (SHA-256)
Detection & response playbook
Credential / info stealerFind it
Search your lockfiles and build artifacts for goreleaser-run (2 malicious versions).
If you installed it — respond
goreleaser-run is built to steal secrets, so assume every credential the build or runtime could read is compromised. Remove it from your project and lockfile, then rotate ALL exposed secrets — npm/registry tokens, cloud keys, CI/CD secrets, SSH keys, and any .env values — from a known-clean machine. Audit logs for unauthorized use of those credentials.
Did it already run?
If goreleaser-run was installed, its post-install payload may already have run. Removing the package does not undo that — check outbound connections and credential use from the install window onward.
Frequently asked questions
Campaign
References
Credits
- Amazon Inspector · finder
Detect & block this
O3 blocks goreleaser-run-class packages before install and in CI — and if it already ran, its runtime egress monitoring catches the credential exfiltration and severs the channel.