{"id":"MAL-2026-18082","revision":"93a0ba2e61354cde99c41e3e03e43cdf","records":[{"revision":"93a0ba2e61354cde99c41e3e03e43cdf","observedAt":"2026-10-24T13:17:17.793+00:00","statement":{"source":"osv","id":"MAL-2026-18082","aliases":[],"title":"Malicious code in tailwind-fabric (npm)","description":"tailwind-fabric (3.0.1, 3.0.4) 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 johnxia1997 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.","state":0,"publishedAt":"2026-10-19T00:00:00+00:00","modifiedAt":"2026-10-20T06:15:04.9216781+00:00","affected":[{"ecosystem":"npm","name":"tailwind-fabric","ranges":[],"versions":["3.0.1","3.0.4"],"rawVersionEvidence":null}],"metrics":[],"references":["https://osv.dev/vulnerability/MAL-2026-17665","https://osv.dev/vulnerability/MAL-2026-17666","https://osv.dev/vulnerability/MAL-2026-17667","https://pkgwarden.com/incidents/fake-interview-tailwind-plugins-npm-october-2026/"],"sourceUrl":"https://osv.dev/vulnerability/MAL-2026-18082","license":"OSV · upstream source license applies","key":"osv:MAL-2026-18082","identifiers":["MAL-2026-18082"]},"retained":false,"historicalAffected":[]}],"coverage":[]}