Safeguard
Supply Chain•

What does registry proxy scanning catch that CI scanning misses?

A registry proxy decides before a package is downloaded, so it covers laptops, install scripts and unmanaged machines that CI scanning never sees.

Safeguard Security Team
Updated 4 min read

A registry proxy catches the moment of download. CI scanning runs after a package has been resolved and often installed. The proxy therefore covers developer laptops, ad hoc installs, and install time code execution on any machine that points at it, none of which a pipeline scan can see.

Definition

A registry proxy is a service that sits between clients (developers, build runners, containers) and a public package registry. Clients ask the proxy for packages. The proxy fetches, caches and can apply rules before it hands anything back. Those rules can include blocking known malicious packages, blocking versions with serious advisories, or holding very new releases.

What CI scanning cannot see

CI scanning reads a manifest or lock file and compares it against vulnerability data. That is useful, but it has built-in limits.

  • It runs after the install. In a typical pipeline, the install step comes first and the scan second, or the scan reads files while the install has already happened.
  • It only covers the pipeline. A developer who runs an install on a laptop, tries a package in a scratch folder, or follows a tutorial is outside the pipeline.
  • It leans on known data. A package that is malicious but not yet in any advisory database passes a vulnerability scan.

npm documents that scripts in a package can run during install, and that a config option can stop npm running scripts specified in package.json files. pip's documentation says that by default it involves running arbitrary code from distributions and does no check against remote tampering unless you enable hash checking. Both point to the same fact: the install itself is an execution point.

What a proxy adds

QuestionCI scanRegistry proxy
Is this package blocked before it reaches the machine?NoYes
Does it cover laptops and scratch projects?NoIf they use the proxy
Can it hold back brand new releases?Only by policy in CIYes, centrally
Does it show one inventory of what was fetched?Per pipelineAcross all clients
Does it know how your code uses the package?Yes, with the right toolNo

The last row matters. A proxy sees requests, not your code. It cannot tell whether a vulnerable function is reachable. Pair it with analysis in CI or on the pull request.

What a proxy costs

  • Someone has to run it and keep it available. If it goes down, installs stop.
  • Developers need a configured client. Without that, they can bypass it.
  • Rules need an exception path, or people will route around it. See what to do when the proxy blocks a package.

A practical combination

  1. Proxy for download time decisions: malicious packages, severe advisories, very new releases.
  2. Pull request check for what is changing now.
  3. Build scan of the full resolved tree with the result stored.
  4. Scheduled re-scan for advisories published after release.

For a worked example of the cooldown idea, see minimum release age policies for new package versions.

Where Safeguard fits

Safeguard handles the analysis stages described here: dependency scanning, SBOM generation, reachability analysis and gates that can block a pull request. Try the free scan at gold.safeguard.sh/scan to see your current dependency picture.

Quick check

Does a proxy replace a vulnerability scan?

No. It controls what gets fetched. You still need scanning of the resolved tree and re-scans over time.

What if developers bypass the proxy?

Set the registry in a committed project config and block direct registry access from build runners. Without that, the proxy is a suggestion.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.