What Your Vendors' Security Posture Actually Means for You
Your vendor's security posture is part of your security posture. When they have access to your systems, their vulnerabilities become yours.

Sonatype counted 1.23 million malicious packages. Your lockfile security posture determines whether those packages reach production or stop at the gate. The dependency layer is the attack surface now.
Sonatype's 2026 State of the Software Supply Chain Report identified over 1.23 million cumulative malicious open source packages, with 454,600 new ones in 2025 alone. Your lockfile security posture determines whether those packages reach your production systems or stop at the gate. The dependency layer is no longer a side channel. It is the channel.
A lockfile is a snapshot of every resolved dependency in your project, pinned to exact versions with integrity hashes. When you run npm install without a lockfile, the package manager resolves the latest versions that satisfy your version ranges. When you run npm ci against a committed lockfile, it installs exactly what was verified last time. That distinction matters more now than it ever has.
The average npm project pulls in 79 transitive dependencies, according to research cited in Sonatype's 2026 report. Empirical data from GitHub repositories shows a median of 150 transitive dependencies, with some projects reaching into the thousands. Every one of those is a trust decision you made implicitly when you added a direct dependency.
Synopsys found that 86% of commercial codebases contain open source vulnerabilities, with the average codebase including 911 open source components and 90% having components four or more years out of date. The lockfile is the only artifact that records the full truth of what you actually shipped.
Attackers go where the leverage is. Compromise one popular package and you reach every project that depends on it. In September 2025, attackers compromised 18 widely used npm packages (including chalk and debug) through a targeted phishing campaign against a single maintainer. Those packages are downloaded over 2.6 billion times per week collectively.
Verizon's 2025 Data Breach Investigations Report doubled the third-party share of breaches from 15% to 30%, the largest single-year shift in the DBIR's history. That 30% includes software supply chain compromises where organizations inherited vulnerabilities from trusted partners. The global cost of supply chain attacks reached $60 billion in 2025, with individual breaches averaging 267 days to detect and contain.
The Shai-Hulud worm, first observed in late 2025 and assigned CVE-2026-45321 with a CVSS score of 9.6, was the first known self-replicating npm malware. It spread autonomously across developer environments, compromised more than 500 packages in days, and carried valid SLSA Build Level 3 provenance attestations. Traditional verification passed. Only teams running frozen lockfiles with integrity checks were unaffected.
Every major package manager now supports frozen-lockfile installs: npm ci, pnpm install --frozen-lockfile, yarn install --immutable. Running in frozen-lockfile mode against a committed lockfile means your CI/CD pipeline installs exactly the versions you reviewed. No silent resolution to a compromised newer version.
This is not theoretical. When the Axios package was compromised at 00:21 UTC on March 31, 2026, the malicious version sat on npm for 174 minutes before being yanked. Teams using npm install pulled the compromised version automatically. Teams using npm ci against their existing lockfile never saw it. The defense existed before the attack did.
My co-founder Brian Gagne, who architects our security infrastructure, made frozen lockfiles a non-negotiable in our CI pipelines years before the 2025 wave. Not because we predicted Shai-Hulud. Because the principle is sound: do not auto-execute foreign code you have not reviewed. Every incident since has validated that decision.
A frozen lockfile prevents pulling new compromised versions. Scanning the lockfile itself catches what is already there. These are different defenses, and you need both.
Lockfile scanners cross-reference your resolved dependencies against databases like OSV.dev, which aggregates CVEs, GHSAs, and MAL advisories (the malicious package designation). A scan takes seconds and covers known vulnerabilities, known malicious packages, and typosquat detection (packages named suspiciously close to popular ones).
The free tools at kief.dev, including Vekt, scan lockfiles across 12 package ecosystems and 22 lockfile formats. Vekt checks for MAL advisories, CVE/GHSA vulnerabilities, and typosquats in under two seconds. The tooling exists. The barrier is not technology. It is habit.
Sonatype found that 95% of vulnerabilities are in transitive dependencies, not the packages you chose directly. Your package.json lists what you asked for. Your lockfile reveals what you actually got. That gap is where supply chain attacks live.
Lockfile security is not a one-time audit. It is a practice, like code review. Here is what that looks like operationally:
Commit your lockfile. This sounds obvious, but Sonatype's data shows that a meaningful percentage of projects either .gitignore their lockfile or do not generate one consistently. If it is not committed, your CI/CD cannot enforce frozen installs.
Run frozen installs in CI. Use npm ci, not npm install, in every pipeline. This fails loudly if the lockfile is out of sync, which is exactly what you want. A broken build is better than a compromised one.
Scan on every pull request. Integrate lockfile scanning into your PR workflow so new dependencies get reviewed before they merge. This is where tools like the CVE Explainer and Security Headers checker on kief.dev become part of a broader security posture, not an afterthought.
Review lockfile diffs. When your lockfile changes, someone should look at what changed and why. Large lockfile diffs after a minor dependency update are a signal worth investigating.
Enable dependency cooldowns where available. Pip 26.1 shipped dependency cooldowns that enforce a waiting period before newly published packages can be installed. Research shows a 7-day cooldown would have prevented 8 out of 10 analyzed supply chain attacks from reaching end users. pnpm has been building similar security-by-default behavior since v10.
Disable install scripts by default. Most malicious npm packages execute their payload during install via lifecycle scripts. Disabling scripts globally and allowlisting the packages that genuinely need them closes one of the most common attack vectors.
US Executive Order 14028 and the EU Cyber Resilience Act now require software bills of materials (SBOMs) for many sectors. Your lockfile is the most accurate source for generating one. Research from arXiv confirms that lockfiles faithfully record the exact versions of all installed dependencies, both direct and indirect, making them the most reliable foundation for SBOM generation compared to project files alone.
During an incident, you need to know which applications consume the compromised package, which exact versions are installed, and which environments have already ingested the malicious code. An accurate SBOM, generated from your lockfile, reduces triage from days of manual auditing to automated queries. That is the difference between a contained incident and a cascading one.
This connects directly to how we think about security architecture at Kief Studio. The lockfile is not a build artifact you generate and forget. It is a security boundary that, when maintained, feeds your compliance posture, your incident response capability, and your overall security hygiene simultaneously.
A lockfile is a file generated by your package manager (package-lock.json, Pipfile.lock, yarn.lock, pnpm-lock.yaml) that records the exact resolved version and integrity hash of every dependency in your project, including transitive ones. It matters for security because without it, your package manager silently resolves the latest matching version on every install, which may include a compromised release. Running frozen-lockfile installs (like npm ci) against a committed lockfile ensures your builds use only the versions you have previously verified.
Scan on every pull request that changes dependencies, and run a scheduled scan at least weekly against your main branch. New vulnerabilities and malicious package advisories are published daily. Sonatype identified over 454,600 new malicious packages in 2025 alone, so a scan from last month may already be outdated. Tools like Vekt on kief.dev complete a full scan across 12 ecosystems in under two seconds, making frequent scanning practical.
A frozen lockfile prevents your package manager from resolving new versions during install, protecting you from pulling a newly compromised package. Lockfile scanning analyzes the dependencies already recorded in your lockfile against vulnerability databases (CVEs, GHSAs, MAL advisories). You need both: freezing prevents new threats from entering, scanning catches threats already present in your dependency tree.
Lockfiles significantly reduce the attack surface but are not a complete defense on their own. They protect against dependency confusion, version resolution attacks, and auto-pulling compromised new releases. They do not protect against a compromised version that was legitimate when you first resolved it (like the chalk/debug incident where existing versions were backdoored). For that, you need ongoing lockfile scanning, disabled install scripts, and SBOM-based monitoring to detect when a previously-trusted package is retroactively flagged.
Your vendor's security posture is part of your security posture. When they have access to your systems, their vulnerabilities become yours.
The vendor pitch deck won't tell you what you need to know. Here's what to actually look for — from someone on the other side of the table.
Most teams treat security as a final review. We treat it as the first architectural decision. The difference shows up in audit season.
Work With Us
Kief Studio builds, protects, automates, and supports full-stack systems for businesses up to $50M ARR.
Newsletter
Strategy, psychology, AI adoption, and the patterns that actually compound. No spam, easy to leave.
Subscribe