- Top reward
- $6,000
- Top severity paid
- High
- Assets in scope
- 9
- Public CVEs
- 68
- Last change
- No changes yet
At a glance
What to know before you start testing.
- Pays up to $6,000
- for high bugs, from $313.
- Report on Sorona
- Submit through the program page.
- Partial safe harbor
- Some legal protection; read the terms.
- Replies within 4 days
- As the policy promises.
- Payment
- Proof of identity needed to get paid.
- Public disclosure allowed
- You may publish your report.
Rewards
What Sorona lists as the payout for each severity.
| Severity | Relative size | Reward |
|---|---|---|
| High |
|
$6,000 |
| Medium |
|
$2,500 |
| Low |
|
$313 |
- Response
-
Within 4 days
~4 days First response
- Safe harbor
-
Partial
Sorona will not pursue legal action against you for good-faith research submitted to us in line with this policy. We cannot speak for the upstream project, its vendor, or any third party, and we do not grant authorization on their behalf.
Summarised with AI from the program policy on Sorona, read 12 Nov 2026, and checked word for word against it. Read the original
Scope
9 assets you may test, 6 excluded.
Web 1
- https://git-scm.com
Products and areas 8
- Credential helpers and URL parsing, the machinery that decides which host a stored token gets handed to
- Everything git does with a repository nobody vetted: the fetch transport, the object store it writes into, and the checkout that lands files on disk
- File disclosure as well as code execution: the Pages scope line accepts reading arbitrary files during the build where that discloses sensitive information
- Pack and index handling: delta chains, .idx and .pack bounds checks, and the memory-safety surface beneath them
- Path handling on case-insensitive and Unicode-normalising filesystems such as NTFS and APFS, where two distinct names collapse into one
- Protocol v2 and the rest of the wire protocol the fetch path speaks to a server it does not control
- Repository-controlled configuration that a clone carries in with it, including .gitmodules and submodule URLs, .gitattributes with its clean, smudge and filter machinery, and anything dropped inside .git
- The declaration is GitHub's, since the Git project pays nothing itself: the GitHub Pages asset lists vulnerabilities in the command-line Git tools when cloning or checking out repositories as an eligible submission, and the GitHub Desktop asset lists code execution without user interaction when cloning or fetching a malicious repository. Both assets are bounty-eligible at critical severity
Out of scope (6)
- Anything that requires the victim to run a non-default configuration that GitHub does not use
- Awards are gated on sanctions screening, so a reporter who cannot clear it will not be paid
- Bugs in third-party Jekyll plugins rather than in git itself or in GitHub's build pipeline
- Denial of service against GitHub's build infrastructure by volume rather than by defect
- Git bugs with no demonstrated route to code execution or file disclosure through a GitHub asset, however real the bug is upstream
- Individual GitHub Pages sites under *.github.io, which the program places explicitly out of scope
Rules
What the policy asks of you, and the bug types it won't reward, quoted from Sorona's policy.
While testing
-
Submit through sorona.xyz first.
-
The Git project pays nothing itself, so a finding is only payable once it is demonstrated through a GitHub asset
-
The bug has to work on a configuration GitHub actually runs; anything that needs a non-default setting GitHub does not use will not be paid
-
Keep every detail of the report on HackerOne while it is open rather than posting it elsewhere
Not accepted
-
Git bugs with no demonstrated route to code execution or file disclosure through a GitHub asset, however real the bug is upstream
-
Anything that requires the victim to run a non-default configuration that GitHub does not use
-
Denial of service against GitHub's build infrastructure by volume rather than by defect
-
Bugs in third-party Jekyll plugins rather than in git itself or in GitHub's build pipeline
-
A git CVE reported in the abstract, with no demonstrated path through a GitHub asset, is not a bounty-eligible submission
Summarised with AI from the program policy on Sorona, read 12 Nov 2026, and checked word for word against it. Read the original
Changes
Tracked since 11 Nov 2026. Last checked 1 hour ago.
No changes yet. When the rewards or scope move, you will see it here and in the RSS feed.
Public CVEs
Published vulnerabilities in this vendor's products, from the NVD.
| CVE | Summary | Severity | Published |
|---|---|---|---|
| CVE-2025-48384 | Git is a fast, scalable, distributed revision control system with an unusually rich command set that provides both high-level operations and full access to internals. When reading a config value, Git strips any trailing carriage return and line feed (CRLF). When writing a config entry, values with a trailing CR are not quoted, causing the CR to be lost when the config is later read. When initializ | High 8.0 | 8 Jul 2025 |
| CVE-2024-32465 | Git is a revision control system. The Git project recommends to avoid working in untrusted repositories, and instead to clone it first with `git clone --no-local` to obtain a clean copy. Git has specific protections to make that a safe operation even with an untrusted source repository, but vulnerabilities allow those protections to be bypassed. In the context of cloning local repositories owned b | High 7.3 | 14 May 2024 |
| CVE-2024-32021 | Git is a revision control system. Prior to versions 2.45.1, 2.44.1, 2.43.4, 2.42.2, 2.41.1, 2.40.2, and 2.39.4, when cloning a local source repository that contains symlinks via the filesystem, Git may create hardlinks to arbitrary user-readable files on the same filesystem as the target repository in the `objects/` directory. Cloning a local repository over the filesystem may creating hardlinks t | Low 3.9 | 14 May 2024 |
| CVE-2024-32020 | Git is a revision control system. Prior to versions 2.45.1, 2.44.1, 2.43.4, 2.42.2, 2.41.1, 2.40.2, and 2.39.4, local clones may end up hardlinking files into the target repository's object database when source and target repository reside on the same disk. If the source repository is owned by a different user, then those hardlinked files may be rewritten at any point in time by the untrusted user | Low 3.9 | 14 May 2024 |
| CVE-2024-32004 | Git is a revision control system. Prior to versions 2.45.1, 2.44.1, 2.43.4, 2.42.2, 2.41.1, 2.40.2, and 2.39.4, an attacker can prepare a local repository in such a way that, when cloned, will execute arbitrary code during the operation. The problem has been patched in versions 2.45.1, 2.44.1, 2.43.4, 2.42.2, 2.41.1, 2.40.2, and 2.39.4. As a workaround, avoid cloning repositories from untrusted so | High 8.1 | 14 May 2024 |
| CVE-2023-29007 | Git is a revision control system. Prior to versions 2.30.9, 2.31.8, 2.32.7, 2.33.8, 2.34.8, 2.35.8, 2.36.6, 2.37.7, 2.38.5, 2.39.3, and 2.40.1, a specially crafted `.gitmodules` file with submodule URLs that are longer than 1024 characters can used to exploit a bug in `config.c::git_config_copy_or_rename_section_in_file()`. This bug can be used to inject arbitrary configuration into a user's `$GIT | High 7.0 | 25 Apr 2023 |
| CVE-2023-25652 | Git is a revision control system. Prior to versions 2.30.9, 2.31.8, 2.32.7, 2.33.8, 2.34.8, 2.35.8, 2.36.6, 2.37.7, 2.38.5, 2.39.3, and 2.40.1, by feeding specially crafted input to `git apply --reject`, a path outside the working tree can be overwritten with partially controlled contents (corresponding to the rejected hunk(s) from the given patch). A fix is available in versions 2.30.9, 2.31.8, 2 | High 7.5 | 25 Apr 2023 |
| CVE-2023-22490 | Git is a revision control system. Using a specially-crafted repository, Git prior to versions 2.39.2, 2.38.4, 2.37.6, 2.36.5, 2.35.7, 2.34.7, 2.33.7, 2.32.6, 2.31.7, and 2.30.8 can be tricked into using its local clone optimization even when using a non-local transport. Though Git will abort local clones whose source `$GIT_DIR/objects` directory contains symbolic links, the `objects` directory its | Medium 5.5 | 14 Feb 2023 |
| CVE-2023-23946 | Git, a revision control system, is vulnerable to path traversal prior to versions 2.39.2, 2.38.4, 2.37.6, 2.36.5, 2.35.7, 2.34.7, 2.33.7, 2.32.6, 2.31.7, and 2.30.8. By feeding a crafted input to `git apply`, a path outside the working tree can be overwritten as the user who is running `git apply`. A fix has been prepared and will appear in v2.39.2, v2.38.4, v2.37.6, v2.36.5, v2.35.7, v2.34.7, v2. | Medium 6.2 | 14 Feb 2023 |
| CVE-2022-23521 | Git is distributed revision control system. gitattributes are a mechanism to allow defining attributes for paths. These attributes can be defined by adding a `.gitattributes` file to the repository, which contains a set of file patterns and the attributes that should be set for paths matching this pattern. When parsing gitattributes, multiple integer overflows can occur when there is a huge number | Critical 9.8 | 17 Jan 2023 |
| CVE-2022-41903 | Git is distributed revision control system. `git log` can display commits in an arbitrary format using its `--format` specifiers. This functionality is also exposed to `git archive` via the `export-subst` gitattribute. When processing the padding operators, there is a integer overflow in `pretty.c::format_and_pad_commit()` where a `size_t` is stored improperly as an `int`, and then added as an off | Critical 9.8 | 17 Jan 2023 |
| CVE-2022-41953 | Git GUI is a convenient graphical tool that comes with Git for Windows. Its target audience is users who are uncomfortable with using Git on the command-line. Git GUI has a function to clone repositories. Immediately after the local clone is available, Git GUI will automatically post-process it, among other things running a spell checker called `aspell.exe` if it was found. Git GUI is implemented | High 8.6 | 17 Jan 2023 |
| CVE-2022-39260 | Git is an open source, scalable, distributed revision control system. `git shell` is a restricted login shell that can be used to implement Git's push/pull functionality via SSH. In versions prior to 2.30.6, 2.31.5, 2.32.4, 2.33.5, 2.34.5, 2.35.5, 2.36.3, and 2.37.4, the function that splits the command arguments into an array improperly uses an `int` to represent the number of entries in the arra | High 8.5 | 19 Oct 2022 |
| CVE-2022-39253 | Git is an open source, scalable, distributed revision control system. Versions prior to 2.30.6, 2.31.5, 2.32.4, 2.33.5, 2.34.5, 2.35.5, 2.36.3, and 2.37.4 are subject to exposure of sensitive information to a malicious actor. When performing a local clone (where the source and target of the clone are on the same volume), Git copies the contents of the source's `$GIT_DIR/objects` directory into the | Medium 5.5 | 19 Oct 2022 |
| CVE-2022-29187 | Git is a distributed revision control system. Git prior to versions 2.37.1, 2.36.2, 2.35.4, 2.34.4, 2.33.4, 2.32.3, 2.31.4, and 2.30.5, is vulnerable to privilege escalation in all platforms. An unsuspecting user could still be affected by the issue reported in CVE-2022-24765, for example when navigating as root into a shared tmp directory that is owned by them, but where an attacker could create | High 7.8 | 12 Jul 2022 |
| CVE-2022-24765 | Git for Windows is a fork of Git containing Windows-specific patches. This vulnerability affects users working on multi-user machines, where untrusted parties have write access to the same hard disk. Those untrusted parties could create the folder `C:\.git`, which would be picked up by Git operations run supposedly outside a repository while searching for a Git directory. Git would then respect an | Medium 6.0 | 12 Apr 2022 |
| CVE-2022-24975 | The --mirror documentation for Git through 2.35.1 does not mention the availability of deleted content, aka the "GitBleed" issue. This could present a security risk if information-disclosure auditing processes rely on a clone operation without the --mirror option. Note: This has been disputed by multiple 3rd parties who believe this is an intended feature of the git binary and does not pose a secu | High 7.5 | 11 Feb 2022 |
| CVE-2021-40330 | git_connect_git in connect.c in Git before 2.30.1 allows a repository path to contain a newline character, which may result in unexpected cross-protocol requests, as demonstrated by the git://localhost:1234/%0d%0a%0d%0aGET%20/%20HTTP/1.1 substring. | High 7.5 | 31 Aug 2021 |
| CVE-2021-21300 | Git is an open-source distributed revision control system. In affected versions of Git a specially crafted repository that contains symbolic links as well as files using a clean/smudge filter such as Git LFS, may cause just-checked out script to be executed while cloning onto a case-insensitive file system such as NTFS, HFS+ or APFS (i.e. the default file systems on Windows and macOS). Note that c | High 8.0 | 9 Mar 2021 |
| CVE-2020-11008 | Affected versions of Git have a vulnerability whereby Git can be tricked into sending private credentials to a host controlled by an attacker. This bug is similar to CVE-2020-5260(GHSA-qm7j-c969-7j4q). The fix for that bug still left the door open for an exploit where _some_ credential is leaked (but the attacker cannot control which one). Git uses external "credential helper" programs to store an | Medium 4.0 | 21 Apr 2020 |
| CVE-2020-5260 | Affected versions of Git have a vulnerability whereby Git can be tricked into sending private credentials to a host controlled by an attacker. Git uses external "credential helper" programs to store and retrieve passwords or other credentials from secure storage provided by the operating system. Specially-crafted URLs that contain an encoded newline can inject unintended values into the credential | Critical 9.3 | 14 Apr 2020 |
| CVE-2014-9390 | Git before 1.8.5.6, 1.9.x before 1.9.5, 2.0.x before 2.0.5, 2.1.x before 2.1.4, and 2.2.x before 2.2.1 on Windows and OS X; Mercurial before 3.2.3 on Windows and OS X; Apple Xcode before 6.2 beta 3; mine all versions before 08-12-2014; libgit2 all versions up to 0.21.2; Egit all versions before 08-12-2014; and JGit all versions before 08-12-2014 allow remote Git servers to execute arbitrary comman | Critical 9.8 | 12 Feb 2020 |
| CVE-2019-1348 | An issue was found in Git before v2.24.1, v2.23.1, v2.22.2, v2.21.1, v2.20.2, v2.19.3, v2.18.2, v2.17.3, v2.16.6, v2.15.4, and v2.14.6. The --export-marks option of git fast-import is exposed also via the in-stream command feature export-marks=... and it allows overwriting arbitrary paths. | Low 3.3 | 24 Jan 2020 |
| CVE-2019-1353 | An issue was found in Git before v2.24.1, v2.23.1, v2.22.2, v2.21.1, v2.20.2, v2.19.3, v2.18.2, v2.17.3, v2.16.6, v2.15.4, and v2.14.6. When running Git in the Windows Subsystem for Linux (also known as "WSL") while accessing a working directory on a regular Windows drive, none of the NTFS protections were active. | Critical 9.8 | 24 Jan 2020 |
| CVE-2019-1387 | An issue was found in Git before v2.24.1, v2.23.1, v2.22.2, v2.21.1, v2.20.2, v2.19.3, v2.18.2, v2.17.3, v2.16.6, v2.15.4, and v2.14.6. Recursive clones are currently affected by a vulnerability that is caused by too-lax validation of submodule names, allowing very targeted attacks via remote code execution in recursive clones. | High 8.8 | 18 Dec 2019 |
| CVE-2019-19604 | Arbitrary command execution is possible in Git before 2.20.2, 2.21.x before 2.21.1, 2.22.x before 2.22.2, 2.23.x before 2.23.1, and 2.24.x before 2.24.1 because a "git submodule update" operation can run commands found in the .gitmodules file of a malicious repository. | High 7.8 | 11 Dec 2019 |
| CVE-2018-19486 | Git before 2.19.2 on Linux and UNIX executes commands from the current working directory (as if '.' were at the end of $PATH) in certain cases involving the run_command() API and run-command.c, because there was a dangerous change from execvp to execv during 2017. | Critical 9.8 | 23 Nov 2018 |
| CVE-2018-17456 | Git before 2.14.5, 2.15.x before 2.15.3, 2.16.x before 2.16.5, 2.17.x before 2.17.2, 2.18.x before 2.18.1, and 2.19.x before 2.19.1 allows remote code execution during processing of a recursive "git clone" of a superproject if a .gitmodules file has a URL field beginning with a '-' character. | Critical 9.8 | 6 Oct 2018 |
| CVE-2018-11233 | In Git before 2.13.7, 2.14.x before 2.14.4, 2.15.x before 2.15.2, 2.16.x before 2.16.4, and 2.17.x before 2.17.1, code to sanity-check pathnames on NTFS can result in reading out-of-bounds memory. | High 7.5 | 30 May 2018 |
| CVE-2018-11235 | In Git before 2.13.7, 2.14.x before 2.14.4, 2.15.x before 2.15.2, 2.16.x before 2.16.4, and 2.17.x before 2.17.1, remote code execution can occur. With a crafted .gitmodules file, a malicious project can execute an arbitrary script on a machine that runs "git clone --recurse-submodules" because submodule "names" are obtained from this file, and then appended to $GIT_DIR/modules, leading to directo | High 7.8 | 30 May 2018 |
| CVE-2018-1000021 | GIT version 2.15.1 and earlier contains a Input Validation Error vulnerability in Client that can result in problems including messing up terminal configuration to RCE. This attack appear to be exploitable via The user must interact with a malicious git server, (or have their traffic modified in a MITM attack). | Medium 5.0 | 9 Feb 2018 |
| CVE-2017-15298 | Git through 2.14.2 mishandles layers of tree objects, which allows remote attackers to cause a denial of service (memory consumption) via a crafted repository, aka a Git bomb. This can also have an impact of disk consumption; however, an affected process typically would not survive its attempt to build the data structure in memory before writing to disk. | Medium 5.5 | 14 Oct 2017 |
| CVE-2017-1000117 | A malicious third-party can give a crafted "ssh://..." URL to an unsuspecting victim, and an attempt to visit the URL can result in any program that exists on the victim's machine being executed. Such a URL could be placed in the .gitmodules file of a malicious project, and an unsuspecting victim could be tricked into running "git clone --recurse-submodules" to trigger the vulnerability. | High 8.8 | 5 Oct 2017 |
| CVE-2017-14867 | Git before 2.10.5, 2.11.x before 2.11.4, 2.12.x before 2.12.5, 2.13.x before 2.13.6, and 2.14.x before 2.14.2 uses unsafe Perl scripts to support subcommands such as cvsserver, which allows attackers to execute arbitrary OS commands via shell metacharacters in a module name. The vulnerable code is reachable via git-shell even without CVS support. | High 8.8 | 29 Sep 2017 |
| CVE-2014-9938 | contrib/completion/git-prompt.sh in Git before 1.9.3 does not sanitize branch names in the PS1 variable, allowing a malicious repository to cause code execution. | High 8.8 | 20 Mar 2017 |
| CVE-2016-2324 | Integer overflow in Git before 2.7.4 allows remote attackers to execute arbitrary code via a (1) long filename or (2) many nested trees, which triggers a heap-based buffer overflow. | Critical 9.8 | 8 Apr 2016 |
| CVE-2016-2315 | revision.c in git before 2.7.4 uses an incorrect integer data type, which allows remote attackers to execute arbitrary code via a (1) long filename or (2) many nested trees, leading to a heap-based buffer overflow. | Critical 9.8 | 8 Apr 2016 |
| CVE-2013-0308 | The imap-send command in GIT before 1.8.1.4 does not verify that the server hostname matches a domain name in the subject's Common Name (CN) or subjectAltName field of the X.509 certificate, which allows man-in-the-middle attackers to spoof SSL servers via an arbitrary valid certificate. | Medium 4.3 | 8 Mar 2013 |
| CVE-2010-3906 | Cross-site scripting (XSS) vulnerability in Gitweb 1.7.3.3 and earlier allows remote attackers to inject arbitrary web script or HTML via the (1) f and (2) fp parameters. | Medium 4.3 | 17 Dec 2010 |
| CVE-2010-2542 | Stack-based buffer overflow in the is_git_directory function in setup.c in Git before 1.7.2.1 allows local users to gain privileges via a long gitdir: field in a .git file in a working copy. | High 7.5 | 11 Aug 2010 |
| CVE-2008-5516 | The web interface in git (gitweb) 1.5.x before 1.5.5 allows remote attackers to execute arbitrary commands via shell metacharacters related to git_search. | High 7.5 | 20 Jan 2009 |
Original policy
Copied from sorona.xyz on 12 Nov 2026. The summaries on this page are made from it; the live page may have changed since.
Skip to content What this pays sorona.xyz pays 1.25× the program's reward, up to +$1,000 per finding, plus a complexity bonus of up to $1,000 for especially complex or well-chained bugs. Finding │ Program pays │ Through sorona.xyz Critical (through GitHub Pages or GitHub Desktop) │ $10,000 │ $11,000 High │ $5,000 │ $6,000 Medium │ $2,000 │ $2,500 Low │ $250 │ $313 Submit a vulnerability CVE history 3 Last 12 months 68 Lifetime Code execution 40 % Memory safety 25 % Parsing/validation 20 % Info disclosure 10 % Latest advisories Loading the feed Overview Git is the substrate of the entire industry: every forge, every CI system and every developer laptop runs it, and it is the one program in the toolchain that parses fully attacker-controlled input by design, because a repository is a hostile data structure that git is asked to unpack, walk and check out. It is also the classic everyone-depends-on-it, nobody-funds-it case: the Git project has no vendor, no security budget and no bounty, and its own security list pays nothing. GitHub is the exception: it names git-tool defects as eligible submissions on two of its bounty-paying assets, so a malicious-repository bug demonstrated through the GitHub Pages build or through GitHub Desktop is payable at $250 for low up to $10,000 for critical, against an average award around $617. sorona.xyz adds 1.25x on top of whatever GitHub pays, up to $1,000 more, plus a complexity bonus of up to $1,000 for a well-chained finding. Response times ~4 days First response ~11 days Triage ~44 days Bounty In scope The declaration is GitHub's, since the Git project pays nothing itself: the GitHub Pages asset lists vulnerabilities in the command-line Git tools when cloning or checking out repositories as an eligible submission, and the GitHub Desktop asset lists code execution without user interaction when cloning or fetching a malicious repository. Both assets are bounty-eligible at critical severity Everything git does with a repository nobody vetted: the fetch transport, the object store it writes into, and the checkout that lands files on disk Repository-controlled configuration that a clone carries in with it, including .gitmodules and submodule URLs, .gitattributes with its clean, smudge and filter machinery, and anything dropped inside .git Pack and index handling: delta chains, .idx and .pack bounds checks, and the memory-safety surface beneath them Protocol v2 and the rest of the wire protocol the fetch path speaks to a server it does not control Path handling on case-insensitive and Unicode-normalising filesystems such as NTFS and APFS, where two distinct names collapse into one Credential helpers and URL parsing, the machinery that decides which host a stored token gets handed to File disclosure as well as code execution: the Pages scope line accepts reading arbitrary files during the build where that discloses sensitive information Out of scope Git bugs with no demonstrated route to code execution or file disclosure through a GitHub asset, however real the bug is upstream Anything that requires the victim to run a non-default configuration that GitHub does not use Denial of service against GitHub's build infrastructure by volume rather than by defect Individual GitHub Pages sites under *.github.io , which the program places explicitly out of scope Bugs in third-party Jekyll plugins rather than in git itself or in GitHub's build pipeline Awards are gated on sanctions screening, so a reporter who cannot clear it will not be paid Most-valued findings Code execution during the GitHub Pages build triggered purely by cloning or checking out an attacker-authored repository, the highest-value shape here and the one the scope line names Zero-interaction code execution when GitHub Desktop clones or fetches a malicious repository, the second named route into the same reward ladder Memory-safety defects in pack, index or delta parsing that a crafted repository can reach during a normal fetch Path traversal or symlink handling that writes into .git or outside the working tree on a checkout Credential helper or URL parsing flaws that hand a stored token to a host the user never intended to reach Program rules Submit through sorona.xyz first. We validate, coordinate with the program's security team, and add the payout uplift on top of whatever it awards. The Git project pays nothing itself, so a finding is only payable once it is demonstrated through a GitHub asset The two accepted routes are arbitrary code execution during the GitHub Pages build process via the command-line Git tools on clone or checkout, and code execution without user interaction when GitHub Desktop clones or fetches a hostile repository A git CVE reported in the abstract, with no demonstrated path through a GitHub asset, is not a bounty-eligible submission The bug has to work on a configuration GitHub actually runs; anything that needs a non-default setting GitHub does not use will not be paid Keep every detail of the report on HackerOne while it is open rather than posting it elsewhere Program stats 2,132 Reports resolved $6.5M Bounties paid 62% Response efficiency Disclosure Coordinated through GitHub on HackerOne. GitHub states plainly that you are free to publish a write-up about your own vulnerability and that it will not limit what you write, so the only real constraint is that the report stays on HackerOne while it is being fixed. sorona.xyz holds your finding and lines the write-up up behind GitHub's fix. Safe harbor Sorona will not pursue legal action against you for good-faith research submitted to us in line with this policy. We cannot speak for the upstream project, its vendor, or any third party, and we do not grant authorization on their behalf. You are responsible for understanding and following the laws that apply to you, wherever you are, and for staying within any scope the project has defined. Submit a vulnerability