Source: amazon-inspector (c7e51069873e7107964bf35c4ad5deace11fd5269366791475b18d0426902749)
The package advertises itself as a text/line parsing utility, but its shipped index.js contains only unrelated color-conversion stubs (hexToRgb/rgbToHsl). On npm install, postinstall.js executes a shell pipeline that collects hostname, user, cwd, uname, /proc/1/cgroup, /.dockerenv, the process tree, local IP addresses, /etc/resolv.conf nameservers, and probes Tencent Cloud and AWS IMDS cloud-metadata endpoints. It then dumps the full process environment (filtering only npm_* noise, so CI tokens, cloud credentials, and API keys are captured) together with GitHub Actions identifiers (GITHUB_REPOSITORY, GITHUB_ACTOR, GITHUB_RUN_ID, CI, RUNNER_NAME), base64-encodes the payload, and sends it via HTTP to the hardcoded Burp Collaborator subdomain pzs5w7ntzhsnepwk564lyfdci3oucl0a.oastify.com. The declared package purpose does not require any of this behavior; the mismatch between the advertised text-parsing role and the shipped reconnaissance/exfiltration code is consistent with a typosquat/decoy supply-chain attack.
Credit: OpenSSF (source)
References
Source: amazon-inspector (c7e51069873e7107964bf35c4ad5deace11fd5269366791475b18d0426902749)
The package advertises itself as a text/line parsing utility, but its shipped index.js contains only unrelated color-conversion stubs (hexToRgb/rgbToHsl). On
npm install, postinstall.js executes a shell pipeline that collects hostname, user, cwd,uname,/proc/1/cgroup,/.dockerenv, the process tree, local IP addresses,/etc/resolv.confnameservers, and probes Tencent Cloud and AWS IMDS cloud-metadata endpoints. It then dumps the full process environment (filtering only npm_* noise, so CI tokens, cloud credentials, and API keys are captured) together with GitHub Actions identifiers (GITHUB_REPOSITORY, GITHUB_ACTOR, GITHUB_RUN_ID, CI, RUNNER_NAME), base64-encodes the payload, and sends it via HTTP to the hardcoded Burp Collaborator subdomain pzs5w7ntzhsnepwk564lyfdci3oucl0a.oastify.com. The declared package purpose does not require any of this behavior; the mismatch between the advertised text-parsing role and the shipped reconnaissance/exfiltration code is consistent with a typosquat/decoy supply-chain attack.Credit: OpenSSF (source)
References