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

wallet-security-checkernpm

Malicious code in wallet-security-checker (npm) Remove it immediately and rotate any exposed credentials.

MAL-2026-4219
Immediate action
Remove the package, then rotate any secrets the build/runtime could reach.
npm uninstall wallet-security-checker

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

wallet-security-checker presents itself as a wallet security checking MCP server. The malicious postinstall hook was injected in version 1.0.3 — prior version 1.0.1 (published 2026-05-19) contained no hook, confirming an intentional posture-degradation update.

Package advertises itself as a DeFi wallet-safety MCP server but its actual behavior is a credential and crypto-wallet stealer. On npm install, package.json's postinstall script reads ~/.ssh, ~/.ethereum, ~/.bitcoin, ~/.env, ~/.bash_history, ~/.zsh_history, and ~/.git-credentials and POSTs the first 1000 bytes of each plus hostname/user info to a webhook URL dynamically resolved from https://ddjidd564.github.io/defi-security-best-practices/config.json — an attacker-controlled GitHub Pages redirector that lets the operator rotate exfil endpoints without republishing the package. scanner.js extends this with an active scan that recursively walks $HOME (including.ssh,.ethereum,.bitcoin,.solana, AppData, Library/Application Support), regex-matches BIP-39 mnemonics, private keys, and API tokens, reads ~/.npmrc, ~/.gitconfig, ~/.git-credentials, and shell histories, and enumerates process.env for variables matching key|secret|token|password|private|mnemonic|wallet|seed, then POSTs the harvested findings to the same webhook. index.js's MCP tools/call handler additionally relays every tool invocation's user-supplied arguments (the wallet addresses the user is asking the tool to verify), HOME, cwd, and hostname to the attacker, and triggers the home-directory credential scan in parallel. The advertised purpose is the inverse of the actual behavior — a cover-story stealer targeting crypto holders.

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

12 flagged
1.0.31.0.42.0.02.0.12.0.22.0.32.1.02.1.12.1.62.1.72.1.84.0.0

Indicators of compromise (SHA-256)

741636c34c99a5a4fe99ab8ceaebb9b8d624f3659954e16b3c83c336fadda563
1a998f5eedbfb675ad10a45e00da642c9aba91ba92ea01d74e9de7feeeee6772
2728cb9af87bd28b05897d5ccd191d0a23e18e1a3a932eaf772b10fba0dbb671
4c618be8040e981663d733748999920fb1bab08d2e92a80a2452744c6e6148a2
89cf1d957892456d57a591aac8efeb4a91fc0ebba61333751a4ba19906315f3f
fd5c939453ece9eb5b9cf91415770f1d798618f6bc40cfb6ea999db4cd9b0d01
87c61990457e5866d619d36a3ae72e400733e169bccf26b777a099e061fba005
583f3bdf66437e9bda6b1e4d91b07ed09c41eaae5c5ecc552cbd3c092c38f209
7f3e71e6e8966a6c30767c92daa99b85d89111bc9f06fb208eb19eae0feafae9
81b2da85ce04c033057e1999075787a55739a3cd394d11e80d360106bf57d5e2
85cafab29ccb6aebf789bbb4493b43dedf2c460e5d19dded4758c294613f02dd
c89bf65898ca65214f98b1ec88221dc38e26ad569fb41ba67ef787d62b045964
e2a7abed98eb8ad5b3e9805b7cc0c786084a0f4591a4b5f0e74ec0778b296728
5c1fe82600b2db2f1c9019797f4529b111ea4cb46610199515e498ca8c12020c
f6d65a33c124dffe24eb6677ea497e26591719d8eaa415bef932b7e09fa3fcee
15da49437aeb63b5279c3203334bd0e81158e09bc66f210b4ed167288dd331d0
1b8285b34a0b809e9d24230e2cd1efefbdfb9ce864a39aba927e562c9174c4ec
342317df276b851a0244bd0933c6e4d7063b783954b99f02e18b188120be7a4f
5de4a15e451f8560d7adffe12e3e66d41af5258cada4f415e9dcc5a4fa550545
e7b8b6ce056d4c2b2cf6de3eab0bdf30cac8f490d9df0e654d077819325e9784
f1095cf65f4f3297db8595582a749314dacc14b69f4335a18cef8b3ab71fe98f

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

  2. If you installed it — respond

    wallet-security-checker 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 wallet-security-checker 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 wallet-security-checker 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. wallet-security-checker on npm has been identified as a malicious package (versions 1.0.3, 1.0.4, 2.0.0, 2.0.1, 2.0.2, 2.0.3, 2.1.0, 2.1.1, and 4 more flagged). It should be removed immediately — do not install or keep it in your dependency tree.

Campaign

GHSA-2j9x-hxgf-42vhIN-MAL-2026-004068IN-MAL-2026-004095IN-MAL-2026-003963IN-MAL-2026-003862IN-MAL-2026-003971IN-MAL-2026-003841IN-MAL-2026-003831IN-MAL-2026-003957IN-MAL-2026-003946IN-MAL-2026-003861IN-MAL-2026-003947IN-MAL-2026-003723IN-MAL-2026-003970IN-MAL-2026-004087IN-MAL-2026-003724IN-MAL-2026-003896IN-MAL-2026-003912IN-MAL-2026-003897IN-MAL-2026-004043IN-MAL-2026-003913

References

Credits

  • Amazon Inspector · finder
  • SafeDep · finder

Detect & block this

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

wallet-security-checker (npm) malicious package — MAL-2026-4219 | O3 Security