MAL-2026-4641 Malicious code in platform-tempo (npm)
Malicious package
Published
MAL-2026-4641 is a malicious package: platform-tempo (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-4641/ (Markdown: https://insights.sbomify.com/MAL-2026-4641/index.md)
- Package
- platform-tempo
- Registry
- npm
What is MAL-2026-4641?
MAL-2026-4641 is a malicious package in platform-tempo, published on 25 May 2026.
Official description
[email protected] declares a
preinstall hook that runs poc.js on every npm install. The script collects host identity (os.hostname(), whoami /all / id, ipconfig / ip a), the parent project's package.json, git remotes, CI configuration files (.gitlab-ci.yml, .github/workflows/*, Jenkinsfile, azure-pipelines.yml), and a curated dump of environment variables matching TOKEN/AWS/AZURE/NPM/GITHUB/GITLAB/CI patterns. The collected data is HTTPS POSTed to a hardcoded interactsh OAST domain (d8a5d9pon5bugoc35cngp9hcregcqyezu.oast.me) with the package name as the path, plus a DNS beacon to the same host. The package name platform-tempo combined with version 99.0.1 is the canonical dependency-confusion shape — designed to be auto-resolved by an internal package resolver in preference to a private package of the same name. Self-described bug bounty framing in the package description does not change the install-time impact on any third party whose resolver picks up this public name: their CI tokens, cloud credentials, and source-tree metadata are shipped to the attacker-controlled OAST endpoint.What should I do about MAL-2026-4641?
Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.