// products

Dependency Validation

[ view markdown ]

Test known dependency vulnerabilities in your application and verify fixes on Dependabot and Renovate pull requests.

Dependency Validation adds a Superagent · Dependency Validation GitHub check to Dependabot and Renovate security pull requests. It uses the repository red-team runtime to investigate whether a known dependency vulnerability is exploitable in your application and whether the proposed update fixes the demonstrated attack. Dependabot or Renovate owns dependency resolution, branches, and pull requests.

For compatibility with existing branch protection rules, Superagent also publishes the same result under the former Superagent · Dependency Red Team check name. Repository owners can update required checks to Superagent · Dependency Validation.

Enable Dependency Validation

In repository settings, an organization owner must open Dependency scans and enable Verify vulnerable dependency updates. Set Target branches to restrict the PR's base branch, and optionally set Maximum runs per pull request. No branch selection scans all branches; an empty run limit allows unlimited runs. Enabling authorizes running application and dependency code with the repository environment; a repository YAML file or a legacy updater schedule does not grant this consent. The check is off by default. When it handles an eligible security update PR, Superagent skips the regular PR security and Supply chain scans.

Configure application setup instructions in the repository and required variables in its Environment tab. The same environment configuration is used by repository red-teaming. Supply credentials for an isolated test environment; production systems are outside the local exploit target.

What runs

  1. GitHub-authenticated Dependabot or Renovate PR activity triggers the check. Before execution, every commit introduced by the pinned update must have a verified signature attributable to the expected bot. Human commits, spoofed authors, unsigned commits and incomplete provenance withhold execution with an inconclusive result. This is rechecked before repository variables are loaded.
  2. GitHub dependency review identifies affected dependencies removed by the update, including transitive dependencies. When dependency review is unavailable, Superagent correlates native Dependabot alerts with supported dependency changes. The GitHub App needs Dependabot alerts: Read for this fallback.
  3. The repository runner checks out the exact PR base and head commits. It starts the base application with its existing dependencies and attempts to reproduce each supplied advisory through the application's actual interfaces.
  4. For a demonstrated base exploit, it repeats the reproduction against the PR head and checks that the updated application's relevant functionality still works.
  5. A fresh agent session independently verifies material claims. The result is persisted before a durable publication workflow posts the check and PR comment.

Routine version updates with no identified vulnerability do not launch red-teaming. Unresolved dependency or advisory context is reported as incomplete coverage. The agent may install the required runtime and application dependencies inside the sandbox. Application setup failures are recorded as investigation blockers.

Results

Evidence GitHub check
Base exploit confirmed; healthy update blocks the same reproduction Success — fix verified
The vulnerability remains exploitable in the update Failure — vulnerability persists
Affirmative evidence establishes that a necessary exploit condition is absent Success — non-applicability established
Missing setup, failed verification, or insufficient evidence Neutral — inconclusive

The PR comment summarizes application impact, recommended priority, and fix status. The linked report contains reproduction commands, observed results, and limitations. An unsuccessful exploit attempt does not prove that the update is unnecessary. A package-only demonstration does not establish application exploitability, and an application that fails to start does not establish a successful fix.

Results apply to the tested commits and environment. New commits supersede older runs. A closed PR or a changed base invalidates the comparison. Re-run the check from GitHub after changing application environment configuration.

Usage and migration

Private assessments retain the former dependency-update rate of 5 credits per investigation; public repository investigations are free. No investigation is started when the PR contains no identified vulnerable dependency change.

Dependency Validation replaces scheduled Secure Dependency Updates. Existing updater settings leave this check disabled until an organization owner opts in. Superagent no longer runs Dependabot itself, opens update PRs, or offers manual updater runs. Historical runs remain readable through the legacy API. The former creation endpoint returns 410 Gone; the MCP tool trigger_dependency_updates has been removed.

Routine dependency updates and other PRs retain their configured PR security and supply-chain checks. Dependency Validation handles known advisory exploitability and fix verification without running those two checks in parallel. Contributor scans remain independent.