NIST deprecates RSA-2048 from 2030. Find every one of them before attackers do.
Part of a larger attack: @ensdomains published 44 malicious packages. See the full campaign →
Malicious package

@ensdomains/renewalnpm

Advisory published Updated

@ensdomains/renewal is a confirmed malicious npm package (MAL-2025-190810) that steals credentials and exfiltrates sensitive data (malicious version 0.0.13). Do not install it — remove it immediately and rotate any exposed credentials.

Malicious code in @ensdomains/renewal (npm)

MAL-2025-190810
Immediate action
Remove the package, then rotate any secrets the build/runtime could reach.
npm uninstall @ensdomains/renewal

What this malware does

The package @ensdomains/renewal was found to contain malicious code.

Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it.

This package was compromised by the Sha1-Hulud: The Second Coming NPM worm. The malicious payload steals tokens and credentials and publishes them to GitHub. The worm will propogate itself to NPM packages the user owns and establish persistence is a GitHub action. The package may also destroy the user's home directory.

Malicious versions

1 flagged
0.0.13

Indicators of compromise (SHA-256)

883538b98c1520c66d820cf152019f2961c458e1daa61065e6646dea1e14b339
9a66dd3b7f22e60f2047119e09a00f2034cd8c4d1844cad51f9a1c87515274c6
ffd4b1e1d688c97fe7843fd02d560842f60308a980ff6937ecb4a4901e600e22
d79bb913e6b5fc51388a6ea2bfd37dcf2478c927d55c3edc5c52d136b9ed1f7d

Detection & response playbook

Credential / info stealer
  1. Find it

    Search your lockfiles and build artifacts for @ensdomains/renewal (version 0.0.13).

  2. If you installed it — respond

    @ensdomains/renewal 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.

  3. Did it already run?

    If @ensdomains/renewal 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

No. @ensdomains/renewal on npm has been identified as a malicious package (version 0.0.13 flagged). It should be removed immediately — do not install or keep it in your dependency tree.

Campaign

GHSA-68rh-g4wj-348g

References

Credits

  • Amazon Inspector · finder

Detect & block this

O3 blocks @ensdomains/renewal-class packages before install and in CI — and if it already ran, its runtime egress monitoring catches the credential exfiltration and severs the channel.

Explore

@ensdomains/renewal (npm) malicious package — MAL-2025-190810 | O3 Security