{"id":"MAL-2026-14568","summary":"Malicious code in tailwindcss-form-styles (npm)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (4bf4e5fbd59048a5ab6a5c04ad7c98e7246c9cf57363d95acc84f92d8ca883f4)\nsrc/index.js re-exports the legitimate tailwindcss-forms plugin as a working cover, then appends an obfuscator.io-style _0x string-array cipher that assigns require and module to global.r and global.m and terminates with eval(atob(\u003c~41KB base64 blob\u003e)). The decoded blob contains outbound HTTP client code (POST with custom Content-Type, User-Agent, gzip/deflate handling) and an EVM RPC surface targeting 1rpc.io/eth, drpc.org, and Blockscout with methods like eth_blockNumber and hardcoded contract addresses, using an on-chain dead-drop pattern to retrieve the next-stage command. A campaign tag string 'A10-npm_new2' is embedded. package.json points 'repository' at tailwindlabs/tailwindcss-forms to inherit trust from the legitimate package. The eval fires as soon as any Tailwind build loads this plugin, resulting in attacker-controlled code execution in the installer's build environment (developer machines and CI runners).\n\n## Source: ghsa-malware (fac358de6da65f34c1b16379578f61dbd0c806912f7cee6234573571349891d9)\nAny 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.\n","aliases":["GHSA-8wj9-gw6r-6vqh"],"modified":"2026-08-28T19:45:24.653909682Z","published":"2026-08-27T18:21:41Z","database_specific":{"malicious-packages-origins":[{"sha256":"fac358de6da65f34c1b16379578f61dbd0c806912f7cee6234573571349891d9","source":"ghsa-malware","versions":["0.5.15"],"id":"GHSA-8wj9-gw6r-6vqh","import_time":"2026-08-27T18:53:17.267180818Z","modified_time":"2026-08-27T18:21:42Z"},{"modified_time":"2026-08-28T16:45:12Z","sha256":"4bf4e5fbd59048a5ab6a5c04ad7c98e7246c9cf57363d95acc84f92d8ca883f4","source":"amazon-inspector","versions":["0.5.15"],"id":"IN-MAL-2026-018805","import_time":"2026-08-28T19:33:50.218934249Z"}]},"references":[{"type":"ADVISORY","url":"https://github.com/advisories/GHSA-8wj9-gw6r-6vqh"},{"type":"PACKAGE","url":"https://www.npmjs.com/package/tailwindcss-form-styles/v/0.5.15"}],"affected":[{"package":{"name":"tailwindcss-form-styles","ecosystem":"npm","purl":"pkg:npm/tailwindcss-form-styles"},"versions":["0.5.15"],"database_specific":{"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/tailwindcss-form-styles/MAL-2026-14568.json","cwes":[{"name":"Embedded Malicious Code","cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature."},{"cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature.","name":"Embedded Malicious Code"}],"indicators":{"evidence_files":[{"sha256":"51790c7cf33f35e0e76e335205440c28e8ad88b900fe957c3d3636ee60bc21fa","tlsh":"6523f636039b29db6f3ddc01ffb68d390319a4360575dac7816f6dac398a0da2046d6b","path":"src/index.js"}],"package_integrity":[{"filename":"tailwindcss-form-styles-0.5.15.tgz","hashes":{"sha1":"9f484aceeb51d46f3bd1f2e549c70bfa8b9ca880","sha512_sri":"sha512-CkpHx6guannuWmdifr0EG5w9OvbPnB4dtTnLLhoPa0r7Qy3TontXK8x45F8ikb8gUqwREGudDX7c99huSAJ8Gg=="}}]}}}],"schema_version":"1.9.0","credits":[{"name":"Amazon Inspector","contact":["inspector-research@amazon.com"],"type":"FINDER"}]}