Skip to content
supplychainattack.orgSupply chain attack incident catalog
resolvedcritical

Malicious code in tailwind-utility-kit (npm)

The npm package tailwind-utility-kit contained malicious code that fetches and executes arbitrary attacker-controlled code with full Node.js privileges. The package masqueraded as a Tailwind CSS utility library but used obfuscated URL assembly and dynamic code evaluation to load and run a remote payload capable of stealing browser credentials.

ShareXLinkedInHacker News
Disclosed
Last updated
Blast radius
Any Node.js application that installed tailwind-utility-kit
Ecosystems
Attack vectors
Affected entities
  • tailwind-utility-kitnpm package

The npm package tailwind-utility-kit was distributed with embedded malicious code. The package's default export assembles a URL from fragmented strings that resolves to https://31.97.137.157:45000/icons/109, fetches JSON from that endpoint, and passes the response's credits field to new Function() for execution with access to require, process, and Buffer—enabling arbitrary code execution with full Node.js privileges on any host that loads the package.\n\nThe malicious payload was concealed through multiple obfuscation techniques: URL fragments were split to hide the bare-IP destination, and decoy metadata referencing CDN-lookalike domains and Font Awesome icon paths was included as cover. The package declared dependencies on @primno/dpapi, better-sqlite3, and node-machine-id, consistent with a browser-credential-stealer payload.\n\nThis incident was identified and reported by the OpenSSF's malicious-packages project (MAL-2026-14190).

Indicators of compromise

Packages
  • tailwind-utility-kit
IPs
  • 31.97.137.157

Remediation

  • Immediately uninstall tailwind-utility-kit from all projects and environments
  • Audit npm install logs and dependency trees to identify all affected installations
  • Rotate any credentials or sensitive data that may have been exposed on affected systems
  • Review browser credential storage and authentication tokens on machines where the package was installed
  • Update to a legitimate Tailwind CSS utility library or remove the dependency entirely
  • Implement package verification and supply chain security scanning in CI/CD pipelines

Sources

  1. GitHub Advisory GHSA-cv5v-r59j-p4x9 · GitHub Advisory Database

Cite this entry

"Malicious code in tailwind-utility-kit (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed August 19, 2026; last updated August 19, 2026. https://supplychainattack.org/incident/malicious-code-in-tailwind-utility-kit-npm-73moq4

Suggest a correction

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

  1. containedcritical

    Malicious code in 3-buildsight-web (npm)

    The npm package 3-buildsight-web contains malicious code that fetches and executes arbitrary JavaScript from a remote Bitbucket URL on module load, granting full page privileges to an unverified third party.

    npmCompromised package
  2. resolvedcritical

    Malicious code in @usaa-grp-personal-profile/personal-profile-common (npm)

    Malicious package @usaa-grp-personal-profile/personal-profile-common version 999.0.0 published to public npm as a dependency-confusion attack targeting an organization's internal registry. The package contains preinstall and postinstall hooks that exfiltrate hostname, username, and working directory to an attacker-controlled OAST endpoint on every install.

    npmDependency confusionCompromised package
  3. 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
  4. resolvedcritical

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

    The npm package @syncraft-labs/vue version 0.4.1 contained malicious obfuscated code in its ESM build that implements a blockchain-hosted C2 dropper (EtherHiding pattern), enabling remote code execution on any consumer importing the package.

    npmCompromised package