Ineligible submissions

There are a handful of reports that we consider ineligible, either because the feature is working as intended or we accept the low risk as a security/usability tradeoff:

All Targets GitHub.com GitHub Actions GitHub Pages GitHub Gist GitHub Enterprise Server Dependabot GitHub for mobile LGTM *.githubapp.com *.github.net GitHub Credentials

All Targets

 
OAuth client ID and secrets are publicly available in desktop and mobile apps

It is expected that the GitHub-owned clients, such as GitHub for mobile and GitHub CLI, include both the OAuth client ID and OAuth secret. GitHub for mobile uses Universal/Deep links (github://) which helps reduce the risk of any issue presented here by binding the OAuth callback directly to the GitHub mobile application.

 
Use of known-vulnerable software

GitHub has a dedicated team responsible for tracking and remediating the use of known-vulnerable software. Submissions related to GitHub services using known-vulnerable software are only eligible 30 days after public disclosure of a vulnerability. In addition, any submissions related to using known-vulnerable software must show evidence of exploitability. Simply demonstrating that GitHub is running a known vulnerable version is not sufficient, the submission must demonstrate an actual impact of exploitation like disclosing private data.

 
Vulnerability in upstream dependencies

Vulnerabilities that are due to a vulnerability in an upstream dependency are out of scope and should instead be disclosed to the upstream maintainers. We may make exceptions for vulnerabilities that have a substantial impact to our production environment and customer data, however, issues should still be directed to the maintainers of the dependency upstream first.

 
Clickjacking a static site

Several GitHub owned sites are created using a static site generator and hosted on GitHub Pages. These applications do not contain any sensitive user information or authenticated sessions. As a result, this does not present a security risk.

GitHub.com

 
Including HTML in Markdown content

Many areas of GitHub allow content formatted in GitHub Flavored Markdown. It is intended that these Markdown fields allow a limited subset of HTML, such as <b>, <sup> and <details>. HTML included by users in Markdown fields is filtered for malicious input such as <script>, so this does not present a security risk.

 
Leaking email addresses via .patch links

.patch links on GitHub show the raw commit diff, similar to git-format-patch, and intentionally show the email address used by the author. The email address shown in .patch links is configured by the user with git-config on their local machine. To hide email addresses from Git operations, such as .patch links, users can set the Keep my email address private and Block command line pushes that expose my email options. More details are available in our About Commit Email Addresses documentation.

 
Phishing using Unicode homoglyphs or RTLO characters

We are aware of different ways that Unicode - specifically homoglyphs and RTLO characters - can be used to display misleading information to other GitHub users. We consider these low-risk and ineligible for a reward. If you have noticed someone using GitHub for phishing, please let us know.

 
Email verification policy

Any email address that is not already associated with an account on GitHub may be claimed and this will give commit attribution to the claiming user. While we allow this attribution without requiring email address verification, any disputes around emails on accounts can be resolved by contacting our support team.

 
Impersonating a user through git email address

Because Git is a distributed version control system, GitHub must use the commit email address to assign attribution. When you push a repository to GitHub.com it may contain one or more commits, some of which you may not have authored. For example, imagine a scenario where you collaborated with a number of people on a git repository before you made your first push of that repository to GitHub.com. This push would contain a number of commits from several authors. It would be incorrect to assign all of the commits to the person doing the push, so we use the commit log email addresses to assign attribution on GitHub.com. Each subsequent push to GitHub uses this same logic to assign attribution of commit authors.

It’s important to note that impersonating another GitHub user in this fashion doesn’t grant you access to any of their repositories or give you any privileges you didn’t already have. However, GitHub does consider impersonation an account abuse issue that we take very seriously. If someone is wrongfully impersonating you, please let us know and we will investigate the matter and deal with it as quickly as we can. In addition, if you are still concerned about this, you and your team can choose to use Git’s built in options to sign commits with a GPG key (check out the git commit -S command).

 
DMARC, SPF and DKIM email policy

Our DMARC, SPF and DKIM settings are tuned to balance security against email deliverability concerns. We continue to evaluate our setup and may make this functionality more strict in the future.

 
Bypassing country restrictions for SMS two-factor authentication

The restriction on which countries are able to configure SMS two-factor authentication is based on SMS delivery reliability. We have removed countries we found to have low delivery success rates to prevent account lockout. Our validation is client-side and bypassing this validation does not present a security risk. Users in countries where SMS is unavailable can use an alternative two-factor authentication method

 
Vulnerabilities in repositories hosted on GitHub

GitHub users are responsible for the content hosted in their repositories. Any vulnerabilities in user content do not affect the security of GitHub.com or its users. We recommend that you report these vulnerabilities directly to the owner of the repository.

 
Host header injection

Host header injection reports are ineligible unless it can be shown to cause a specific security issue. We set the Strict-Transport-Security header, use HTTP public key pinning, and are in the browser preload lists which prevent active network attacks that may attempt to inject the header.

 
Timing attacks which reveal a private repository or user

There are architectural nuances that prevent us from systematically preventing timing attacks from determining if a specific repository exists, or if a specific user is part of a secret team, and are therefore ineligible.

 
2FA does not invalidate existing sessions

Enabling 2FA does not imply that an account may have been compromised, and as a result, we do not reset all existing sessions. If a user changes/resets their password GitHub will reset all existing sessions.

 
Enabling 2FA without a verified email

Enabling 2FA without a verified email is allowed. While this could prevent someone from using that email address, we consider this a spam and abuse issue.

 
Vulnerabilities caused by out-dated browsers

Vulnerabilities that don’t affect the latest version of modern browsers, such as Chrome, Firefox, Edge and Safari, are ineligible. Vulnerabilities caused by browser extensions are also ineligible.

 
Camo image proxy

Our “Camo” system is used to proxy images included in Markdown fields via githubusercontent.com. We rely on the isolation of githubusercontent.com and the fact that we don’t send any cookies to that domain. These images are untrusted and we intentionally do not attempt to modify or filter the response. Additionally, we deploy our image proxy on its own network segment to prevent it from making requests to internal IP addresses. We don’t consider the ability to make requests to external services a security risk, as an attacker can perform this in many other ways without using GitHub’s image proxy.

 
Lack of Sudo mode

We use Sudo mode to ensure legitimate users are taking certain high risk actions. If we have not included sudo mode on an endpoint, we have likely accepted its risk and most submissions will be ineligible.

 
Community and safety bypases that do not affect privacy

GitHub employs a number of community and safety features. In most cases, bypasses of these features via some edge case will not result in a bounty reward unless there is a privacy (confidentiality) breach. For example, bypassing the 24 hour interaction limit at 23 hours and 10 minutes will be ineligible. However, if you are able to bypass controls and reveal another user’s private email address, that would be eligible.

 
Activity in archived repos

Submissions related to archived repos that do not demonstrate the ability to change the actual content in the repo (e.g. adding/removing collaborators, modifying some repo settings) will be ineligible. The same for submissions that do not demonstrate the ability to change ownership or the actual archived status.

 
Accessing certain disabled functionality

Some features may be disabled on GitHub in the UI and that ability (to disable) is more of a convenience than a hard security boundary. Projects and wikis are two examples of this. Accessing those disabled features through the API or some other technique are not eligible for a bounty reward.

 
Lack of rate limiting

As stated elsewhere, submissions around volumetric DoS attacks are not in the scope of our bounty program. Submissions citing lack of rate limiting will be treated similarly. We generally consider such activity spammy or abusive behavior, and have a dedicated team for addressing such issues.

GitHub Actions

 
Bypassing build log secret redaction

To prevent accidental disclosure of secrets, GitHub Actions includes a mechanism to sanitize any encrypted secrets that appear in build logs. Our mechanism attempts to match any secrets in common encodings, such as plaintext, base64, etc. It is not designed to prevent users intentionally disclosing secrets in non-standard encodings and is therefore ineligible for reward.

 
General abuse or exhaustion of resources

Intentionally misusing CPU, memory or network limits of GitHub Actions is a known issue. We take abuse and spam seriously and have a dedicated team that tracks spammy users. Therefore, this is ineligible for reward.

 
Availability of resources inside a workflow run

A GitHub Actions build will intentionally have access to many resources including, but not limited to:

  • a metadata service available at https://169.254.169.254
  • a job token used to report status back to GitHub.com
  • privileged access to the host VM

Access to these resources is expected and not eligible for a reward. However, if these primitives can be abused to access resources of other repositories or users then this would be eligible for reward.

 
Access to build artifacts without user session

Downloading build artifacts requires read access to a repository. When a user with read access clicks the download button, they will be given a link containing a signed token that is no longer tied to the user session. This is expected behavior and ineligible for reward.

GitHub Pages

 
Vulnerabilities in GitHub Pages hosted content

GitHub users are responsible for the content hosted on GitHub Pages sites. Any vulnerabilities in user content do not affect the security of GitHub.com or its users. We recommend that you report this issue to the owner of this GitHub Pages site.

GitHub Gist

 
Secret gists are accessible via URL without authentication

If you share the URL of a secret gist, anyone with access to the URL will be able to see it without authentication. This is an intentional feature.

GitHub Enterprise Server

 
Vulnerabilities caused by lack of subdomain isolation

Vulnerabilities present in GitHub Enterprise Server when subdomain isolation is disabled. GitHub recommends that all GitHub Enterprise Server installations should have subdomain isolation enabled.

 
Escalation to the root user via sudo

Administrative SSH access grants sudo to be used to escalate to root permissions. Given this existing level of privilege, local escalation of the administrative account to root permissions is not considered in scope.

 
Bypassing source code de-obfuscation

GitHub Enterprise Server uses code obfuscation to discourage the modification of the application. We are aware of de-obfuscation techniques that could be used to reveal source code or bypass license restrictions.

Dependabot

 
Arbitrary code execution in dependency update jobs

The dependency update jobs are designed to execute arbitrary code. Update jobs run in a sandbox designed to execute untrusted code and prevent access to private networked resources or other users’ data. Escaping the sandbox to access private networked resources or other user’s data is a vulnerability and eligible for reward.

GitHub for mobile

 
On-screen data is not hidden when backgrounding the app

The GitHub for mobile apps do not clear on-screen data when they are backgrounded. This is by design and does not present a security risk.

 
No jailbreak detection

The GitHub for mobile apps do not attempt to detect jailbreaked devices. This is by design and does not present a security risk.

LGTM

 
Code execution in the LGTM worker sandbox

The LGTM worker sandbox is designed to execute arbitrary code. The sandbox is designed to execute untrusted code and prevent access to private networked resources or other users’ data. Escaping the sandbox to access private networked resources or other user’s data is a vulnerability and eligible for reward.

 
Exfiltrating Semmle command line tools

Vulnerabilities which allow attackers to exfiltrate the Semmle command line tools are ineligible for rewards. This includes tools used to analyze source code and any other files that are intentionally made available to builds.

 
Denial of service and resource exhaustion

Denial of service attacks which involve exhaustion of resources, such as adding a large number of projects, adding a project with a large number of commits or running a large number of queries are ineligible for rewards. Vulnerabilities allowing LGTM to send large numbers of emails are also ineligible.

 
Email address enumeration

Vulnerabilities which allow attackers to enumerate email address are ineligible for rewards.

 
Lack of security-relevant emails

Lack of emails being sent out when a security-relevant event, such a password reset, occurs is ineligible for rewards.

*.githubapp.com

 
Vulnerabilities in out-of-scope subdomains

Not all subdomains are in-scope for rewards at this time and are therefore ineligible for rewards. A list of out-of-scope subdomains is available in our scope section.

*.github.net

 
Vulnerabilities in out-of-scope subdomains

Not all subdomains are in-scope for rewards at this time and are therefore ineligible for rewards. A list of out-of-scope subdomains is available in our scope section.

GitHub Credentials

 
Credentials which have been detected by GitHub's Token Scanning feature

GitHub’s Token Scanning feature automatically detects credentials accidentally committed to repositories for a number of service providers. Credentials for GitHub, Inc resources that have already been found via this feature are ineligible for reward.