NIST deprecates RSA-2048 from 2030. Find every one of them before attackers do.
Malicious package

zeal-util-hooksnpm

Advisory published Updated

zeal-util-hooks is a confirmed malicious npm package (MAL-2026-16541) that steals credentials and exfiltrates sensitive data (malicious version 0.0.0). Do not install it — remove it immediately and rotate any exposed credentials.

Malicious code in zeal-util-hooks (npm)

MAL-2026-16541
Immediate action
Remove the package, then rotate any secrets the build/runtime could reach.
npm uninstall zeal-util-hooks

What this malware does

postinstall.js and index.js load canary.js, which POSTs a JSON payload to https://npm-canary.aveliscare.com/beacon at install time and on require. The payload contains os.hostname(), os.userInfo() username, cwd, process.platform, node version, npm user agent, parent package name/version, and a fixed allowlist of CI-identifier env vars (GITHUB_REPOSITORY, GITHUB_ACTOR, GITHUB_REF, GITHUB_RUN_ID, EAS/VERCEL/BUILDKITE identifiers). The endpoint is overridable via ZEAL_CANARY_URL but defaults to the hardcoded aveliscare.com host. The package advertises publisher Zeal (getzeal.io, github.com/zeal-io); the beacon destination aveliscare.com does not match that publisher. The collected fields are host/CI identifiers rather than credentials or filesystem contents, and no code execution, credential read, or persistent artifact is present. The install-time/require-time outbound network without opt-out breaks air-gapped installs, and the publisher/destination-domain mismatch is the shape typical of a dependency-confusion canary used to log where a placeholder name resolves.

Malicious versions

1 flagged
0.0.0

Indicators of compromise (SHA-256)

aadbcafaeb12ab9324d6bffe1b9c7bbe510663d033aaf4ff9b5ad5fee94156f9
2c9ed95500d2f1c637bcf47151a9220c0a81ee6cbd7a7aa4a8f66c74fed6e341

Detection & response playbook

Credential / info stealer
  1. Find it

    Search your lockfiles and build artifacts for zeal-util-hooks (version 0.0.0).

  2. If you installed it — respond

    zeal-util-hooks 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 zeal-util-hooks 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. zeal-util-hooks on npm has been identified as a malicious package (version 0.0.0 flagged). It should be removed immediately — do not install or keep it in your dependency tree.

Campaign

RLMA-2026-10815IN-MAL-2026-020747

References

Credits

  • Amazon Inspector · finder
  • ReversingLabs · finder

Detect & block this

O3 blocks zeal-util-hooks-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

zeal-util-hooks (npm) malicious package — MAL-2026-16541 | O3 Security