MAL-2026-14151 Malicious code in typescriptt-cli (npm)
Malicious package
Published
MAL-2026-14151 is a malicious package: typescriptt-cli (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-14151/ (Markdown: https://insights.sbomify.com/MAL-2026-14151/index.md)
- Package
- typescriptt-cli
- Registry
- npm
What is MAL-2026-14151?
MAL-2026-14151 is a malicious package in typescriptt-cli, published on 18 Aug 2026.
Official description
typescriptt-cli is a typosquat of typescript-cli whose index.js is an empty module; its only real behavior is in scripts/postinstall.js. On npm install, the postinstall script XOR-decodes a hardcoded byte array with key 'stf2026' to reconstruct a URL pointing at github.com/bebraz1/qPzM50V1AKG0rVlH/releases/download/null/main.exe, downloads that Windows executable to %TEMP%\main.exe, and spawns it detached with windowsHide:true and stdio:'ignore'. When the host is WSL (detected by scanning /proc/version and /proc/sys/kernel/osrelease for 'microsoft'), the script assembles a powershell.exe command from three additional XOR-obfuscated byte arrays and passes it to child_process.exec to fetch and run the same binary on the Windows host, breaking out of the WSL boundary. Before the drop, the script POSTs a JSON platform label to a hardcoded bare-IP install-tracking endpoint at http://193.70.34.101:20099/vote. The download URL uses a personal GitHub account with the release tag literally 'null', no hash or signature verification is performed, and the executable payload is opaque.
What should I do about MAL-2026-14151?
Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.