Malicious code in @rblxts/services (npm)
A typosquatting package @rblxts/services (with extra 'l') was published to npm containing a malicious postinstall script that downloads and executes arbitrary Windows executables from an external file host. The package mimics the legitimate @rbxts/services roblox-ts library and uses obfuscation to evade registry scanners.
- Disclosed
- Last updated
- Blast radius
- Any developer or CI/CD system that installed @rblxts/services from npm during the malicious publication window; Windows systems executing the postinstall script would download and execute arbitrary binaries.
- Ecosystems
- Attack vectors
- Affected entities
- @rblxts/servicesTyposquatting package impersonating @rbxts/services; contains malicious postinstall script
The malicious package @rblxts/services was published to npm as a typosquatting attack against the legitimate @rbxts/services roblox-ts library. The package's README and index.js mimic the legitimate package's API surface to avoid immediate detection.\n\nThe attack vector is a postinstall script (scripts/postinstall.js) that deliberately obfuscates core Node.js API names ('fs', 'https', 'child_process', 'powershell', '.exe') using hex encoding and base64-encodes a hardcoded URL. When decoded, the URL points to https://files.catbox.moe/9bppy2.zip, an anonymous and mutable file host.\n\nOn Windows systems, the script downloads the ZIP file to %TEMP%, extracts it using PowerShell's Expand-Archive command, recursively walks the extracted directory tree, and spawns any .exe files found using child_process.spawn with detached, windowsHide, and stdio-ignored options to avoid user visibility. The ZIP file is then deleted. No hash or signature verification is performed on the downloaded content.\n\nThe obfuscation of API names and the URL is a deliberate evasion technique targeting automated registry scanners. The incident was identified and credited to the OpenSSF malicious-packages project.
Indicators of compromise
- Packages
- @rblxts/services
- Domains
- files.catbox.moe
Remediation
- Immediately uninstall @rblxts/services from all systems and projects
- Audit npm install logs and CI/CD pipelines for any installations of @rblxts/services
- On Windows systems that may have executed the postinstall script, perform malware scans and review process execution logs for suspicious .exe spawning
- Use the legitimate @rbxts/services package from the @rbxts scope instead
- Implement npm package name verification and typosquatting detection in dependency management workflows
- Consider using npm audit or similar tools to detect and flag suspicious packages
Sources
- GitHub Advisory GHSA-x6xv-2jr9-4pc5 · GitHub Advisory Database
Cite this entry
"Malicious code in @rblxts/services (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed August 10, 2026; last updated August 10, 2026. https://supplychainattack.org/incident/malicious-code-in-rblxts-services-npm-1s95i9
Suggest a correction
Found an error or have a newer source? Corrections to factual errors take priority over new entries.
Related incidents
- resolvedcritical
Malicious code in akamai-sensor (npm)
A malicious npm package named akamai-sensor impersonated Akamai's legitimate sensor_data anti-bot SDK. The package contained hidden JavaScript code concealed using invisible Unicode characters and implemented a dynamic command-and-control channel via a Google Calendar dead-drop, enabling arbitrary code execution on installation.
npmCompromised packageTyposquatting - resolvedcritical
Malicious code in depcruise-wrap-stream-in-html (npm)
depcruise-wrap-stream-in-html@99.9.1 is a malicious npm package that mimics an internal helper of dependency-cruiser. It is a hollow package that downloads and executes arbitrary code from a Google Cloud Storage bucket during installation.
npmCompromised packageDependency confusionTyposquatting - resolvedcritical
Malicious code in @finaxis/common-js (npm)
The npm package @finaxis/common-js was published with a README and keywords copied from lodash v4.18.1, but contained a heavily obfuscated Xelis (XEL) proof-of-work cryptominer instead of lodash functionality. Consumers installing this package would unknowingly run a covert CPU/GPU miner on their systems.
npmCompromised packageTyposquatting - containedcritical
Malicious code in axios-fast (npm)
axios-fast@1.0.1 on npm contains malicious code that exfiltrates environment variables (including AWS credentials, NPM tokens, and GitHub tokens) to an attacker-controlled webhook during package installation. The package typosquats the legitimate axios HTTP client library.
npmCompromised packageTyposquatting