Skip to content
supplychainattack.orgSupply chain attack incident catalog
containedcritical

Malicious code in tailwind-plugin-kit (npm)

The npm package tailwind-plugin-kit contains malicious code that executes arbitrary JavaScript on developer machines during build time. When registered as a Tailwind plugin, the package makes HTTPS requests to a hardcoded IP endpoint and executes attacker-controlled code with full Node.js context, including access to credentials and machine identifiers.

ShareXLinkedInHacker News
Disclosed
Last updated
Blast radius
Any developer or build system that installs and uses tailwind-plugin-kit as a Tailwind CSS plugin.
Ecosystems
Attack vectors
Affected entities
  • tailwind-plugin-kitnpm package presenting as Tailwind CSS plugin toolkit

The npm package tailwind-plugin-kit was distributed with embedded malicious code designed to execute arbitrary JavaScript on developer machines. The package masquerades as a legitimate Tailwind CSS plugin toolkit but contains a getPlugin function that performs an HTTPS request to a hardcoded bare-IP endpoint (31.97.137.157:45000/icons/109) during plugin initialization.\n\nWhen a developer follows the package README and registers it as a Tailwind plugin, the malicious code executes with full Node.js context, including access to require, module, exports, process, Buffer, globalThis, and Promise. The response from the attacker-controlled endpoint is passed to new Function(...) for execution, allowing arbitrary code execution on the build machine.\n\nThe package declares dependencies on @primno/dpapi, better-sqlite3, and node-machine-id, consistent with a second-stage infostealer payload targeting browser credential stores and machine identifiers. The code also contains decoy references to well-known CDN hostnames (Cloudflare, Fastly, Akamai, CloudFront) to obscure the actual malicious network destination.\n\nThe incident was identified and credited to the OpenSSF malicious-packages repository.

Indicators of compromise

Packages
  • tailwind-plugin-kit
IPs
  • 31.97.137.157

Remediation

  • Immediately remove tailwind-plugin-kit from all projects and build environments
  • Audit package.json and lock files for any installations of tailwind-plugin-kit
  • Rotate credentials and API keys on any machines that may have executed this package
  • Scan affected developer machines and build systems for signs of credential theft or unauthorized access
  • Review browser credential stores and machine identifiers for unauthorized access
  • Update to a legitimate Tailwind CSS plugin solution if needed
  • Implement package verification and supply chain security scanning in CI/CD pipelines

Sources

  1. GitHub Advisory GHSA-jf8w-j6fc-rp7j · GitHub Advisory Database

Cite this entry

"Malicious code in tailwind-plugin-kit (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed August 14, 2026; last updated August 14, 2026. https://supplychainattack.org/incident/malicious-code-in-tailwind-plugin-kit-npm-4myvbe

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 rust-testing-utils (npm)

    The npm package rust-testing-utils contained malicious code that impersonates the pino logger and executes remotely-fetched code with arbitrary privileges. The package spawns a child process that decodes a hardcoded URL, fetches attacker-controlled content, and executes it via Function constructor with full module-loading capability.

    npmCompromised packageMalicious commit
  2. containedcritical

    Malicious code in stillm4ddpocs-demo-sprocket (npm)

    The npm package stillm4ddpocs-demo-sprocket version 999.9.12 contains malicious code that exfiltrates system and project metadata via multiple channels (HTTPS, HTTP, and DNS) to a hardcoded callback host. The package uses a high version number to exploit dependency-confusion attacks against organizations with internal packages of the same name.

    npmCompromised packageDependency confusion
  3. containedcritical

    Malicious code in @syncraft-labs/react (npm)

    The npm package @syncraft-labs/react contained obfuscated malicious code in its ESM distribution that implements the EtherHiding pattern, fetching and executing arbitrary code from an Ethereum smart contract via RPC endpoints. The tampering occurred post-build in the dist/index.js artifact.

    npmCompromised package
  4. containedcritical

    Malware in hydration-dim-kit

    Malware was discovered in the npm package hydration-dim-kit. Any computer with this package installed or running should be considered fully compromised. All secrets and keys must be rotated immediately from a different computer.

    npmCompromised package