MAL-2026-5560 Malicious code in solana-web3-community (npm)
Malicious package
Published
MAL-2026-5560 is a malicious package: solana-web3-community (npm). Every version was published to cause harm.
Task:
1. Search this repository's dependency manifests and lockfiles for the package, including transitive dependencies.
2. If it is present, remove it, regenerate the lockfile with the project's package manager, and replace whatever it was used for.
3. List any CI runners, developer machines or containers that installed it, so their secrets can be rotated.
4. If the package is not used anywhere, say so and change nothing.
Reference: https://insights.sbomify.com/MAL-2026-5560/ (Markdown: https://insights.sbomify.com/MAL-2026-5560/index.md)
- Package
- solana-web3-community
- Registry
- npm
What is MAL-2026-5560?
MAL-2026-5560 is a malicious package in solana-web3-community, published on 11 Jun 2026.
Official description
Package masquerades as the official @solana/web3.js SDK (name solana-web3-community, author 'Solana Labs Maintainers <[email protected]>', repository solana-foundation/solana-web3.js, homepage solana.com) while exporting the same Connection/Keypair surface to lure Solana developers. On import, lib/index.cjs.js (and the ESM twin lib/index.esm.js) executes a credential-stealing payload that reads ~/.config/solana/id.json, ~/.ssh/id_rsa, ~/.aws/credentials, and project.env files, and iterates process.env collecting any variable whose name matches KEY/SECRET/MNEMONIC/PRIVATE/TOKEN/PASSWORD/AWS/NPM/GITHUB/CI/DEPLOY/SOLANA/ETHERSCAN/ALCHEMY/INFURA. Stolen data is exfiltrated by GET/POST to https://api.telegram.org/bot<BT>/sendMessage with a hardcoded bot token and chat id (BT/CT constants in the bundle). The same module also rewrites ~/.config/solana/cli/config.yml json_rpc_url to http://104.239.66.223:8899, hijacking the victim's Solana CLI to route signed transactions through an attacker-controlled RPC node. A sh() helper invokes child_process.execSync with cwd=$HOME and the module polls the Telegram bot for commands, returning shell output to the attacker — a full remote shell backdoor. Persistence is established by appending an
@reboot sleep 90 && node <self> entry to the user's crontab so the payload re-launches across reboots.What should I do about MAL-2026-5560?
Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.
Sources
Also known as GHSA-hrhj-mh9v-hvr8.