@temptation.js/utilsnpm
Advisory published Updated
@temptation.js/utils is a confirmed malicious npm package (MAL-2026-14410) that steals credentials and exfiltrates sensitive data (malicious versions 999.9.15, 999.9.16). Do not install it — remove it immediately and rotate any exposed credentials.
Malicious code in @temptation.js/utils (npm)
What this malware does
The package registers a preinstall hook (node index.js) that runs on npm install and harvests installer-side data: os.hostname(), OS username, home directory, local IPv4, public IP resolved via https://api.ipify.org / https://icanhazip.com / https://ifconfig.me, DNS resolver info, INIT_CWD, parent project package.json fields, CI context (GitHub Actions/GitLab/Jenkins/Azure DevOps repo, actor, run id), AWS_REGION, npm registry URL, git user.email domain, and the output of gh api user --jq.login and npm whoami — using the installer's authenticated gh/npm CLI sessions to attribute the install to a real developer account. The collected JSON is hex-encoded, split into 60-character chunks, and exfiltrated via DNS resolutions of the form <i>-<hex>.u-<uuid>.da51rv0hb2uc72tg4gvgdepinjcallbk1.oast.fun (an OAST/interactsh callback host) as well as HTTPS/HTTP POSTs to /poc/<uuid> at the same host. A source comment describes the DNS channel as designed to survive corporate egress filtering. The version number 999.9.15 is a dependency-confusion overshoot intended to win private-name resolution against an internal package of the same name.
The OpenSSF Package Analysis project identified '@temptation.js/utils' @ 999.9.16 (npm) as malicious.
It is considered malicious because:
- The package communicates with a domain associated with malicious activity.
Malicious versions
Indicators of compromise (SHA-256)
Detection & response playbook
Credential / info stealerFind it
Search your lockfiles and build artifacts for @temptation.js/utils (2 malicious versions).
If you installed it — respond
@temptation.js/utils 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 @temptation.js/utils 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
- OpenSSF: Package Analysis · finder
Detect & block this
O3 blocks @temptation.js/utils-class packages before install and in CI — and if it already ran, its runtime egress monitoring catches the credential exfiltration and severs the channel.