<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/npm-just-got-hacked-again-but-somehow-deno-is-dead--vuawrel73" -->

---
title: NPM just got hacked AGAIN… but somehow Deno is dead?!
description: A rundown of npm's ongoing supply chain security crisis, covering a fresh malicious package campaign from an account called Dirty Blanket that used...
canonical: https://daily.dev/posts/npm-just-got-hacked-again-but-somehow-deno-is-dead--vuawrel73
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: NPM just got hacked AGAIN… but somehow Deno is dead?! | daily.dev
og:description: A rundown of npm's ongoing supply chain security crisis, covering a fresh malicious package campaign from an account called Dirty Blanket that used...
og:url: https://daily.dev/posts/npm-just-got-hacked-again-but-somehow-deno-is-dead--vuawrel73
og:image: https://api.daily.dev/og/posts/vUaWrEl73.png
og:image:alt: NPM just got hacked AGAIN… but somehow Deno is dead?!
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# NPM just got hacked AGAIN… but somehow Deno is dead?!

**[Awesome](https://daily.dev/sources/awesome-coding)** · 8 min read · 21 upvotes · 4 comments

## Summary

A rundown of npm's ongoing supply chain security crisis, covering a fresh malicious package campaign from an account called Dirty Blanket that used typosquatted Express/React packages, a bash worm, and a Tor-based backdoor. It recaps the Shai-Hulud worm family (original, the 700+ package second wave, and Mini Shai-Hulud hitting TanStack), Google's undercover infiltration of the Team PCP group leading to two arrests in Australia, and related incidents at Red Hat, GitHub, and Axios via malicious VS Code extensions and compromised maintainer accounts. It closes with npm 12's defensive changes (install scripts disabled by default, token restrictions) and practical mitigation advice, plus a tangent arguing Node has won the runtime wars despite these issues while Deno struggles.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.youtube.com/watch?v=UEF76vVMnVw>

## Questions this post answers

### What changed in npm 12 regarding install scripts?

npm 12, shipped in July, disables lifecycle install scripts by default, along with git dependencies and remote dependencies, making them opt-in. Packages that need to run something during install require explicit approval via npm approved scripts, with the allow list committed into package.json, reducing the attack surface that worms like Shai-Hulud exploited through postinstall hooks.

_Teams locking down npm pipelines against install-script attacks track ecosystem security changes like this on daily.dev._

### How did authorities catch the group behind the Shai-Hulud npm worm?

Investigators reportedly connected the Team PCP group's two alleged members, aged 21 and 23, through a Hacker One account, a TikTok profile, and cat videos they posted, leading to arrests in Perth, Australia on August 26th. A Google undercover persona had spent months infiltrating the group's inner circle, watching attacks unfold and warning victims before the arrests, with the campaign having hit over 1,000 organizations and exposed more than 500,000 credentials.

_Developers tracking npm supply chain threats and takedowns follow stories like this on daily.dev._

### What is the Shai-Hulud npm worm and how did it evolve over time?

Shai-Hulud is a self-propagating npm supply chain worm first seen spreading through legitimate packages in September 2025 by stealing publishing credentials. A second wave in November, documented by Datadog, hit over 700 packages, stealing cloud credentials and leaking secrets via public GitHub repos. A Mini Shai-Hulud variant later compromised the TanStack dependency tree through a poisoned CI cache consumed by a legitimate release workflow, per Akamai.

_Maintainers hardening CI pipelines against worm-style attacks keep up with cases like this on daily.dev._

## Community discussion

Top comments from developers on daily.dev.

**@pdfopsdev** · 2 upvotes

> disabling install scripts by default should've happened years ago tbh. nearly every one of these worms rides in on a postinstall hook nobody ever reads, that's the actual attack surface, not the typosquatting.

**@baz14** · 1 upvotes

> In the past, coding was based more on trust because most code was written by professionals. Today, Al makes it easy for anyone to introduce bad/unsafe code. This creates a major challenge for the entire industry - how to check AI-gen code and develop new security methods

## Similar posts on daily.dev

- [Four More Supply Chain Attacks Hit npm and PyPI](https://daily.dev/posts/four-more-supply-chain-attacks-hit-npm-and-pypi-g68buqqbp) · GitGuardian · 7 upvotes · 0 comments

---

Tags: [#cyber](https://daily.dev/tags/cyber), [#nodejs](https://daily.dev/tags/nodejs), [#malware](https://daily.dev/tags/malware), [#npm](https://daily.dev/tags/npm), [#deno](https://daily.dev/tags/deno)

[View this post on daily.dev](https://daily.dev/posts/npm-just-got-hacked-again-but-somehow-deno-is-dead--vuawrel73)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"NPM just got hacked AGAIN… but somehow Deno is dead?!","url":"https://daily.dev/posts/npm-just-got-hacked-again-but-somehow-deno-is-dead--vuawrel73","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/npm-just-got-hacked-again-but-somehow-deno-is-dead--vuawrel73"},"datePublished":"2026-10-16T11:29:14.509Z","dateModified":"2026-10-16T11:29:37.473Z","description":"A rundown of npm's ongoing supply chain security crisis, covering a fresh malicious package campaign from an account called Dirty Blanket that used...","image":"https://i.ytimg.com/vi/UEF76vVMnVw/sddefault.jpg","thumbnailUrl":"https://i.ytimg.com/vi/UEF76vVMnVw/sddefault.jpg","isAccessibleForFree":true,"articleSection":"Awesome","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Awesome","logo":"https://media.daily.dev/image/upload/s--mj_0cdD8--/f_auto/v1710506099/logos/awesome-coding","url":"https://daily.dev/sources/awesome-coding"},"commentCount":4,"discussionUrl":"https://daily.dev/posts/npm-just-got-hacked-again-but-somehow-deno-is-dead--vuawrel73","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":21},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":4}],"keywords":"cyber,nodejs,malware,npm,deno","timeRequired":"PT8M","video":{"@type":"VideoObject","name":"NPM just got hacked AGAIN… but somehow Deno is dead?!","description":"A rundown of npm's ongoing supply chain security crisis, covering a fresh malicious package campaign from an account called Dirty Blanket that used...","thumbnailUrl":"https://i.ytimg.com/vi/UEF76vVMnVw/sddefault.jpg","uploadDate":"2026-10-16T11:29:14.509Z","duration":"PT8M","url":"https://api.daily.dev/r/vUaWrEl73","embedUrl":"https://www.youtube.com/embed/UEF76vVMnVw"}}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Awesome","item":"https://daily.dev/sources/awesome-coding"},{"@type":"ListItem","position":3,"name":"NPM just got hacked AGAIN… but somehow Deno is dead?!"}]}
{"@context":"https://schema.org","@type":"WebPage","@id":"https://daily.dev/posts/npm-just-got-hacked-again-but-somehow-deno-is-dead--vuawrel73","comment":[{"@type":"Comment","text":"disabling install scripts by default should’ve happened years ago tbh. nearly every one of these worms rides in on a postinstall hook nobody ever reads, that’s the actual attack surface, not the typosquatting.","datePublished":"2026-10-16T18:04:41.906Z","url":"https://daily.dev/posts/vUaWrEl73#c-5kY2Ytk0i","author":{"@type":"Person","name":"PDFops","url":"https://daily.dev/pdfopsdev","image":"https://media.daily.dev/image/upload/s---8isRBKc--/f_auto/v1782922291/avatars/avatar_orjMeK8QKaaVZwGq7ScPz?_a=BAMAMicg0"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":2}},{"@type":"Comment","text":"In the past, coding was based more on trust because most code was written by professionals. Today, Al makes it easy for anyone to introduce bad/unsafe code. This creates a major challenge for the entire industry - how to check AI-gen code and develop new security methods","datePublished":"2026-10-18T07:50:29.235Z","url":"https://daily.dev/posts/vUaWrEl73#c-szkgcJsxK","author":{"@type":"Person","name":"Baz","url":"https://daily.dev/baz14","image":"https://lh3.googleusercontent.com/a/ACg8ocKd2iFU8YS4sV-rBJptuYSF8EHeQnm23N_dcXE1uON7_GMIlZg=s96-c"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1}}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/npm-just-got-hacked-again-but-somehow-deno-is-dead--vuawrel73#faq","mainEntity":[{"@type":"Question","name":"What changed in npm 12 regarding install scripts?","acceptedAnswer":{"@type":"Answer","text":"npm 12, shipped in July, disables lifecycle install scripts by default, along with git dependencies and remote dependencies, making them opt-in. Packages that need to run something during install require explicit approval via npm approved scripts, with the allow list committed into package.json, reducing the attack surface that worms like Shai-Hulud exploited through postinstall hooks. Teams locking down npm pipelines against install-script attacks track ecosystem security changes like this on daily.dev."}},{"@type":"Question","name":"How did authorities catch the group behind the Shai-Hulud npm worm?","acceptedAnswer":{"@type":"Answer","text":"Investigators reportedly connected the Team PCP group's two alleged members, aged 21 and 23, through a Hacker One account, a TikTok profile, and cat videos they posted, leading to arrests in Perth, Australia on August 26th. A Google undercover persona had spent months infiltrating the group's inner circle, watching attacks unfold and warning victims before the arrests, with the campaign having hit over 1,000 organizations and exposed more than 500,000 credentials. Developers tracking npm supply chain threats and takedowns follow stories like this on daily.dev."}},{"@type":"Question","name":"What is the Shai-Hulud npm worm and how did it evolve over time?","acceptedAnswer":{"@type":"Answer","text":"Shai-Hulud is a self-propagating npm supply chain worm first seen spreading through legitimate packages in September 2025 by stealing publishing credentials. A second wave in November, documented by Datadog, hit over 700 packages, stealing cloud credentials and leaking secrets via public GitHub repos. A Mini Shai-Hulud variant later compromised the TanStack dependency tree through a poisoned CI cache consumed by a legitimate release workflow, per Akamai. Maintainers hardening CI pipelines against worm-style attacks keep up with cases like this on daily.dev."}}]}
```

