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

crypto-credential-scannernpm

Malicious code in crypto-credential-scanner (npm) Remove it immediately and rotate any exposed credentials.

MAL-2026-4203
Immediate action
Remove the package, then rotate any secrets the build/runtime could reach.
npm uninstall crypto-credential-scanner

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”).

crypto-credential-scanner presents itself as a cryptocurrency credential scanning MCP server. No clean prior version is known; version 2.0.2 carries the malicious postinstall hook and scanner.js payload from first publication.

Package name advertises a 'crypto credential scanner' and ships files (wallet-scanner.js, scanner.js, build-verifier.js) whose contents match the structural fingerprints of a credential and crypto-wallet exfiltrator. scanner.js contains a hardcoded C2 endpoint at https://ddjidd564.github.io with HTTPS POST/GET request paths (lines 142-161, 323), combined with execSync of whoami and os.hostname() collection that is sent to that endpoint. wallet-scanner.js spans ~900 lines and combines child_process, fs, https, os, repeated POST request paths, curl invocations, and ping — consistent with the wallet/keystore enumeration shape (filesystem walks of profile directories plus outbound POSTs of harvested data). build-verifier.js contains an execSync('docker push...') alongside child_process+https usage, suggesting opportunistic abuse of any docker credentials found on host. The combination of (a) hardcoded attacker-controlled GitHub Pages C2 bound to https.request/POST, (b) host-identity collection (whoami, os.hostname), and (c) filesystem enumeration plus outbound network from package code matches the documented credential/wallet stealer pattern. Installer harm: any environment that installs or loads this package exposes host identity, filesystem contents related to wallets/credentials, and any docker registry artifacts to the attacker-controlled endpoint.

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
2.0.12.0.22.0.33.0.03.0.13.0.23.0.33.1.03.1.13.1.23.1.63.1.73.1.83.1.9

Indicators of compromise (SHA-256)

f1e8d672afd83598fe070320004541498496f2743dc8a39d648e0b906278013e
62e1ffc54100a3e400bf1b1b5bac603690d08770a1504d33a33c75fae4ca046c
71e97d9fddad0c3bebcc747af6cafa0ddd21832677f9963d1803be4d2c488c31
a0c39f6bb735ce82eda605cb1f5e68918dea2f0ba28998341ef218541b408e6b
acb25e34f23d21bdc098f8c25828d689c744ddcbe92cf01633be95c241645819
fdf7730d80e017946969a3ecc74b725d8149bee13d811eba13793511f9f099b7
feeb8b20e32cdcb7376a740d58fa16a88a017205c6e37e22ca825afda6fefcc0
2d4c49b877eb710337b541355fbef4fe2b2aee3aa29767c311a30f8a42087364
41020cff8fb847f4df0986fd502ad68b66f0eaff22add3dce4b3040dc760d3af
50bad278873fed93c75d90a1fc3a2ae25e41c5e9c6012a2859eb53595ca42287
860095d96c5af01bd44465a5a25b5e5aff0fa2866538e4ff175c8f0f8a74d5af
89d532468dc77b379200a8b5432ace7d361832aad726a184c2052cd70910f450
9b39d35b90259b2d3875f044b01492edc2459676c7e067d6fd89d0d650845d8e
0915fa25fc7e78c33546453787e2cb27755f80e3fce3cbd5410e82af446f4265
3193f5f3842d4e362d37bede52fec0ed16abefd8434988a23b14822035e81b9b
8f1b1f0d15a06850de8546c9ff3ed0a70632b4a8c1fd33241a7a4f1e0bcfd833
c0967fda3b36c7b5368755bf2fee6fe726c94f4e8f5f6d1d7e3507b69ebfd018
d03018d126298173652e07307c1f3c92eefa7b6932ba3468d76d3505c6aa9813
dccbfb4cd365c723c01ae35f9e037d43e3236846b7807a54b65fbb9a4ae8f93f
571445c5acacfd83a8e3d075051e038d6666ccb35b4f793fa9a7e462340ec536
8bef0d99c836a9d8e620670103c58c78db58e51d417fe52513bad85264792a19
9fc8922d5c9b81e30c5a39baa284f33a7bfd4dd2d9e94eb924b6535cb96c44d4
12f958d9eb57c9408dc3e3dbbfd4c0811afe5b05ce12f58399b83cef37fd3b46
1bab42de6e4fabfcab5a096f1c6bc7c5da9f3f92d148175e5543a6d90927397f

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 crypto-credential-scanner (14 malicious versions). O3 Security's supply-chain scanner checks every dependency against known-malicious package intelligence at install time and in CI, flagging crypto-credential-scanner across your stack and pipelines.

  2. If you installed it — respond

    crypto-credential-scanner 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 crypto-credential-scanner 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 crypto-credential-scanner 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. crypto-credential-scanner on npm has been identified as a malicious package (versions 2.0.1, 2.0.2, 2.0.3, 3.0.0, 3.0.1, 3.0.2, 3.0.3, 3.1.0, and 6 more flagged). It should be removed immediately — do not install or keep it in your dependency tree.

Campaign

GHSA-9vgj-5wvq-cwp6IN-MAL-2026-003981IN-MAL-2026-003845IN-MAL-2026-004061IN-MAL-2026-003993IN-MAL-2026-003977IN-MAL-2026-003934IN-MAL-2026-003890IN-MAL-2026-003911IN-MAL-2026-003719IN-MAL-2026-003979IN-MAL-2026-003980IN-MAL-2026-004082IN-MAL-2026-003910IN-MAL-2026-003704IN-MAL-2026-003994IN-MAL-2026-003822IN-MAL-2026-004048IN-MAL-2026-004076IN-MAL-2026-003720IN-MAL-2026-003935IN-MAL-2026-003891IN-MAL-2026-003823IN-MAL-2026-003846

References

Credits

  • Amazon Inspector · finder
  • SafeDep · finder

Detect & block this

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

crypto-credential-scanner (npm) malicious package — MAL-2026-4203 | O3 Security