티스토리 수익 글 보기
GitHub.com
Synopsis
GitHub.com is our main web site. It is our most intricate application with a number of user inputs and access methods. GitHub.com is built on Ruby on Rails and leverages a number of Open Source technologies.
Focus areas
- Escalating from repository admin to organization admin
- Bypassing repository permissions in an organization, such as making a repository public without admin permissions
- Bypassing branch protection settings in a repository
- Collaboration features such as project boards and team discussions
- XSS caused by our markdown pipeline which takes GFM-flavored markdown and produces sanitized HTML
- Package ecosystem features such as GitHub Package Registry
- Community-and-safety features, such as bypassing privacy controls (e.g. revealing another user’s private email address)
- Importing existing Git, Subversion, Mercurial and TFS repositories with GitHub Importer
- Authorization bypasses in GitHub’s SSH components
- Server Side Request Forgery vulnerabilities allowing access to our internal network. You may use
ssrf-target.iad.github.netto test out SSRF attacks.
Ineligible submissions
- 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
.patchlinks on GitHub show the raw commit diff, similar togit-format-patch, and intentionally show the email address used by the author. The email address shown in.patchlinks is configured by the user withgit-configon their local machine. To hide email addresses from Git operations, such as.patchlinks, users can set theKeep my email address privateandBlock command line pushes that expose my emailoptions. More details are available in our About Commit Email Addresses documentation.- Phishing using Unicode homoglyphs, RTLO, or non-printable characters
We are aware of different ways that Unicode – specifically homoglyphs, RTLO, and non-printable 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 -Scommand).- 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-Securityheader, 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 ofgithubusercontent.comand 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.