Treat Your Dependency and CI Pipeline as an Attack Surface_
Supply chain security is not just about vulnerable packages. It also includes action pinning, token scope, artifact trust, and separating privileged workflows.
Most teams think about supply chain risk as "did npm audit find anything bad?"
That is a small part of the problem.
A modern JavaScript delivery pipeline trusts:
the packages you install
the transitive packages they install
the GitHub Actions you execute
the tokens those workflows can access
That is a meaningful attack surface, especially once CI has permission to comment on PRs, publish packages, deploy infrastructure, or push to the default branch.
The First Easy Win: Pin External Actions
This is weaker than many teams realize:
uses: vendor/example-action@v2
The tag can move.
If you rely on third-party actions, pin to a full commit SHA and review updates intentionally: