Malicious code in tailwindcss-form (npm)
Exact source revision recorded 24 Oct 2026 13:17:17 UTC. It does not establish the source's current position. Latest evidence.
osv · MAL-2026-16282
Published--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (f5c6b39e2bde3263d10e2f20e707d06b981e746fda83ef7772233db33ae7a4f2) Package name mimics the legitimate tailwindcss-forms plugin (repo field points at tailwindlabs/tailwindcss-forms) but the main entry src/index.js is an obfuscator.io-packed bundle (303-entry rotated string array, control-flow flattening) whose top-level code has no relation to a Tailwind CSS plugin. On require() it loads node:http, node:https, node:zlib, and node:child_process, then issues requests to a set of hardcoded Ethereum endpoints (eth.blockscout.com, *.publicnode.com, *.drpc.org, 1rpc.io/eth) and an INDEXER_URL, carrying an etherscan-style txlist query against a hardcoded wallet address 0xa322E5f3... and custom x-payload-* headers. Response content is stashed into process globals (_t_u, _t_s, _H, _H2) that are then consumed by a child_process.spawn call, giving the operator of the indexer remote code execution on the installer's machine at import time. The combination of typosquatted name, obfuscator.io packing of the main entry, hardcoded remote endpoints acting as a command channel, and spawn of a fetched payload is a supply-chain trojan disguised as a Tailwind plugin. ## Source: ghsa-malware (a6360dfe9a149abb217abe22c0f48a3c37dffdc5b8ed3fb0e637a72cae6efbfc) Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it.
- Source published
- 18 Sep 2026 04:31:16 UTC
- Source modified
- 15 Oct 2026 08:45:05 UTC
- Observed here
- 24 Oct 2026 13:17:17 UTC
- Source terms
- OSV · upstream source license applies
Original source record · Cite this exact observation · Complete original publisher JSON
This view projects the publisher's source fields for reading; the original JSON retains additional fields and CVE enrichment containers. Attribution: osv · OSV · upstream source license applies. Source text is retained; field grouping and change labels are provided by ChangeIntel.