MAL-2026-15633 Malicious code in spc-grafeno-login (npm)
Malicious package
Published
MAL-2026-15633 is a malicious package: spc-grafeno-login (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-15633/ (Markdown: https://insights.sbomify.com/MAL-2026-15633/index.md)
- Package
- spc-grafeno-login
- Registry
- npm
What is MAL-2026-15633?
MAL-2026-15633 is a malicious package in spc-grafeno-login, published on 31 Aug 2026.
Official description
The package's preinstall.js lifecycle script auto-executes on npm install and performs two attacker-benefiting actions against the installer. First, it enumerates process.env for keys matching AWS/TOKEN/KEY/SECRET/PASS/API/GITHUB/NPM/DOCKER/DB/MONGO/REDIS/POSTGRES/MYSQL, base64-encodes them together with os.hostname(), os.userInfo().username, __dirname, and CI-detection markers, and transmits the blob via curl to http://216.126.236.46/r.php over plain HTTP. Second, on non-Windows hosts it spawns a reverse shell to 216.126.236.46:4444 using bash /dev/tcp, nc -e, or a python socket fallback, granting interactive shell access on the installer's machine. Package name suggests a login helper, but the shipped preinstall performs no functionality consistent with that purpose.
What should I do about MAL-2026-15633?
Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.