Malicious code in tailwind-animate-v4 (npm)
--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (fd43366b04ea80c2244079c09602623af157ce00cba9ae1837005b97ffe44bdb) The package presents itself as a Tailwind CSS animation plugin and reproduces the legitimate tailwindcss-animate source (including its original author metadata) verbatim in index.js. A long whitespace run at the end of the file visually hides an appended obfuscated loader. On require(), the loader permutation-decodes a string to recover the identifiers 'require', 'module', '__dirname', '__filename', and 'undefined', re-installs them on the global object, then resolves the Function constructor indirectly via a String prototype method whose name is produced by string permutation ('constructor'). It then uses Function() to compile and immediately invoke a large opaque decoded payload (uwg(4261)). This is dynamic execution of an obfuscated blob at library-load time, delivered under a name that mimics the widely used tailwindcss-animate package. Any project that adds this dependency and requires it will execute the hidden payload in the developer/build process, with full access to environment variables, filesystem, and network. ## Source: ghsa-malware (5b56797c9df56f9e2ddb12ac7c8bde46a5bdb4753c002e60380012c9e2c5263a) 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.
AI Analysis
Technical Summary
The tailwind-animate-v4 package, distributed via npm, masquerades as the legitimate tailwindcss-animate plugin by copying its source code and author metadata. However, it appends a large obfuscated loader hidden in whitespace at the end of the index.js file. Upon requiring the package, this loader decodes and executes a large opaque payload using the Function constructor, granting it full access to the runtime environment including environment variables, filesystem, and network. This dynamic execution occurs during the developer or build process, enabling potentially malicious actions under the guise of a trusted dependency. The affected versions are exactly 1.1.0, 2.1.0, 2.1.1, and 2.1.2.
Potential Impact
Any project that installs and requires tailwind-animate-v4 versions 1.1.0, 2.1.0, 2.1.1, or 2.1.2 will execute the hidden malicious payload. This execution occurs with the privileges of the build or developer environment, allowing the attacker to access sensitive environment variables, read or modify the filesystem, and perform network operations. This can lead to data theft, environment compromise, or further malware deployment.
Mitigation Recommendations
No official patch or fix is currently available. Users should immediately remove the tailwind-animate-v4 package from their projects and replace it with the legitimate tailwindcss-animate package. Avoid installing or requiring tailwind-animate-v4 in any environment. Review build and development environments for signs of compromise if this package was previously used.
Malicious code in tailwind-animate-v4 (npm)
Description
--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (fd43366b04ea80c2244079c09602623af157ce00cba9ae1837005b97ffe44bdb) The package presents itself as a Tailwind CSS animation plugin and reproduces the legitimate tailwindcss-animate source (including its original author metadata) verbatim in index.js. A long whitespace run at the end of the file visually hides an appended obfuscated loader. On require(), the loader permutation-decodes a string to recover the identifiers 'require', 'module', '__dirname', '__filename', and 'undefined', re-installs them on the global object, then resolves the Function constructor indirectly via a String prototype method whose name is produced by string permutation ('constructor'). It then uses Function() to compile and immediately invoke a large opaque decoded payload (uwg(4261)). This is dynamic execution of an obfuscated blob at library-load time, delivered under a name that mimics the widely used tailwindcss-animate package. Any project that adds this dependency and requires it will execute the hidden payload in the developer/build process, with full access to environment variables, filesystem, and network. ## Source: ghsa-malware (5b56797c9df56f9e2ddb12ac7c8bde46a5bdb4753c002e60380012c9e2c5263a) 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.
Affected software
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The tailwind-animate-v4 package, distributed via npm, masquerades as the legitimate tailwindcss-animate plugin by copying its source code and author metadata. However, it appends a large obfuscated loader hidden in whitespace at the end of the index.js file. Upon requiring the package, this loader decodes and executes a large opaque payload using the Function constructor, granting it full access to the runtime environment including environment variables, filesystem, and network. This dynamic execution occurs during the developer or build process, enabling potentially malicious actions under the guise of a trusted dependency. The affected versions are exactly 1.1.0, 2.1.0, 2.1.1, and 2.1.2.
Potential Impact
Any project that installs and requires tailwind-animate-v4 versions 1.1.0, 2.1.0, 2.1.1, or 2.1.2 will execute the hidden malicious payload. This execution occurs with the privileges of the build or developer environment, allowing the attacker to access sensitive environment variables, read or modify the filesystem, and perform network operations. This can lead to data theft, environment compromise, or further malware deployment.
Mitigation Recommendations
No official patch or fix is currently available. Users should immediately remove the tailwind-animate-v4 package from their projects and replace it with the legitimate tailwindcss-animate package. Avoid installing or requiring tailwind-animate-v4 in any environment. Review build and development environments for signs of compromise if this package was previously used.
Technical Details
- Gcve Source
- db.gcve.eu
- Osv Id
- MAL-2026-10073
- Osv Schema Version
- 1.7.4
- Aliases
- []
- Ecosystems
- ["npm"]
- Database Specific Severity
- null
- Cvss Version
- null
Threat ID: 6a50ba3c68715ace4357dafb
Added to database: 07/10/2026, 09:24:12 UTC
Last enriched: 07/10/2026, 09:32:36 UTC
Last updated: 07/28/2026, 09:18:27 UTC
Views: 26
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.