this may be the worst one ๐Ÿ”— **Source:** [this may be the worst one](https://www.youtube.com/watch?v=69F9IuBWb-E) > [!note]+ Document Notes > tags: [Assign relevant tags or keywords to the notee to facilitate organization and retrieval. Add a # before each tag. Tags cannot have special characters. Do not use the tag #articles] > - #supplychain > - #npm > - #security > Author: YouTube creator (channel not specified in transcript) > Source: YouTube video (transcript) > Reference: https://www.youtube.com/watch?v=69F9IuBWb-E > date created: {{date:YYYY-MM-DD}} {{time:HH:mm}} > > # ๐Ÿชฑ Title: โ€œThis May Be the Worst Oneโ€ โ€” Shai-Hulud npm Worm & Supply-Chain Lessons > <!-- deep-read:sections start --> ## ๐Ÿงญ Table of Contents: - ๐Ÿ”— [๐Ÿ“ Summary](#-summary) - ๐Ÿ”— [๐Ÿ“– Main Content](#-main-content) - ๐Ÿ”— [๐Ÿ—’๏ธ Notes โ€” Timestamped Subheadings (Clickable to YouTube)](#๏ธ-notes--timestamped-subheadings-clickable-to-youtube) - ๐Ÿ”— [๐Ÿ“– References](#-references) - ๐Ÿ”— [๐Ÿ—ฃ๏ธ Paraphrase](#-paraphrase) - ๐Ÿ”— [๐Ÿ“ฐ Newsletter](#-newsletter) - ๐Ÿ”— [โœ… Action Items](#-action-items) - ๐Ÿ”— [๐Ÿงช Hypotheses](#-hypotheses) - ๐Ÿ”— [๐Ÿ“Š Methodology](#-methodology) - ๐Ÿ”— [โ“ Questions](#-questions) - ๐Ÿ”— [๐Ÿ”ฎ Future Research](#-future-research) - ๐Ÿ”— [๐Ÿ’ก Implications](#-implications) - ๐Ÿ”— [๐Ÿง  Learning Styles Assessment](#-learning-styles-assessment) - ๐Ÿ”— [๐Ÿ“Š Accessibility Assessment](#-accessibility-assessment) - ๐Ÿ”— [๐ŸŒ DEIB Assessment](#-deib-assessment) - ๐Ÿ”— [โœ… Logical Validity & Tone](#-logical-validity--tone) - ๐Ÿ”— [๐Ÿ›ก๏ธ DARVO Analysis](#-darvo-analysis) - ๐Ÿ”— [๐Ÿ” SEO Evaluation](#-seo-evaluation) - ๐Ÿ”— [๐ŸŽฏ Conclusion](#-conclusion) ### ๐Ÿ“š References: Include a list of sources consulted and cited in the article. - ๐Ÿ”— Primary: Video transcript โ€” https://www.youtube.com/watch?v=69F9IuBWb-E - ๐Ÿ”— Mentioned concepts/tools: TruffleHog, GitHub Actions, post-install scripts, semantic-versioning (no external sources cited in the video) --- ## ๐Ÿ“ Summary: - ๐Ÿชฑ A worm-style npm attack (โ€œShai-Huludโ€) propagated repo-to-repo by stealing tokens and mutating CI to push malicious patch versions. - ๐Ÿ”’ The presenter stresses version pinning, smaller dependency trees, and CI/token hardening as practical defenses. - ๐Ÿงช The attack abused post-install scripts and secret-scanning tooling to exfiltrate credentials, then auto-republished. - ๐Ÿงฑ Even careful teams can be exposed through floating transitive dependencies. --- ## ๐Ÿ“– Main Content: - ๐Ÿง  **Threat model shift:** Not just โ€œuser installs a bad package.โ€ The worm targets maintainers and CI to **manufacture** more bad packages. - ๐Ÿงฐ **Technique stack:** Post-install runner โ†’ secrets scanner abuse โ†’ token capture โ†’ GH Actions edits โ†’ publish wormed patch versions. - ๐Ÿงฑ **Amplifiers:** Auto-upgrade ranges (`^`/`~`), dormant packages revived with tiny version bumps, and long-lived CI tokens. - ๐Ÿงฏ **Defensive stance:** Pin versions; whitelist or block post-install; rotate to short-lived tokens; restrict CI permissions; prune trivial dependencies. --- ## ๐Ÿ—’๏ธ Notes โ€” Timestamped Subheadings (Clickable to YouTube) ### ๐Ÿ”ฅ [0:00โ€“0:10 โ€ข Third npm incident in a week (hook)](https://www.youtube.com/watch?v=69F9IuBWb-E&t=0s) - ๐Ÿงท Sets urgency: โ€œHow is this still happening?โ€ Repetition primes risk awareness. - ๐Ÿงญ Frames topic: supply-chain attacks as a recurring systemic failure. ### ๐Ÿช™ [0:16โ€“0:33 โ€ข โ€œShai-Huludโ€ name & Dune riff](https://www.youtube.com/watch?v=69F9IuBWb-E&t=16s) - ๐Ÿงฉ โ€œTokens must flowโ€ gag connects theme: tokens as the attackโ€™s currency. - ๐ŸŽญ Humor lowers the shield while keeping focus on credential theft. ### ๐Ÿงฌ [0:31โ€“1:18 โ€ข Why this one is worse: lateral spread](https://www.youtube.com/watch?v=69F9IuBWb-E&t=31s) - ๐Ÿฆ  Not only exfiltration; it **self-propagates** repoโ†’repo via CI mutation. - ๐Ÿงฐ Blends multiple attack modes: phishing + worming + supply-chain tampering. ### ๐ŸŽฃ [1:21โ€“1:40 โ€ข Likely phishing origin](https://www.youtube.com/watch?v=69F9IuBWb-E&t=81s) - ๐Ÿงต Initial foothold from a smaller repository compromise. - ๐Ÿ’ค Dormant package revived; audience warned about โ€œlong-quietโ€ packages. ### ๐Ÿงช [1:40โ€“1:58 โ€ข Malicious patch bumps (0.0.5 / 0.0.6)](https://www.youtube.com/watch?v=69F9IuBWb-E&t=100s) - ๐Ÿงจ Tiny semver changes smuggle the payload. - ๐Ÿงญ Lesson: treat patch bumps as untrusted until reviewed. ### ๐Ÿ”’ [2:01โ€“2:25 โ€ข โ€œDo not auto-upgrade patch versionsโ€](https://www.youtube.com/watch?v=69F9IuBWb-E&t=121s) - ๐Ÿงฑ Floating ranges widen your blast radius. - ๐Ÿ” Even if you pin, upstreams can still float; transitive risk remains. ### โš™๏ธ [2:47โ€“3:06 โ€ข Dependency automation critique](https://www.youtube.com/watch?v=69F9IuBWb-E&t=167s) - ๐Ÿ›‘ Over-automation without review โ‰ˆ โ€œwalking into hell.โ€ - ๐Ÿงฎ Policy hint: favor manual promotion + release note checks. ### ๐Ÿงฐ [3:07โ€“3:19 โ€ข Post-install again, but different payload](https://www.youtube.com/watch?v=69F9IuBWb-E&t=187s) - ๐Ÿงช Compares to prior NX incident; similar vector, new behavior. ### ๐Ÿ•ต๏ธ [3:29โ€“3:41 โ€ข TruffleHog abuse](https://www.youtube.com/watch?v=69F9IuBWb-E&t=209s) - ๐Ÿ— Legit secret scanner repurposed for credential harvesting. - ๐Ÿงท Reminder: dual-use tools require context-aware controls. ### ๐Ÿงต [4:01โ€“4:21 โ€ข CI pivot: mutate GitHub, republish](https://www.youtube.com/watch?v=69F9IuBWb-E&t=241s) - ๐Ÿงช Edits GH Actions, injects post-install, publishes infected patches. - ๐Ÿงฑ Turns victims into amplifiers across the dependency graph. ### ๐Ÿ–ฅ๏ธ [4:36โ€“4:50 โ€ข Workstations and CI both at risk](https://www.youtube.com/watch?v=69F9IuBWb-E&t=276s) - ๐Ÿ”‘ Any environment holding tokens becomes an entry point. - ๐Ÿ”’ Emphasizes token scope, rotation, and short lifetimes. ### ๐Ÿ“ˆ [4:52โ€“5:12 โ€ข From ~40 to ~180 packages (fast growth)](https://www.youtube.com/watch?v=69F9IuBWb-E&t=292s) - ๐Ÿงฎ Uses hyperbole (โ€œ24Bโ€) as a joke; still signals exponential spread. - ๐Ÿงญ Practical read: watch for fast-moving advisories and revoke early. ### ๐Ÿข [5:12โ€“5:25 โ€ข Ironic vendor infections](https://www.youtube.com/watch?v=69F9IuBWb-E&t=312s) - ๐ŸŽญ Irony aside, message is clear: **no one** is exempt from process debt. ### ๐ŸŽจ [5:47โ€“6:12 โ€ข @ctrl/tinycolor versions flagged](https://www.youtube.com/watch?v=69F9IuBWb-E&t=347s) - ๐Ÿงช โ€œ4.11 / 4.12 bad; 4.20 safeโ€ per presenterโ€™s riff. - ๐Ÿงญ Action: verify advisories; donโ€™t trust hearsayโ€”check your lockfile. ### ๐Ÿช“ [6:15โ€“6:37 โ€ข Fewer dependencies thesis](https://www.youtube.com/watch?v=69F9IuBWb-E&t=375s) - ๐Ÿงฐ For single-function needs, write a vetted snippet. - ๐Ÿงฑ Shrink attack surface; reduce transitive surprises. ### ๐Ÿค– [6:34โ€“7:02 โ€ข AI can generate simple utilities](https://www.youtube.com/watch?v=69F9IuBWb-E&t=394s) - ๐Ÿงช Use with review and tests; donโ€™t trade one risk for another. - ๐Ÿงญ Codify a checklist before adopting AI-generated code. ### ๐Ÿค [7:00โ€“7:16 โ€ข Collective security responsibility](https://www.youtube.com/watch?v=69F9IuBWb-E&t=420s) - ๐Ÿงฑ You pinning isnโ€™t enough if upstreams float. - ๐Ÿงญ Ecosystem norms matter: SBOMs, attestations, policy. ### ๐ŸŽฌ [7:16โ€“end โ€ข Tone & sign-off](https://www.youtube.com/watch?v=69F9IuBWb-E&t=436s) - ๐ŸŽญ Satirical closer (โ€œI use Elixirโ€) to keep energy high. - ๐Ÿ“ฃ Call to engage; implicit nudge toward shared security culture. --- ## ๐Ÿ“– References: - ๐Ÿ”— Video transcript: https://www.youtube.com/watch?v=69F9IuBWb-E - ๐Ÿ“ In-video mentions (no external cites provided): TruffleHog, GitHub Actions, @ctrl/tinycolor, NX incident, post-install scripts --- ## ๐Ÿ—ฃ๏ธ Paraphrase: - ๐Ÿงฉ **Version discipline, reworded:** Treat patch bumps as hostile until proven safe. Float nothing on build paths. Promote with human review and clear provenance. - ๐Ÿงฏ **Dependency minimalism, reworded:** For small utilities, a well-tested local function beats a heavy package. Fewer deps mean fewer places for worms to hide. --- ## ๐Ÿ“ฐ Newsletter: - ๐Ÿชฑ **npmโ€™s Shai-Hulud worm:** A repo-to-repo spread used post-install and CI token abuse to publish malicious patch versions at speed. - ๐Ÿ”ง **Fix it fast:** Pin versions, rotate tokens, lock down GH Actions, and prune trivial deps. Add SBOM + provenance to your release checklist. - ๐Ÿงญ **For WordPress builders:** If Node sits in your build chain, treat it like prodโ€”deny unvetted post-install, require reviews, and track transitive risk. - ๐ŸŽฅ Watch: https://www.youtube.com/watch?v=69F9IuBWb-E --- ## โœ… Action Items: - ๐Ÿ”’ **Pinning policy:** Enforce exact versions for build-time deps; block `^`/`~` in CI for production paths. - ๐Ÿ—๏ธ **Token hygiene:** Rotate all PATs; move to short-lived OIDC; least privilege on publish scopes. - ๐Ÿงฑ **CI hardening:** Protect default branches; signed commits/tags; review gates for GH Actions changes; block post-install unless whitelisted. - ๐Ÿ“ฆ **Dep diet:** Inventory and replace trivial libraries with audited internal snippets; measure transitive shrinkage. - ๐Ÿง‘โ€๐Ÿซ **Education:** Add a contributor module on semver risk, CI trust boundaries, and post-install review to Training Team materials. - ๐Ÿ›๏ธ **OSPO move:** Propose a GoDaddy Open-Source Supply-Chain Standard (SBOM, SLSA target, incident playbooks). Share a public version via The WPCC for ecosystem lift. --- ## ๐Ÿงช Hypotheses: - ๐Ÿงช H1: Exact-pinning build deps reduces successful supply-chain incidents โ‰ฅ50% in six months. - ๐Ÿงช H2: Replacing 10% of trivial deps with internal utilities reduces transitive attack surface โ‰ฅ30%. - ๐Ÿงช H3: Short-lived OIDC tokens cut credential reuse windows to <24h per repo. - ๐Ÿงช H4: Mandatory reviews on GH Actions changes prevent โ‰ฅ80% of worm re-propagation events. --- ## ๐Ÿ“Š Methodology: - ๐Ÿงญ **Design:** Phased rollout across teams; control vs. treatment (pins + OIDC + CI gates). - ๐Ÿ“ˆ **Metrics:** Incident count, time-to-detect, mean time-to-recover, SBOM coverage, % deps pruned. - ๐Ÿงท **Data:** CI logs, git audit, dependabot PRs, secret-scanner alerts, postmortems. - ๐Ÿ” **Analysis:** Interrupted time-series; diff-in-diff across cohorts; risk scoring for transitive trees. --- ## โ“ Questions: - โ“ Can we auto-block post-install unless signed and whitelisted? - โ“ Which top transitive packages drive most exposure by install base? - โ“ How do we standardize provenance checks across WP plugin/theme pipelines? - โ“ Where should we set the bar for โ€œassist vs. auto-authorโ€ in CI? --- ## ๐Ÿ”ฎ Future Research: - ๐Ÿ”ฎ Detecting lateral CI mutations in near-real time (Actions diffing, maintainer anomaly detection). - ๐Ÿ”ฎ Policy experiments: deny `^/~` on production builds; allow only exacts. - ๐Ÿ”ฎ Maintainer-support pilots: stipends and security coaching to reduce compromise risk. - ๐Ÿ”ฎ Attestation UX tailored for WordPress release flows. --- ## ๐Ÿ’ก Implications: - ๐Ÿ’ก Pinning + provenance becomes table stakes for JS toolchains that touch WordPress. - ๐Ÿ’ก Funding maintainers is a **security** investment, not charity. - ๐Ÿ’ก Shared norms (SBOMs, attestations, review gates) build ecosystem-level resilience. --- ## ๐Ÿง  Learning Styles Assessment: - ๐Ÿ–ผ๏ธ **Visual:** Video only; no diagrams. Add dependency graphs and CI flowcharts. - ๐ŸŽง **Aural:** Strong via video; offer audio-only cut and 90-second summary. - ๐Ÿ“ **Verbal:** Conversational and analogy-rich; add a glossary for newcomers. - โœ‹ **Kinesthetic:** Provide a lab to catch a safe, simulated post-install in a sandbox. - ๐Ÿงฎ **Logical:** Supply a decision tree for โ€œallow/deny post-install,โ€ โ€œfloat vs. pin.โ€ - ๐Ÿ‘ฅ **Social:** Host maintainer office hours; run tabletop incident drills. - ๐Ÿง˜ **Solitary:** Include a checklist and journaling prompts (โ€œWhat tokens exist in our CI?โ€). - ๐ŸŒฑ **Naturalistic:** Use ecosystem analogies (invasive species โ‰ˆ transitive deps). - ๐Ÿ“ **Readability:** Estimated Flesch-Kincaid Grade 9โ€“10; fast pace; define jargon inline. --- ## ๐Ÿ“Š Accessibility Assessment: - ๐Ÿ”Š **Screen readers:** Add semantic headings, accurate captions, and descriptive transcripts. - โŒจ๏ธ **Keyboard:** Ensure skip links and clear focus states in any written recap page. - ๐ŸŽจ **Contrast:** High-contrast palettes; avoid text baked into images; scalable fonts. - ๐Ÿ” **Text resizing:** Verify reflow at 200% zoom; responsive tables/diagrams. - ๐Ÿ–ผ๏ธ **Alt text:** Provide alt text for graphs (dependency maps, timelines). --- ## ๐ŸŒ DEIB Assessment: - ๐Ÿ—ฃ๏ธ **Inclusive language:** Avoid shaming newcomers (โ€œnpm enjoyers yuckโ€ can alienate); define acronyms. - ๐ŸŒ **Global access:** Provide low-bandwidth text recap; translate key guidance. - ๐Ÿงฉ **Neurodiversity:** Break content into clear chunks; add summaries and checklists. - ๐Ÿ‘ฅ **Representation:** Include examples from diverse maintainer communities and org sizes. - ๐Ÿ›Ÿ **Psychological safety:** Promote blameless postmortems; focus on systems over individuals. --- ## โœ… Logical Validity & Tone: - โœ… **Causal chain:** Floating ranges โ†’ unreviewed code โ†’ compromise cascade; coherent and plausible. - โœ… **Inductive support:** Multiple recent incidents justify stronger pinning and CI gates. - โœ… **Balanced stance:** Automation needs guardrails, not total rejection. - โš ๏ธ **Hasty generalization:** Exaggerated โ€œ24B packagesโ€ is humor; avoid as evidence. - โš ๏ธ **Appeal to ridicule:** Vendor irony entertains; separate it from technical critique. - ๐ŸŽ™๏ธ **Tone:** High-energy, sarcastic, memorable; effective for engagement, light on citations. --- ## ๐Ÿ›ก๏ธ DARVO Analysis: - โ›” **Deny:** No denial; acknowledges repeated ecosystem failures. - โš”๏ธ **Attack:** Light mockery of affected vendors; not central to the argument. - ๐Ÿ”„ **Reverse victim/offender:** Not present; developers cast as victims of systemic risk. - ๐Ÿงญ **Net:** No DARVO structure; rhetoric pushes for practical defenses. --- ## ๐Ÿ” SEO Evaluation: - ๐Ÿ”‘ **Keywords:** npm worm, Shai-Hulud, post-install, CI tokens, GitHub Actions, supply-chain security. - ๐Ÿท๏ธ **Title tag:** โ€œnpm Shai-Hulud Worm: Post-Install + CI Token Abuse Explained.โ€ - ๐Ÿ“ **Meta:** โ€œHow a worm spread via CI and patch bumpsโ€”and how to pin, prune, and protect.โ€ (โ‰ค160 chars) - ๐Ÿงฑ **Headers:** Use H2/H3 for โ€œHow it spreads,โ€ โ€œMitigations,โ€ โ€œChecklist.โ€ - ๐Ÿ“ **Length:** Aim 1,200โ€“1,800 words for a written recap. - ๐Ÿ”— **Links:** Add advisories/CVEs and tool docs; cross-link internal IR guides. - ๐ŸŒ **URL:** `/security/npm-shai-hulud-worm-mitigations` - ๐Ÿ–ผ๏ธ **Images:** Optimized SVG diagrams with alt text. - ๐Ÿ“ฑ **Mobile:** Test LCP/CLS; defer heavy embeds. - ๐Ÿงฉ **Schema:** `VideoObject` + `Article`; optional `FAQPage`. - ๐Ÿ“ฃ **Sharing:** Open Graph/Twitter Cards; clear CTA to โ€œCopy mitigation checklist.โ€ --- ## ๐ŸŽฏ Conclusion: - ๐Ÿชฑ Shai-Hulud weaponizes **your** CI and transitive tree. - ๐Ÿ”’ Defense wins: exact-pin versions, short-lived tokens, hardened Actions, fewer trivial deps, and shared provenance norms. - ๐Ÿค WordPress and npm communities improve together by turning these practices into **policy**, not panic. <!-- deep-read:sections end --> ## ๐Ÿ“บ Video ![](https://www.youtube.com/watch?v=69F9IuBWb-E) --- # ๐Ÿ“„ Full Transcript *Auto-generated from YouTube captions ยท timestamps roughly every 30 seconds ยท [watch on YouTube](https://www.youtube.com/watch?v=69F9IuBWb-E)* **[00:00]** I don't understand how this keeps happening. How are we here? Three times in a single week. Yes, another supply chain attack happened again on npm. And yes, a lot and a lot of repositories were affected. Now, this one code named Shy Halude. Obviously, the tokens must flow. Okay, the tokens. Just give me the tokens. There are so many twists to this one. This one is an absolute masterclass in just destroying an ecosystem. Now **[00:31]** what makes Shy Hulu different here is that instead of just simply being something in which the end user ends up downloading an npm package and then what the post install script goes and takes all your credentials and like I got your tokens. Yes. Yes. Instead, it doesn't just do that. It spreads itself from repository to repository to repository and just keeps on growing. So, this isn't just simply a fishing attack. It's like all the attacks in one. Also, very impressive that it's the Singularity NX **[01:01]** hack that happened just last week. This appears to be by the same crew. Okay, they're on a they're on a hacking spree. Okay, this is a this is a double hack. I mean, they might even get to a triple hack potentially. A a hacktacular is on the horizon. All right, let's just jump right into it. So, how did this hack happen again? Now, first off, it likely occurred due to a fishing scam. That's what everything is saying. I asked Grock to find some sources. It just appears that fishing was the root cause. Some **[01:32]** small repository got had. The unknown repository is likely this uh RX NT authentication, which has been deprecated, hasn't seen any publications for a long time. Then out of nowhere 4 days ago got a new version which was going to be 005 which it looks like it's been removed already and 006 which both contained this attack. Now the attack took advantage of the exact same thing again a little patch version update. Now I don't know why this keeps happening. I swear I keep saying this. Don't **[02:05]** autoupgrade patch versions. It's like a massive security vulnerability. This is like the easiest way to be had ever yet it just keeps happening. Why? Why do you keep doing it? Say no. Lock your versions. Now obviously this is really really difficult because you may lock your versions and you may be the good you know the good citizen in this situation. But remember package managers are in fact evil and people who don't lock their versions can still get you **[02:35]** because you rely on them. They rely on other things. those other things get, you know, supply chain attacked. Boom. It trickles all the way down to you despite the fact that you did all the right steps. And Ginger Bill maybe is right. Maybe Ginger Bill is correct. Automation of package dependencies is walking into hell and we should all avoid it as much as we possibly can. I don't know. Maybe he is right. Mr. Quantum mechanic scientist who moonlights as language creator. **[03:06]** Anywh who, so after the patch version has been installed, a post install script again gets installed and this time instead of using like say the AI to go through your system and get all the credentials, which is what happened last time with the NX attack, which by the way was just a couple days ago. Okay, no sleep for the weary here. We just got to go from one attack to the next attack. This one instead uses something called Truffle Hog, which by the way, insane name. Old girl, I'm going to slip my truffle hog on that computer and I'm going to get so many tokens you don't **[03:37]** even know. A truffle hog is like a secret scanning tool. You're supposed to use it on your repository or use it in CI to make sure you're not accidentally leaking tokens. So like its idea is actually good. Unless if someone uses it for not good, then it's bad. Then it's really bad. So anyways, after getting your tokens, so this is where the things take a turn. So unlike the previous one and all unlike most of these attacks which take your tokens and then throws them all up onto a repository and it's like talk about all your tokens. This time instead just immediately goes to **[04:09]** work on your GitHub. Oh, we're going to update some CI. We're going to put in some new post installation. We're going to publish to npm. It does all the things to attempt to go publish patch versions with its new installation process that has the post install that does and does it again. So that way if one unknown repository gets had during CI of the next one, it goes d and just get just it's just flying through the system. That means you're vulnerable on your desktop if you have tokens that can be taken advantage of. That means your **[04:41]** CI is vulnerable if your CI has the tokens that can be taken advantage of. Now hide like literally hide your kids, hide your wives, hide your husband because they're stealing everybody's tokens out here. So, as this thing has progressed, it started off with 40 npm packages that have been compromised. Now, it's up to 180. This is only just a few hours later. My guess is that by the end of the week, it'll be like 24 billion just by the growth rate here. I want to take a look at who got affected because as you can see, there's just so many packages. But I think the one that **[05:12]** just it just makes me laugh. Even though we shouldn't laugh, I'm laughing. Crowdstrike. Yes. The company in which sells security solutions is in fact currently a distributor of a worm attack. I mean this is beautiful. This is this is I mean this is all life is art but unknown to thee. This is like the most just amazing situation of irony that has ever been created. Crowd strike blue screens of death or let me have all **[05:42]** your tokens. Which which which one do you want? Huh? Also, there's a whole bunch of other this popular author Control got had through Tiny Color. Tiny Color apparently was the first version, which by him having those, he accidentally ended up getting had again further and further. As you can see right here, 4.11 and 4.12 were both bad versions of which when you look at Tiny Color 420, version 420 is the safe one. Okay. Hey, nice. I see what you did there. That was a good move. At the end of the day, I think the biggest takeaway here is stay away from auto upgrading. **[06:15]** Take your time, understand what you're using, and maybe perhaps, I know this is going to be a crazy idea, maybe we don't need all of these dependencies. Maybe the singular function that you're using doesn't need to be an entire dependency with its own compounding effect of security vulnerabilities. And in the day and age of AI, left pad's pretty easy to generate. Oh, you need some sort of, you know, HSV to RGB converter. Pretty easy to generate, right? Like, this isn't even something that you need to first go **[06:46]** off and get massive expertise. And the cost of creating one-off functions instead of downloading an entire repository worth of functions is now so low, you barely need anything. Maybe these repetitive attacks will get people thinking more and more about the dependencies they're taking. And hopefully, you will think about it, too. Because even again, even if you fix your patches, it doesn't mean the things you depend on fix your patches. Everybody needs to do it together. Okay? We're all in this together. Well, I'm not in this together. Okay? I don't like to program **[07:16]** JavaScript. I use Elixir, by the way. So, not my problem, okay? Hey, that's that's actually your problem. We're not all in this together. You're in this together. You you npm enjoyers. Okay? Yuck. By the way, if you like this, press the like button. If you haven't subscribed, press it because we're getting close to a million. Okay, I'm like 10% away.