About security alerts for vulnerable dependencies
GitHub tracks reported vulnerabilities in certain dependencies and provides security alerts to affected repositories.
In this guide
- About security vulnerabilities
- Alerts and automated security fixes for vulnerable dependencies
- Data sources for security alerts
- Configuring notifications for security alerts
About security vulnerabilities
A vulnerability is a problem in a project's code that could be exploited to damage the confidentiality, integrity, or availability of the project or other projects that use its code. Depending on the severity level and the way your project uses the dependency, vulnerabilities can cause a range of problems for your project or the people who use it. You can track and resolve vulnerabilities for certain types of dependencies in your GitHub repository.
Alerts and automated security fixes for vulnerable dependencies
When GitHub discovers or is notified of a new vulnerability, we identify public repositories (and private repositories that have opted in to vulnerability detection) that use the affected version of the dependency, send a security alert to repository maintainers, and generate an automated security fix.
Each security alert includes a severity level, a link to the affected file in your project, and a link to a pull request containing an automated security fix that resolves the vulnerability. When available, the alert will include further details about the vulnerability.
You can see all of the alerts affecting a particular project on the repository's Alerts tab or in the repository's dependency graph. For more information, see "Viewing and updating vulnerable dependencies in your repository."
We send security alerts to people with admin permissions in the affected repositories by default. GitHub never publicly discloses identified vulnerabilities for any repository. You can also enable security alerts for additional people or teams working in organization-owned repositories. For more information, see "Managing alerts for vulnerable dependencies in your organization's repositories."
Automated security fixes update vulnerable dependencies to the minimum version that resolves the vulnerability. Automated security fixes are automatically enabled in repositories that use the dependency graph and security alerts, but you can choose to disable automatic pull requests and generate security fixes manually instead. For more information, see "Configuring automated security fixes."
GitHub detects and alerts on vulnerable dependencies in public repositories by default. To receive security alerts for vulnerable dependencies in a private repository, an owner of or person with admin access to the repository must enable the dependency graph and security alerts in the repository. For more information, see "Opting into or out of data use for your private repository."
For a list of the supported languages that GitHub can detect vulnerabilities and dependencies for, see "Listing the packages that a repository depends on."
Note: GitHub's security features, such as security alerts, do not claim to catch all vulnerabilities. Though we are always trying to update our vulnerability database and alert you with our most up-to-date information, we will not be able to catch everything or alert you to known vulnerabilities within a guaranteed time frame. These features are not substitutes for human review of each dependency for potential vulnerabilities or any other issues, and we recommend consulting with a security service or conducting a thorough vulnerability review when necessary.
Data sources for security alerts
GitHub uses the following sources to track vulnerabilities in packages from supported languages:
- MITRE's Common Vulnerabilities and Exposures (CVE) List
- A combination of machine learning and human review to detect vulnerabilities in public commits on GitHub
- Maintainer security advisories on GitHub
Security alerts created from items on the CVE list will contain a link to the CVE record, where you can read more details about the vulnerability, its CVSS scores, and its qualitative severity level. The severity level is one of four possible levels defined in the Common Vulnerability Scoring System (CVSS), Section 2.1.2:
Configuring notifications for security alerts
By default, you will receive a weekly email summarizing security alerts for up to 10 of your repositories. You also can choose to receive security alerts individually by email, in a daily digest email, in your web notifications, or in the GitHub user interface. For more information, see "Choosing the delivery method for your notifications."