StepSecurity Blog

stepsecurity.io · Company blog · on HN since 2023

StepSecurity's blog reports on software supply chain attacks, including compromised GitHub Actions and npm packages.

What HN saysHN links it for reports on incidents such as Shai-Hulud variants, compromised npm packages, and worms that plant AI coding agent config files.
32HN people shared it
14linked it in comments
37stories submitted
475story points
2 months agolast shared
2023people per year2026

Most-shared posts

  1. 1
  2. 2
  3. 3
    Miasma Worm Hits Microsoft Again
    3 people · 3 points · first shared 2026 · discussion on HN
  4. 4
  5. 5
    Ctrl/tinycolor and 40 NPM Packages Compromised
    2 people · 5 points · first shared 2025 · 1 comments on HN
  6. 6
  7. 7
  8. 8
  9. 9
    TeamPCP's Mini Shai-Hulud Is Back
    2 people · 1 points · first shared 2026 · discussion on HN
  10. 10
    eslint-config-prettier npm package compromised
    1 people · 74 points · first shared 2025 · 11 comments on HN
  11. 11
    Num2words PyPI Package Compromised
    1 people · 22 points · first shared 2025 · 6 comments on HN
  12. 12
    Grafana GitHub Actions Security Incident
    1 people · 10 points · first shared 2025 · discussion on HN
  13. 13
  14. 14
    Mini Shai-Hulud: Bun Payloads Hit SAP NPM Packages
    1 people · 7 points · first shared 2026 · discussion on HN
  15. 15

What HN people wrote when they linked it

Ukv · 2026-06-09
https://www.stepsecurity.io/blog/miasma-worm-hits-microsoft-again-azur… mentions that it plants `.claude/settings.json`, `.gemini/settings.json`, `.cursor/rules/setup.mdc`, and `.vscode/tasks.json` to execute its payload as a setup task. VSCode will be used by plenty of non-AI-using developers, and the credential harvester is not specific to AI API tokens, but that 3/4 of the targets are AI coding tools is I assume where the claim comes from.
haute_cuisine · 2026-06-09
Please, someone explain how it's possible to add obfuscated file to so many repositories? Do they don't have any code reviews? Also, the title is misleading, setup adds config to be auto executed by people who work on the repo. They would have to use vscode/cursor/claude/gemini. People who use codex / opencode / other harnesses are safe I guess. Details: https://www.stepsecurity.io/blog/miasma-worm-hits-microsoft-again-azur…
mellosouls · 2026-06-01
Should link to the original announcement I think: https://www.stepsecurity.io/blog/multiple-redhat-cloud-services-npm-pa…
vldszn · 2026-05-21
Per security advisory on GitHub: Root Cause One of our developers was compromised by a recent supply-chain compromise on Tanstack, which leaked their GitHub credentials through the GitHub CLI (gh). This allowed the attacker to run workflows on our GitHub repository as a contributor. More links: https://github.com/nrwl/nx-console/security/advisories/GHSA-c9j4-9m59-… https://www.stepsecurity.io/blog/nx-console-vs-code-extension-compromi…
isityettime · 2026-05-11
Not a drive-by PR, but once a package is compromised it often does spread to its reverse-dependencies via mechanisms like setup.py at build time. There was case like this with setup.py less than two months ago: https://www.stepsecurity.io/blog/forcememo-hundreds-of-github-python-r… Lots of npm supply chain attacks propagate at build time via post-install hooks, too.
otterley · 2025-08-27
Claude Code is an agent. It will not call any tools or commands without your prior consent. Edit: unless you pass it an override like --dangerously-skip-permissions, as this malware does. https://www.stepsecurity.io/blog/supply-chain-security-alert-popular-n…
gawa · 2025-06-11
> This is why I avoid using non-official actions where possible and always set a version for the action. Those are good practices. I would add that pinning the version (tag) is not enough, as we learnt with the tj-actions/changed-files event. We should pin the commit sha.[0]. Github states this in their official documentation [1] as well: > Pin actions to a full length commit SHA > Pin actions to a tag only if you trust the creator [0] https://www.stepsecurity.io/blog/harden-runner-detection-tj-actions-ch… [1] https://docs.github.com/en/actions/security-for-github-actions/securit…
netvarun · 2025-03-15
@dang: The original URL (from Step Security, the company that discovered this flaw) is a better source for this: https://www.stepsecurity.io/blog/harden-runner-detection-tj-actions-ch…
varunsharma07 · 2026-08-04
We (StepSecurity) published a full analysis of both payload stages: https://www.stepsecurity.io/blog/chaindrop-npm-worm Some additional detail from our analysis: 1. Provenance did not fail, it worked as designed and still shipped malware. The initial 11 packages were published through npm OIDC Trusted Publishing with valid SLSA attestations. The attacker compromised the maintainer's GitHub account and let the projects' own release workflows publish. Provenance proves which commit was built, not that the commit was authorized. 2. There is a booby trap on remediation: the worm installs a watcher that fires an attacker payload when the stolen GitHub token gets revoked. Remove the token monitor first, then rotate. 3. Persistence goes beyond node_modules. It writes .claude/settings.json (SessionStart hook) and .vscode/tasks.json (runOn: folderOpen), each re-executing the dropper. Check repo dotfiles too. 4. No C2 domain to sinkhole: exfil endpoints resolve at runtime from an Ethereum contract. Observed domain is npm-cache.com, but the operator can rotate it and push new code to infected hosts. If you're auditing: look for setup.mjs, a 727,680 byte Math_Symbol.js (math_init.js in the second wave), and "preinstall": "node setup.mjs" in package.json. Careful, regenerate-unicode-properties ships a legitimate 1 KB Math_Symbol.js; the malicious one is over 700 KB. Full IOC and package list in the post, updated as the campaign develops.
AgentME · 2026-06-02
No, the reference to May 19 in the article is about a previous supply chain attack against AntV (https://www.stepsecurity.io/blog/shai-hulud-here-we-go-again-mass-npm-… I think there may be some copy-paste mistakes where they reused part of that previous article and didn't contextualize it correctly. The npm package `@redhat-cloud-services/chrome` version 2.3.1, which was part of this current supply chain attack, was published on June 1. The malicious package version is no longer listed on npmjs.com's web UI since it was taken down, but the publish date of 2.3.1 can still be seen in https://registry.npmjs.org/@redhat-cloud-services/chrome by searching for the version number there, and the publish date was 2026-06-01T10:54:42.121Z. I find the article extremely annoying for not having a clear timeline of when these malicious package versions were available.

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close