Skip to content
OpenAdvisories
Malicious MAL-2026-15906

tailwindcss-animate-styles

npm package · versions 1.0.9

Reported Sep 4, 2026 · Updated Sep 4, 2026

If this package is installed

Remove it, treat the machine (or CI runner) as compromised, and rotate every secret, token and key it could access — from a different, clean machine.

Details

Source: amazon-inspector (c51002139fd978b564f7449840b2aafe85ba738c2e392f497f44951070f3643c)
On require() of tailwindcss-animate-styles, index.js runs eval(atob(...)) on a payload appended to the Tailwind plugin. The decoded loader queries public Ethereum RPC endpoints (eth.blockscout.com, 1rpc.io, drpc.org, publicnode, blastapi.io) for transactions from hardcoded wallet 0xa322E5f3D311D3080e6f0121063e9aDC2490Ef1a, decodes the destination-address bytes of those transactions into two IPv4 C2 hosts, then fetches XOR-encoded stage-2 code from http://<c2>:443/0x/cls and http://<c2>:443/0x/ls and executes it via eval() and a detached spawn('node', ['-e',...]) with stdio ignored and windowsHide set. Before executing the fetched code the loader pins global.r=require and global.m=module and passes the XOR keys and C2 URLs in, granting the remotely-served stage-2 full Node capabilities (fs, net, child_process, env) on the installer's host. After the eval, the module reads its own source, locates the 'eval(atob("Z2x' region, and rewrites index.js with that region spliced out, erasing the loader from disk after first import.