OpenSSF/OSV advisory MAL-2026-14168 confirms this npm version as malicious. chalk-util@1.0.0 is a typosquat of chalk whose index.js exports an empty object; the package's only functional code is scripts/postinstall.js. On npm install, postinstall XOR-decodes an obfuscated URL (key 'stf2026') pointing to an https://github.com/... asset, downloads it to %TEMP%\main.exe on Windows (and via a decoded PowerShell bridge command on WSL-detected Linux, identified through /proc/version), and spawns...
Source
OpenSSF Malicious Packages via OSV
Summary
Malicious code in chalk-util (npm)
Details
chalk-util@1.0.0 is a typosquat of chalk whose index.js exports an empty object; the package's only functional code is scripts/postinstall.js. On npm install, postinstall XOR-decodes an obfuscated URL (key 'stf2026') pointing to an https://github.com/... asset, downloads it to %TEMP%\main.exe on Windows (and via a decoded PowerShell bridge command on WSL-detected Linux, identified through /proc/version), and spawns it detached with a hidden window. The same postinstall reconstructs the bare IP 193.70.34.101 via ['193','70','34','101'].join('.') and POSTs a JSON body containing the resolved platform label to http://193.70.34.101:20099/vote over plain HTTP as an install beacon. Four separate byte-array constants (ADDON_ENC, BRIDGE_LAUNCHER_ENC, BRIDGE_SCRIPT_PRE_ENC, BRIDGE_SCRIPT_POST_ENC) are XOR-decoded at runtime to hide the fetch URL and the shell command passed to exec(). The auto-execute-on-default-install gate is satisfied via the postinstall lifecycle hook; the fetched binary contents are attacker-controlled and unverified.
Decision reason
OpenSSF Malicious Packages via OSV confirms chalk-util@1.0.0 as malicious (MAL-2026-14168): Malicious code in chalk-util (npm)