About managing vulnerable dependencies

GitHub helps you to avoid using third-party software that contains known vulnerabilities.

GitHub provides the following tools for removing and avoiding vulnerable dependencies.

Dependency graph

The dependency graph is a summary of the manifest and lock files stored in a repository. It shows you the ecosystems and packages your codebase depends on (its dependencies) and the repositories and packages that depend on your project (its dependents). The information in the dependency graph is used by dependency review and Dependabot. For more information, see "About the dependency graph."

Dependency review

By checking the dependency reviews on pull requests you can avoid introducing vulnerabilities from dependencies into your codebase. If the pull requests adds a vulnerable dependency, or changes a dependency to a vulnerable version, this is highlighted in the dependency review. You can change the dependency to a patched version before merging the pull request. For more information, see "About dependency review."

Dependabot alerts

GitHub can create Dependabot alerts when it detects vulnerable dependencies in your repository. The alert is displayed on the Security tab for the repository. The alert includes a link to the affected file in the project, and information about a fixed version. GitHub also notifies the maintainers of the repository, according to their notification preferences. For more information, see "About alerts for vulnerable dependencies."

Dependabot security updates

When GitHub generates a Dependabot alert for a vulnerable dependency in your repository, Dependabot can automatically try to fix it for you. Dependabot security updates are automatically generated pull requests that update a vulnerable dependency to a fixed version. For more information, see "About Dependabot security updates."

Dependabot version updates

Enabling Dependabot version updates takes the effort out of maintaining your dependencies. With Dependabot version updates, whenever GitHub identifies an outdated dependency, it raises a pull request to update the manifest to the latest version of the dependency. By contrast, Dependabot security updates only raises pull requests to fix vulnerable dependencies. For more information, see "About Dependabot version updates."

Did this doc help you?

Privacy policy

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Make a contribution

Or, learn how to contribute.