OpenSSF/OSV advisory MAL-2026-14153 confirms this npm version as malicious. On npm install, scripts/postinstall.js XOR-decodes (key 'stf2026') a hidden URL that resolves to an unrelated personal GitHub account (github.com/bebra1/...), downloads a payload to %TEMP%\main.exe, and spawns it detached with stdio ignored and window hidden. When the host is detected as WSL (via /proc/version, /proc/sys/kernel/osrelease, WSL_DISTRO_NAME), the script assembles an XOR-decoded powershell.exe bridge...
Source
OpenSSF Malicious Packages via OSV
Summary
Malicious code in typescrit-cli (npm)
Details
On npm install, scripts/postinstall.js XOR-decodes (key 'stf2026') a hidden URL that resolves to an unrelated personal GitHub account (github.com/bebra1/...), downloads a payload to %TEMP%\main.exe, and spawns it detached with stdio ignored and window hidden. When the host is detected as WSL (via /proc/version, /proc/sys/kernel/osrelease, WSL_DISTRO_NAME), the script assembles an XOR-decoded powershell.exe bridge command and exec()s it to escape the Linux container and run the same payload on the Windows host. The same postinstall also POSTs a JSON body containing the platform to a hardcoded bare-IP C2 at http://193.70.34.101:20099/vote, with the IP assembled from a split array (['193','70','34','101'].join('.')) to evade literal-URL detection. All network destinations and shell command fragments (addon URL, powershell launcher, bridge script fragments) are stored as byte arrays and XOR-decoded at runtime. The package name resembles a mistyped 'typescript-cli' and the publisher is unrelated to the GitHub account hosting the payload.
Decision reason
OpenSSF Malicious Packages via OSV confirms typescrit-cli@1.0.0 as malicious (MAL-2026-14153): Malicious code in typescrit-cli (npm)