shai_hulululud has 1 version on the npm registry flagged in 1 incident we track. Only the exact versions listed below were named by the source advisories.
shai_hulululud was malicious from its first publish. There is no legitimate version to roll back to; remove it entirely.
Affected versions
Check what you actually have installed with npm ls shai_hulululud.
Socket flagged shai_hulululud@1.0.48596 (~9.3 MB index.js, published 2026-06-16 by npm user ptchli_knldg) - protestware whose only purpose is to probe and disrupt AI-based malware scanners. The tarball is a single JS file containing millions of repeated comments with prompt-injection content, fake system-override instructions, and context-flooding tokens. Runtime is inert; the payload is the source code itself, weaponised against any LLM-based scanner that ingests it.
Versions named here: 1.0.48596
What to do if you installed one of these
Treat the machine as compromised rather than simply upgrading. Packages in these incidents typically execute at install time, so the payload has already run with whatever credentials were in the environment.
1.Rotate every credential that machine or CI job could reach - registry tokens, cloud keys, SSH keys, CI secrets - from a different machine.
2.Pin to a version not listed above, then reinstall from a clean lockfile.
3.Clear caches and private mirrors. Artifactory, Nexus, Verdaccio, and devpi routinely keep serving a tarball after the public registry has pulled it.
4.Read the incident write-up above - recommended actions differ per incident, and some have specific indicators of compromise worth grepping your logs for.
Check your whole project
shai_hulululud is one of many packages in these incidents, and it is usually pulled in as a transitive dependency rather than one you installed directly. Paste your package-lock.json to check every dependency at once - it runs in your browser and nothing is uploaded.
Version data comes from the public advisories cited on each incident page. We list only versions those advisories name - we don't infer additional ones. Think this is wrong or incomplete? Tell us.