
Every modern software company runs on open source. Your application framework, your database driver, your authentication library, your logging tool, your CI/CD pipeline — somewhere in your dependency tree, there's a package maintained by one person in their spare time.
This isn't news. But the risk profile has changed significantly, and most companies haven't adjusted.
The supply chain reality
Recent reports show a sharp increase in supply chain attacks targeting open-source projects. Google's security team has warned explicitly about the rise of attacks on open-source package repositories. Red Hat issued an advisory this year covering multiple supply chain compromises of open-source projects in a single incident.
The pattern is consistent: attackers target widely-used open-source packages — either by compromising maintainer accounts, submitting malicious pull requests, or creating typosquatted packages with similar names. Because these packages are pulled automatically by build systems and dependency managers, a single compromised package can propagate across thousands of organizations within hours.
The Trivy and Axios incidents earlier this year demonstrated exactly how quickly this can escalate. A compromised package gets pulled into your CI/CD pipeline, and suddenly you're running attacker-controlled code in your build environment.
Why startups are especially exposed
Large companies have dedicated security teams that review dependencies, monitor for compromises, and maintain internal mirrors of critical packages. Startups don't.
Here's what I typically see:
No software bill of materials. Most startups can't produce a complete list of their dependencies, let alone their transitive dependencies (the dependencies of their dependencies). When a vulnerability is disclosed in a widely-used package, they don't know whether they're affected without manually checking.
Automatic updates without review. Dependabot and Renovate are great tools for keeping dependencies current. But if you're automatically merging dependency updates without reviewing what changed, you're trusting the entire open-source ecosystem implicitly.
No pinned versions. Using version ranges (^1.2.3) instead of exact versions (1.2.3) means your build can pull in a new version of a dependency without any human decision. If that new version is compromised, you're compromised.
Build environments with broad access. Your CI/CD pipeline probably has access to your source code, your cloud credentials, your deployment infrastructure, and your artifact registry. If a compromised dependency runs in that environment, the attacker has access to all of those things.
What to do about it
Generate and maintain an SBOM. Use tools like Syft, CycloneDX, or your language ecosystem's built-in tools to generate a software bill of materials. Know what you're running. Update it regularly.
Pin your dependency versions. Use exact versions in your lock files. Review dependency updates before merging them. Yes, this creates more work. It also prevents a compromised package from automatically entering your build.
Use dependency scanning. Tools like Snyk, Dependabot, Grype, or Trivy can scan your dependencies for known vulnerabilities and alert you when new ones are disclosed. This should be part of your CI/CD pipeline.
Evaluate critical dependencies. For the packages your application depends on most heavily, look at the project's health. How many maintainers does it have? How frequently is it updated? Does it have a security policy? Is it backed by a company or foundation, or is it a single maintainer's side project?
Isolate your build environment. Your CI/CD pipeline should have the minimum permissions needed to build and deploy your application. Don't give it admin access to your cloud environment. Use separate credentials for build, deploy, and production. Segment your pipeline so a compromise in one stage doesn't automatically propagate to the next.
Consider contributing. If your business depends on an open-source project maintained by one or two people, consider contributing to it. Financial sponsorship, code contributions, security reviews — all of these make the project more resilient and reduce your risk.
The uncomfortable dependency
Open source is a supply chain, and like any supply chain, it has risks that need to be managed. The difference is that most companies manage their vendor supply chain actively — they do vendor assessments, negotiate SLAs, review SOC 2 reports — but treat their open-source supply chain as a free resource with no risk.
That assumption was always wrong. It's becoming dangerous.
The companies that take open-source supply chain security seriously now — maintaining SBOMs, scanning dependencies, reviewing updates, isolating build environments — are building resilience against a threat that is growing quickly. The ones that don't are one compromised package away from a very bad day.
If you need help assessing your software supply chain risk or building dependency management into your security program, we do this work regularly at Com-Sec.
Farbod Fakhrai is the founder of Com-Sec, a cybersecurity and compliance consulting firm for startups and growth-stage companies.