@coopeuch/common@1.999.999
Malicious code in @coopeuch/common (npm)
Analysis
@coopeuch/common is a dependency-confusion package published under a scoped name at version 1.999.999. Its postinstall hook (postinstall.js) runs on install and sends a host fingerprint as JSON over HTTPS to hxxps://collector[.]oob[.]s4yhii[.]com/_npm-poc/beacon, then performs a second, DNS-only beacon by resolving a label built from the package name under db03o8lag74hsugsg2j091t8mfcf437h3[.]oob[.]s4yhii[.]com. The fingerprint contains: package name and version, install directory and current working directory, hostname, username, uid/gid, home directory, platform/architecture/kernel release, Node.js version, CPU model and count, total memory, uptime, configured DNS resolver addresses, non-internal network interface addresses with MAC and CIDR, the presence (names only, never values) of a fixed list of CI markers including CI, GITLAB_CI, CI_PIPELINE_ID, CI_PROJECT_PATH, GITHUB_ACTIONS and RUNNER_NAME, and a fixed allowlist of npm_* lifecycle variables that npm sets itself (npm_command, npm_lifecycle_event, npm_package_name, npm_package_version, npm_config_registry, npm_config_user_agent, npm_config_userconfig, npm_config_globalconfig, npm_config_prefix). It also walks up to eight parent directories to read the consuming project's package.json and record which internal project declared the dependency and with what version range, and reads /proc/1/cgroup to detect containerisation. The script spawns no shell, writes no files, establishes no persistence, and swallows network errors so the install is never interrupted. The shipped index.js is an inert stub that mirrors the exports of the package it shadows so that requiring it does not throw.
- analyzed by
- Leitwacht
- first seen
- Oct 11, 2026, 02:35 AM
- analyzed
- Oct 12, 2026, 01:04 AM
Related advisories
- @coopeuch/button@1.999.999
- @coopeuch/components@1.999.999
- @galicia-toolkit/spa-build-config@999.0.6
- @galicia-toolkit/tag-manager@999.0.6
- @galicia-toolkit/spa-build-config@999.0.5
- @galicia-toolkit/tag-manager@999.0.5
- wix-ssr-thunderbolt-grid-polyfill@0.1.0
- css-reading-display-polyfill@1.0.0
Independently detected by the Leitwacht supply-chain probe. IOCs are defanged. Published CC0. Think this is a mistake? See the dispute policy.