@doaction/wasm-loadernpm
Malicious code in @doaction/wasm-loader (npm) Remove it immediately and rotate any exposed credentials.
What this malware does
Package name and description advertise a 'WASM loader,' but the tarball ships no WebAssembly code. Instead, package.json declares "preinstall": "node scripts/postinstall.js", and scripts/preinstall.js unconditionally require()s @doaction/shared/bin/preinstall.js, which the package self-documents as shipping environment telemetry to a Datadog intake on every npm install. This auto-fires for every installer with no opt-in or disclosure in the README, and the destination is hardcoded outside the installer's control. Additionally, src/index.js exports collectEnv and sendToDatadog as part of the public module surface (module.exports = { collectEnv, sendToDatadog, reportWasmEnv, WASM_WHITELIST }), giving any caller a primitive to send arbitrary process.env contents to the same Datadog endpoint, bypassing the advertised WASM_WHITELIST path. The combination of a misleading package identity (wasm loader with no wasm), a 9.9.9 dependency-confusion-shaped version, a scoped org, and install-time + import-time exfiltration primitives to a single hardcoded third-party intake constitutes installer-side data exfiltration.
Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it.
Malicious versions
Indicators of compromise (SHA-256)
Frequently asked questions
Campaign
References
Credits
- Amazon Inspector · finder
Scan your dependencies
O3 Security blocks malicious packages like this at install time and in CI.
Supply-chain protection