Hadi Farnoud
05/30/2026, 2:53 PMkubectl context, no in-cluster agent, no kubeconfig sent anywhere.)
The npm worm wave (Shai-Hulud, then Mini Shai-Hulud across npm+PyPI) made me treat a dependency compromise as when, not if. What I landed on:
Reduce likelihood
• OIDC trusted publishing — killed the long-lived NPM_TOKEN (the exact credential those worms exfiltrate to self-propagate); releases now auth with a short-lived per-run GitHub token
• ignore-scripts=true so dependency `postinstall`/`preinstall` hooks don’t execute on install
• Every third-party GitHub Action pinned to a full commit SHA, not a moving tag (post-tj-actions/CVE-2025-30066); first-party actions/* on majors
• Dep tree kept to 7 direct packages so an advisory is actually reviewable; lockfiles + npm ci only
Reduce impact (the part I most want critique on)
• The tool holds no cluster credential server-side — no SA token, no stored kubeconfig, no inbound path. So a poisoned dependency’s blast radius is bounded to the operator machine that already has kubectl, rather than a centrally-held secret an attacker can pivot through.
Where I think I’m weakest: that last point bounds lateral movement but a malicious dep still runs with the operator’s local privileges — so it’s a reduction, not elimination. Am I framing that honestly, or overselling? And for those publishing CLIs from a private monorepo: provenance attestations aren’t possible (npm requires a public source repo) — how are you giving consumers verifiability without open-sourcing the backend?
does this reassure you? was this even a concern for you? genuinely want the pushback. 🙏Erik Osterman (Cloud Posse)
05/30/2026, 3:04 PMEvery third-party GitHub Action pinned to a full commit SHA, not a moving tag (post-tj-actions/CVE-2025-30066); first-partyWe took this one step further https://github.com/cloudposse/atmos/blob/main/.github/workflows/verify-sha-pinning.yml https://github.com/cloudposse/atmos/tree/main/.github/actions/verify-sha-pinning verify that the shas also match a commit within the repoon majorsactions/*
Hadi Farnoud
05/30/2026, 3:05 PMErik Osterman (Cloud Posse)
05/30/2026, 3:06 PMErik Osterman (Cloud Posse)
05/30/2026, 3:07 PMErik Osterman (Cloud Posse)
05/30/2026, 3:08 PMHadi Farnoud
05/30/2026, 3:09 PMHadi Farnoud
05/30/2026, 3:09 PMErik Osterman (Cloud Posse)
05/30/2026, 3:09 PMAnd for those publishing CLIs from a private monorepo: provenance attestations aren’t possible (npm requires a public source repo) — how are you giving consumers verifiability without open-sourcing the backend?It's a good question. I think it's hard to fast track this / short cut this. Having a track record, getting SOC2, and time in the market.
Hadi Farnoud
05/30/2026, 3:10 PMErik Osterman (Cloud Posse)
05/30/2026, 3:11 PMWhere I think I’m weakest: that last point bounds lateral movement but a malicious dep still runs with the operator’s local privileges — so it’s a reduction, not elimination. Am I framing that honestly, or overselling?It's not a problem you uniquely face. It am terrified of it. Look at what just happened to microsoft/github when a developer installed a vscode plugin that was hacked.
Hadi Farnoud
05/30/2026, 3:12 PMErik Osterman (Cloud Posse)
05/30/2026, 3:12 PMyou’re correct but its tough as a new micro saas startupThis is the conundrum we now face. Never has it be easier to start a company, build a product. Never has it been harder to cut through the noise and reach customers because the number of products and companies is exploding.
Hadi Farnoud
05/30/2026, 3:13 PMHadi Farnoud
05/30/2026, 3:15 PMErik Osterman (Cloud Posse)
05/30/2026, 3:26 PMErik Osterman (Cloud Posse)
05/30/2026, 3:27 PMErik Osterman (Cloud Posse)
05/30/2026, 3:30 PMHadi Farnoud
05/30/2026, 3:30 PM