Your RSA-2048 keys break in 2030. Find every one of them before attackers do.
Malicious package

defi-env-auditornpm

Malicious code in defi-env-auditor (npm) Remove it immediately and rotate any exposed credentials.

MAL-2026-4204
Immediate action
Remove the package, then rotate any secrets the build/runtime could reach.
npm uninstall defi-env-auditor

What this malware does

A coordinated supply-chain attack comprising 10 npm packages published by maintainer ddjidd5640 ([email protected]) within a 48-hour window (2026-05-19T03:55Z – 2026-05-21T04:31Z). All packages masquerade as legitimate Web3/DeFi developer security tools (MCP servers) while silently exfiltrating credentials, wallet keys, shell history, SSH keys, and environment variables on install and on every MCP tool invocation. The postinstall hook fetches a dynamic C2 webhook URL from https://ddjidd564.github.io/defi-security-best-practices/config.json (hardcoded fallback: https://webhook.site/8d334534-1c63-4f4f-a0d7-95c446c8b233). At runtime, scanner.js performs a recursive credential sweep on every MCP tool call targeting cryptocurrency wallets (~/.ethereum, ~/.bitcoin, ~/.solana), SSH keys, dotfiles, and environment variables. MCP tool handlers in index.js are named to solicit private key material directly from the user or AI agent (e.g., verify_key_format: “Private key or key material to validate”).

defi-env-auditor presents itself as a DeFi environment auditing MCP server. The malicious postinstall hook was injected in version 0.3.2 — prior version 0.3.0 (published 2026-05-19) contained no hook, confirming an intentional posture-degradation update. scanner.js is confirmed byte-for-byte identical to the version in chain-key-validator, exfiltrating discovered credentials to the shared C2 endpoint on every MCP tool invocation.

package.json's postinstall hook runs an inline Node script that reads installer secrets — ~/.ssh, ~/.ethereum, ~/.bitcoin, ~/.env, ~/.bash_history, ~/.zsh_history, ~/.git-credentials — together with host, user, and cwd, then POSTs the payload to a webhook URL dynamically resolved from https://ddjidd564.github.io/defi-security-best-practices/config.json. The GitHub Pages JSON acts as mutable C2 indirection: the operator can rotate exfil endpoints without republishing. scanner.js extends the harvest at runtime, recursively walking ~/.ethereum, ~/.bitcoin, ~/.solana, ~/.ssh, AppData, and Library/Application Support to depth 3, matching files against private-key and BIP-39 mnemonic regexes, reading ~/.npmrc, ~/.gitconfig, ~/.git-credentials, and shell history, and enumerating environment variables containing key/secret/token/private/mnemonic/wallet/seed before POSTing results to the same webhook. The exposed MCP tool handler in index.js additionally beacons tool name, raw arguments, OS username, hostname, cwd, and presence flags for INFURA_API_KEY/ALCHEMY_API_KEY/PRIVATE_KEY/DEPLOYER_KEY on every tools/call invocation. The package's self-description as a DeFi environment auditor is a deliberate cover story; an inline comment in scanner.js states the code runs silently when the AI agent calls any MCP tool to scan for wallets and keys.

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.

Malicious versions

14 flagged
0.3.00.3.10.3.20.3.31.3.01.3.11.3.21.3.31.4.01.4.11.4.61.4.71.4.81.4.9

Indicators of compromise (SHA-256)

886154e5f29c43fcedfdf8a17f01242db38c568afa8dd397941a37b02431a41e
9fe5adc75124992b28d47e9aee5507caf2a45585c7c5f41dd89d4560ad0e3b5b
e714ced69ce7b6ee8bf293c2d5c333579d8da327aabf85f1bc4e112f927ea576
e88464d74b521b87d1b3f87ec153df14b52b15f6a5607cb6b96b6840d3307f0b
2857be641e8cef51db674e98e5e6fbffcc7c577f733a21eaad23563a587795f1
2b33b52efa7b4a7f5b293601ef69353d66d932af3ce4591dfd6b668c00e1e361
5a95014406a5cec63113651c9e47858c5b828738e8154381274035962d68cc8f
7d4cf73068a4593016f7888f19117b0684d6ea2ecec5f445c190bdbb4fa8001a
c58940cb6310ef68395dd950c6c22791ac6becf1fd3cef98f38ab34b5e0d6224
ed338a233c9d3e44f289dc8ae8b000c76c1842dc55c371f0d599ba1d89e69717
390214f5dd5d9fc8b8719a354ef1f06ca6a5f78626d991581573e3999492207f
525515534d390d6037e320d3489b84313b75e4906be9c5a69e3910c60be49760
5fa4c18ab55ca69620f273d1d84b5415bbd4f026665223e9f437627601d2fee3
8a2976677858a45bfc53c77f588e27b0c31bce8ff031c3426b8c4c54a5d8b9dc
b50a504d545bb6321f39a556ade0288641301064edf8a9bba051fa8a1af3c7eb
ce7515fe7a900fa197686e26b16203f4a04d0188cdcf9daeb94e46dac3201bf2
f6f5136e2d758c426fe6e8b4c2b6399db6778a162af35a65af15bcab199a8b9b
d3d17633cabc0187d2bd036889f300db8e4172c57b56cd7afc0100450ab7c88d
dac4ef532c41eed30a119ffca9ba4feb04867fd9583a75d3ccb8d9b23a4531b3
f48f6d79cdbd63d780482c8a1ada998a019d702162ee581ed0bb77c5cad1fc1d
31c9229d0000345619072357be63bd0ff30c4d7c84c5e7000748f466f4a5a83b
81be8d117f789de644bcd67fbc39415717d24f1c4f53db155a99d31db4d83523
88d88ef8344eb6732c365091e176964c67bfbbccdb9c282b3ba7a1eef0f1ade8
925da28f3dad193b59fa807931536dac03624104401a798aa7777f8826fc2fda

Detection & response playbook

Credential / info stealer
  1. Find it

    Scan your lockfiles (package-lock.json, pnpm-lock.yaml, yarn.lock, requirements.txt, poetry.lock, etc.) and build artifacts for defi-env-auditor (14 malicious versions). O3 Security's supply-chain scanner checks every dependency against known-malicious package intelligence at install time and in CI, flagging defi-env-auditor across your stack and pipelines.

  2. If you installed it — respond

    defi-env-auditor 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 defi-env-auditor was ever installed, its post-install/runtime payload may have already executed. O3's L7 egress monitoring and runtime eBPF sensors detect the credential exfiltration or command-and-control callback after install and block the malicious outbound channel, so you catch and contain the actual compromise — not just the presence of the package.

  4. How O3 protects you

    O3 blocks defi-env-auditor before install through its supply-chain scanner, and if it has already run, detects and severs the exfiltration or C2 callback at runtime through L7 egress monitoring and eBPF.

Frequently asked questions

No. defi-env-auditor on npm has been identified as a malicious package (versions 0.3.0, 0.3.1, 0.3.2, 0.3.3, 1.3.0, 1.3.1, 1.3.2, 1.3.3, and 6 more flagged). It should be removed immediately — do not install or keep it in your dependency tree.

Campaign

GHSA-3wcx-fvrv-6w6wIN-MAL-2026-003923IN-MAL-2026-003930IN-MAL-2026-004056IN-MAL-2026-003953IN-MAL-2026-003852IN-MAL-2026-003985IN-MAL-2026-003851IN-MAL-2026-003644IN-MAL-2026-004093IN-MAL-2026-003828IN-MAL-2026-003718IN-MAL-2026-003922IN-MAL-2026-003705IN-MAL-2026-003893IN-MAL-2026-004045IN-MAL-2026-003958IN-MAL-2026-004067IN-MAL-2026-003931IN-MAL-2026-003984IN-MAL-2026-003717IN-MAL-2026-003892IN-MAL-2026-003827IN-MAL-2026-004080

References

Credits

  • Amazon Inspector · finder
  • SafeDep · finder

Detect & block this

O3 blocks defi-env-auditor-class packages before install and in CI — and if it already ran, its runtime egress monitoring catches the credential exfiltration and severs the channel.

defi-env-auditor (npm) malicious package — MAL-2026-4204 | O3 Security