@qlab/uinpm
Malicious code in @qlab/ui (npm) Remove it immediately and rotate any exposed credentials.
What this malware does
package.json declares scripts.preinstall: node index.js, causing index.js to run automatically during npm install. index.js collects os.hostname(), os.userInfo().username, os.homedir(), dns.getServers(), the current working directory, and the contents of package.json, then POSTs the payload over HTTPS to https://eo1e4fhn1i67p8r.m.pipedream.net. The same beacon is duplicated in ai/index.js, which is exposed through the package's exports map as ./ai, so require('@qlab/ui/ai') re-fires the POST at import time. The combination of preinstall lifecycle execution, an attacker-controlled webhook endpoint, and harvesting of installer host/user/DNS/package metadata is a dependency-confusion reconnaissance beacon targeting the @qlab scope. Installers are the direct victims: simply running npm install ships their machine identity to the attacker.
The OpenSSF Package Analysis project identified '@qlab/ui' @ 2.0.6 (npm) as malicious.
It is considered malicious because:
- The package communicates with a domain associated with malicious activity.
Malicious versions
Indicators of compromise (SHA-256)
Frequently asked questions
Campaign
References
Credits
- Amazon Inspector · finder
- OpenSSF: Package Analysis · finder
Scan your dependencies
O3 Security blocks malicious packages like this at install time and in CI.
Supply-chain protection