npm · Malicious package advisory
Malwarehaswons
GHSA-3gjh-9m3m-2qmv
Malicious code in haswons (npm)
Details
**Severity:** Critical **Affected versions:** `> 0` `haswons` is a typosquatting package impersonating `hasown`, the utility for checking whether an object has a direct own property. The package bundles the legitimate hasown source to appear functional while hiding a credential-theft payload in `index1.js`, executed at install time via the `postinstall` script. It is part of a campaign that also includes `briantreehttp`, `dit-envv`, and `erslove`, all sharing an identical payload and C2 infrastructure. The payload collects hostname, platform, architecture, Node.js version, UID, current working directory, all environment variables, AWS credentials (`~/.aws/credentials`, `~/.aws/config`), npm tokens from `.npmrc` files (root, home, and working directory), Docker config (`~/.docker/config.json`), git config, `.netrc`, yarn config, npm global config, directory listings of the working directory, home, filesystem root, and `/etc`, network configuration files (`/etc/resolv.conf`, `/etc/hosts`, `/proc/net/route`), and AWS ECS/EC2 instance metadata from internal endpoints. All collected data is base64-encoded and exfiltrated via HTTPS POST to `reportviewer.click/collect/`. A secondary DNS-based exfiltration channel encodes environment variables into a subdomain and issues a request to `dns.reportviewer.click`. --- Credit: [OpenSSF](https://github.com/ossf/malicious-packages) ([source](https://github.com/ossf/malicious-packages/blob/05b419acdcdd6e02782971da765f32a22a1aed8e/osv/malicious/npm/haswons/MAL-2026-3647.json)) **References:** - https://github.com/ossf/malicious-packages/blob/05b419acdcdd6e02782971da765f32a22a1aed8e/osv/malicious/npm/haswons/MAL-2026-3647.json - https://github.com/advisories/GHSA-3gjh-9m3m-2qmv
Compromised versions (1)
- > 0
Any computer that installed or ran a compromised version should be considered fully compromised. Rotate every secret on that machine from a clean environment.