OpenSSF/OSV advisory MAL-2026-15906 confirms this npm version as malicious. 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...
Source
OpenSSF Malicious Packages via OSV
Summary
Malicious code in tailwindcss-animate-styles (npm)
Details
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.
Decision reason
OpenSSF Malicious Packages via OSV confirms tailwindcss-animate-styles@1.0.9 as malicious (MAL-2026-15906): Malicious code in tailwindcss-animate-styles (npm)