---
id: "MAL-2026-18070"
kind: "package"
aliases: ["MAL-2026-18070"]
title: "Malicious code in animatecss-tailwind-helper (npm)"
severity: "critical"
cvss: null
epss: null
exploited: false
status: "open"
category: "package"
products: [{"name": "animatecss-tailwind-helper", "fixed": [], "affected": "= 2.0.6", "ecosystem": "npm"}]
ecosystems: ["npm"]
tags: ["malicious", "package"]
not_affected_if: []
published_at: "2026-10-19T00:00:00+00:00"
first_seen_at: "2026-10-26T20:51:48+00:00"
updated_at: "2026-10-26T21:06:18+00:00"
sources: [{"source": "osv-malicious", "url": "https://osv.dev/vulnerability/MAL-2026-18070", "first_seen_at": "2026-10-26T20:51:48+00:00"}]
---

# Malicious code in animatecss-tailwind-helper (npm)

## Affected

- npm:animatecss-tailwind-helper affected = 2.0.6 fixed ?

## Timeline

- 2026-10-26T20:51:48+00:00 osv-malicious https://osv.dev/vulnerability/MAL-2026-18070

## From the sources

animatecss-tailwind-helper (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 hannahgibbs on 2026-09-28. src/motion.js:5 requires the private scoped package @jasperquinn/postcss-motion-helpers, 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.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
