AI Security Review
scanned 4h ago · by lpm-firewall-aiInstall-time script exfiltrates host fingerprint and project path data to an external webhook. This is unconsented telemetry unrelated to package functionality.
Static reason
One or more suspicious static signals were detected.
Trigger
npm install runs package postinstall
Impact
Leaks developer username, working directory, hostname, local IP, platform, and install timestamp to attacker-controlled endpoint.
Mechanism
host fingerprint exfiltration over HTTPS
Attack narrative
On install, npm executes the postinstall script `node index.js`. The script builds a JSON payload from OS and process data, including username, initial/current working directory, hostname, local IPv4 address, platform, and timestamp, then sends it via HTTPS POST to a webhook.site URL. This behavior is not package-aligned and is typical dependency-confusion reconnaissance/exfiltration.
Rationale
Direct source inspection confirms an install-time network exfiltration path for local host and project metadata. The concrete postinstall trigger and external webhook make this malicious rather than merely suspicious.
Evidence
package.jsonindex.js
Network endpoints1
webhook.site/264e1903-28ea-48ea-8c55-be58c5a76791
Decision evidence
public snapshotAI called this Malicious at 98.0% confidence as Malware with low false-positive risk.
Evidence for block
- package.json defines postinstall: node index.js
- index.js runs as main and postinstall target
- index.js collects username, INIT_CWD/cwd, hostname, local IPv4, platform, timestamp
- index.js POSTs collected host data to webhook.site path /264e1903-28ea-48ea-8c55-be58c5a76791
Evidence against
- No credential file reads observed
- No child_process, eval, persistence, or destructive file mutation observed
Behavioral surface
EnvironmentVarsNetwork
Source & flagged code
2 flagged · loading sourcepackage.jsonView file
•scripts.postinstall = node index.js
High
Install Time Lifecycle Scripts
Package defines install-time lifecycle scripts.
package.jsonView on unpkgindex.jsView file
1const os = require('os');
L2: const https = require('https');
L3:
L4: function localIP() {
L5: const nets = os.networkInterfaces();
L6: for (const iface of Object.values(nets)) {
...
L15: user: os.userInfo().username,
L16: cwd: process.env.INIT_CWD || process.cwd(),
L17: hostname: os.hostname(),
L18: localIP: localIP(),
...
L40:
L41: req.write(payload);
High
Host Fingerprint Exfiltration
Source collects local host identity data and sends it to an external endpoint.
index.jsView on unpkg · L1Findings
2 High2 Medium1 Low
HighInstall Time Lifecycle Scriptspackage.json
HighHost Fingerprint Exfiltrationindex.js
MediumNetwork
MediumEnvironment Vars
LowScripts Present