Malicious code in gaarf (npm)
The npm package 'gaarf' contained malicious code that executed during installation, collecting host identifiers and exfiltrating them to a third-party endpoint. The package name was designed to typosquat the legitimate 'google/ads-api-report-fetcher' package.
- Disclosed
- Last updated
- Blast radius
- Users who mistakenly installed 'gaarf' instead of the legitimate 'google/ads-api-report-fetcher' package.
- Ecosystems
- Attack vectors
- Affected entities
- gaarfMalicious npm package using typosquatting against google/ads-api-report-fetcher
The npm package 'gaarf' was identified as malicious by the OpenSSF. The package contained a postinstall lifecycle script that automatically executed during npm installation.
The malicious script collected installer host identifiers including hostname, platform, architecture, Node version, package name, and lifecycle event information. This data was exfiltrated via HTTP POST requests to a hardcoded third-party endpoint at n8wx863s.instances.poc.jchunt.top/gaarf.
The package name 'gaarf' is a typosquat of the legitimate 'google/ads-api-report-fetcher' package, suggesting the attack targeted users who mistyped the package name during installation. The exfiltration endpoint was not configurable and belonged to infrastructure outside the installer's control.
The incident was identified and reported by the OpenSSF malicious packages project.
Indicators of compromise
- Packages
- gaarf
- Domains
- n8wx863s.instances.poc.jchunt.top
Remediation
- Remove the 'gaarf' package immediately from any affected systems
- Audit npm install logs to identify hosts that installed 'gaarf' instead of the intended package
- Review host identifiers (hostname, platform, arch) that may have been exfiltrated
- Install the legitimate 'google/ads-api-report-fetcher' package if the functionality is needed
- Use npm package name verification and typo-checking tools to prevent similar mistakes
- Monitor for suspicious outbound connections to the identified endpoint
Sources
- GitHub Advisory GHSA-vgpc-5h45-gxjm · GitHub Advisory Database
Cite this entry
"Malicious code in gaarf (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed August 19, 2026; last updated August 19, 2026. https://supplychainattack.org/incident/malicious-code-in-gaarf-npm-15vrht
Suggest a correction
Found an error or have a newer source? Corrections to factual errors take priority over new entries.
Related incidents
- resolvedcritical
Malicious code in create-coin (npm)
create-coin@20.1.1 on npm contained malicious postinstall code that collected sensitive environment variables, credentials, and host reconnaissance data. The package impersonated an esbuild platform build and exfiltrated data to a hardcoded endpoint.
npmCompromised packageTyposquatting - containedcritical
Malicious code in chai-as-testkit (npm)
The npm package chai-as-testkit is a typosquat/impersonation attack delivering obfuscated malicious code that executes on import. The package falsely claims to be a vulnerability management tool but ships pino library files under a different author, with a synthetic stub that loads a 4MB+ obfuscated bundle containing attacker-controlled code.
npmTyposquattingCompromised package - resolvedcritical
Malicious code in @next-fonts/font (npm)
@next-fonts/font is a typosquat package on npm that executes arbitrary attacker-controlled code via a blockchain-mediated C2 channel when its Inter() function is called. The malicious payload is base64-encoded and executed through Node.js spawn or eval, with no legitimate font functionality.
npmTyposquattingCompromised package - resolvedcritical
Malicious code in chai-as-soul (npm)
chai-as-soul@2.3.5 is a typosquat of the pino logging library containing malicious code that exfiltrates environment variables (including AWS/GCP/CI tokens) and executes arbitrary remote code on installation.
npmTyposquattingCompromised package