{"schema_version":"1.9.2","id":"MAL-2026-18069","published":"2026-10-19T00:00:00Z","modified":"2026-10-29T14:45:06.086394950Z","summary":"Malicious code in animatecss-tailwind-graphic (npm)","details":"animatecss-tailwind-graphic (2.0.6) is a Tailwind CSS plugin from the fake job interview campaign behind MAL-2026-17665 and MAL-2026-17666: the same Animate.css integration template, README and description, published by jamesvectorpack on 2026-09-28. src/motion.js:5 requires the private scoped package @aaron205whitmore/postcss-animate-utils, which is not readable on the public registry and resolves only with the npm token committed in the lure repository's web/.npmrc, so the code it delivers runs when tailwind.config.js loads the plugin and the dev server starts. The published tarball contains no install scripts and no network code; the payload lives in the private dependency, which was not retrieved. Twenty-six such packages under seventeen accounts were published between 2026-07-28 and 2026-10-09.\n\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (2b7460874581f581556add924c4d018b83a2ceb2d13a43033ceceb80741078b1)\nThe package's shipped contents show no install-time or import-time behavior that would harm the installer. No lifecycle scripts fetching or executing remote content were observed, no reads of installer credential paths (~/.aws, ~/.ssh, ~/.npmrc, browser stores), no environment-variable scraping, no hardcoded attacker-controlled network destinations, no obfuscated payloads, and no persistence or backdoor mechanisms. The package appears to be a benign Tailwind/Animate.css-related utility with no supply-chain attack surface identified in this version.\n","affected":[{"package":{"name":"animatecss-tailwind-graphic","ecosystem":"npm","purl":"pkg:npm/animatecss-tailwind-graphic"},"versions":["2.0.6"],"database_specific":{"cwes":[{"cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature.","name":"Embedded Malicious Code"}],"indicators":{"package_integrity":[{"filename":"animatecss-tailwind-graphic-2.0.6.tgz","hashes":{"sha1":"81ad9e018c81c65f0755293f418534cb604807b4","sha512_sri":"sha512-fIrIQLYC/Xxz2rr9Qpsa87v/pqHC4Pd6ByGulmwUfpvMV2tGrmpbY1xsGFTlbRMHKCQMO/qgzbTj//V7+/1s3w=="}}]},"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/animatecss-tailwind-graphic/MAL-2026-18069.json"}}],"references":[{"type":"ADVISORY","url":"https://osv.dev/vulnerability/MAL-2026-17665"},{"type":"ADVISORY","url":"https://osv.dev/vulnerability/MAL-2026-17666"},{"type":"ADVISORY","url":"https://osv.dev/vulnerability/MAL-2026-17667"},{"type":"WEB","url":"https://pkgwarden.com/incidents/fake-interview-tailwind-plugins-npm-october-2026/"},{"type":"PACKAGE","url":"https://www.npmjs.com/package/animatecss-tailwind-graphic/v/2.0.6"}],"database_specific":{"iocs":{"files":[{"note":"require of private scoped dependency @aaron205whitmore/postcss-animate-utils","paths":["src/motion.js"],"source":"PACKAGE_ARCHIVE"}]},"malicious-packages-origins":[{"id":"IN-MAL-2026-022379","import_time":"2026-10-29T14:37:06.436137156Z","modified_time":"2026-10-29T14:25:15Z","sha256":"2b7460874581f581556add924c4d018b83a2ceb2d13a43033ceceb80741078b1","source":"amazon-inspector","versions":["2.0.6"]}]},"credits":[{"name":"Amazon Inspector","contact":["inspector-research@amazon.com"],"type":"FINDER"},{"name":"pkgwarden","contact":["https://pkgwarden.com"],"type":"FINDER"}]}