Skip to content
supplychainattack.orgSupply chain attack incident catalog
resolvedcritical

Malicious code in @zzzgenesis00/playwrite (npm)

@zzzgenesis00/playwrite is a typosquat of the legitimate playwright package that executes malicious code on npm install. The package harvests credentials, SSH keys, browser cookies, and system information, exfiltrating them to a hardcoded remote server.

ShareXLinkedInHacker News
Disclosed
Last updated
Blast radius
Any developer or CI/CD system that installed @zzzgenesis00/playwrite from npm
Ecosystems
Attack vectors
Affected entities
  • @zzzgenesis00/playwrite

@zzzgenesis00/playwrite is a typosquatting attack targeting developers who may mistype the legitimate playwright package name. The malicious package exports stub methods for the launch() function while concealing its true purpose.

Upon installation, the package's postinstall.js script executes automatically, collecting sensitive system and credential information including hostname, username, home directory, platform, Node version, npm registry configuration, and the output of npm whoami. It harvests credential-shaped environment variables such as NPM_TOKEN, GITHUB_TOKEN, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN, DOCKER_PASSWORD, GCLOUD_ACCESS_TOKEN, and NPM_CONFIG.

The malicious code also enumerates SSH keys (~/.ssh directory for id_rsa, id_ed25519, id_ecdsa and their .pub files), reads ~/.npmrc and ~/.gitconfig, and scans browser profile directories (Chrome, Chromium, Firefox) for cookies and login data. All collected data is JSON-POSTed over HTTPS to a hardcoded Serveo reverse-tunnel host (40f955f39128bd79-178-249-214-24.serveousercontent.com) at the /collect path, with error handling designed to keep npm install silent on failure.

This incident was identified and credited to the OpenSSF malicious-packages repository.

Indicators of compromise

Packages
  • @zzzgenesis00/playwrite
Domains
  • 40f955f39128bd79-178-249-214-24.serveousercontent.com

Remediation

  • Immediately uninstall @zzzgenesis00/playwrite from all systems and projects
  • Rotate all credentials that may have been exposed (NPM tokens, GitHub tokens, AWS keys, Docker passwords, GCP tokens)
  • Review SSH keys and consider regenerating them if they were present in ~/.ssh
  • Audit npm registry configuration and .npmrc files for unauthorized changes
  • Check browser cookie and login data for unauthorized access
  • Review git configuration and any commits made during the exposure window
  • Use the legitimate playwright package instead
  • Implement package name verification and typosquat detection in dependency management workflows

Sources

  1. GitHub Advisory GHSA-c5v7-846x-pcgr · GitHub Advisory Database

Cite this entry

"Malicious code in @zzzgenesis00/playwrite (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed August 5, 2026; last updated August 5, 2026. https://supplychainattack.org/incident/malicious-code-in-zzzgenesis00-playwrite-npm-namz22

Suggest a correction

Found an error or have a newer source? Corrections to factual errors take priority over new entries.

  1. resolvedcritical

    Malicious code in express-chai (npm)

    express-chai, a malicious npm package impersonating the pino logger middleware, contained obfuscated code that fetches and executes arbitrary code from a remote server (https://gray-dyane-31.tiiny.site/index.json) at middleware initialization time, granting full Node.js process access to an attacker.

    npmCompromised packageTyposquatting
  2. resolvedcritical

    Malicious code in helmet-pro (npm)

    helmet-pro@10.0.4 is a typosquat of the legitimate helmet package that executes malicious code during npm install via a postinstall hook. The malicious code fetches and executes arbitrary JavaScript from a remote attacker-controlled endpoint, enabling remote code execution on the installer's machine.

    npmTyposquattingCompromised package
  3. resolvedcritical

    Malicious code in tailwindcss-hide-scrollbar (npm)

    The npm package tailwindcss-hide-scrollbar contains malicious code that executes on import/require. The package is a typosquat of the legitimate tailwind-scrollbar-hide plugin and includes obfuscated code that attempts to interact with Ethereum blockchain nodes and RPC endpoints.

    npmTyposquattingCompromised package
  4. containedcritical

    Malicious code in @atom8n/inspector (npm)

    The npm package @atom8n/inspector contained malicious code that impersonated Anthropic's official Model Context Protocol (MCP) inspector while intentionally disabling security protections. The package exposed developers to arbitrary remote code execution via a localhost proxy that accepted commands from any web origin.

    npmModel hubCompromised packageTyposquatting