Skip to main content

Overview

The supply chain scanner analyzes your project’s dependency manifests for risks that could allow an attacker to inject malicious code during a build. It runs on scan repo and scan github targets.

Checks

Lockfile check

Severity: HIGH | Confidence: 85% Detects projects that declare dependencies without a lockfile. Without a lockfile, npm install or pip install can silently install different versions on each run — including versions with newly disclosed vulnerabilities. Detected for:
  • npm: missing package-lock.json or yarn.lock or pnpm-lock.yaml
  • Python: missing Pipfile.lock or poetry.lock (when Pipfile or pyproject.toml exists)

Floating version check (npm)

Severity: MEDIUM | Confidence: 75% Detects npm packages declared with floating version ranges (^, ~, *, latest). These ranges allow patch and minor updates to be pulled in automatically, which can introduce breaking changes or compromised packages.

Dependency confusion check

Severity: HIGH | Confidence: 70% Detects package names that look like internal scoped packages (@company/internal-tool) but may not be published to the public npm registry. Dependency confusion attacks trick package managers into downloading a malicious public package with the same name as an internal one. How it works: The scanner flags scoped packages (@org/name) and checks if the organization namespace could be registered publicly. It also looks for import patterns that suggest private registry use without explicit registry configuration. Remediation:

CVE check (OSV.dev)

Severity: Varies | Confidence: 90% When --check-cves is passed, ZenVeil queries the Open Source Vulnerabilities database for known CVEs in your pinned dependencies. This requires network access.
Supported ecosystems:
  • npm (package-lock.json)
  • PyPI (requirements.txt, Pipfile.lock, poetry.lock)
Example finding:

Sample output

Why supply chain security matters

The 2020 SolarWinds attack compromised 18,000 organizations by injecting malicious code into a software build pipeline. The 2021 ua-parser-js attack affected millions of projects when an attacker published a malicious version of a popular npm package. The colors and faker incidents showed how a single maintainer decision can sabotage thousands of downstream projects. Your supply chain is only as secure as your weakest dependency. ZenVeil gives you visibility before it’s a headline.