- Top reward
- $1,500
- Top severity paid
- Critical
- Assets in scope
- 12
- Public CVEs
- 7
- Last change
- No changes yet
At a glance
What to know before you start testing.
- Pays from $1,500
- for critical bugs.
- Report on Sorona
- Submit through the program page.
- Partial safe harbor
- Some legal protection; read the terms.
- Replies within 3 days
- As the policy promises.
- Publish after a fix
- Coordinate the timing with the company.
Rewards
What Sorona lists as the payout for each severity.
| Severity | Relative size | Reward |
|---|---|---|
| Critical | $1,500+ | |
| High | $700+ | |
| Medium | $300+ | |
| Low |
|
$100 $100 / 1 month Claude Max |
- Response
-
Within 3 days
The policy commits to a 72-hour response and a 72-hour fix or mitigation target
- 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
12 assets you may test, 6 excluded.
Web 1
- https://github.com/kovidgoyal/kitty
Products and areas 11
- Clipboard access: OSC 52 reads and writes, clipboard_control, primary selection and bracketed paste
- Configuration handling: kitty.conf parsing, include directives, session files and startup handling, and the mapping from a config value to a capability
- OSC 8 hyperlink handling and the open_url_with path that decides what happens when a link or a matched pattern is activated
- Text and font handling, including the ligature and glyph paths that consume font files and the terminal's own Unicode handling
- The escape and control sequence parser in full: CSI, OSC, DCS, APC, the private modes and kitty's own extensions to them
- The kittens, all of them, including ssh, transfer, icat, hints, unicode_input, diff, panel and query
- The kitty graphics protocol end to end, including image decoding, the shared-memory and temporary-file transmission modes, placement handling and the identifiers the protocol lets a client choose
- The remote control protocol over both transports, the terminal stream and the control socket, along with allow_remote_control and the password and permission checks around it
- The SECURITY.md takes vulnerability reports by email to the maintainer or through a private GitHub advisory and draws no boundary narrower than kitty itself, so the whole upstream tree is in play
- The ssh kitten's bootstrap, which copies shell integration to a remote host and executes it there, plus kitty's shell integration hooks for bash, zsh and fish
- The window, tab and layout model, the single-instance socket, and the Python and C boundary that runs through the whole codebase
Out of scope (6)
- Anything already covered by one of the seven published advisories
- A user who explicitly enabled allow_remote_control and is then remote-controlled as documented, unless the finding shows that boundary failing
- Operating-system clipboard and window-manager behaviour outside kitty's control
- Other terminals, including VTE-based ones. kitty implements its own core and shares no parser with them
- The shell or the program that emitted the sequence; kitty displaying hostile output is a bug only where kitty mishandles it
- Upstream dependencies and distribution packaging rather than the upstream kitty tree
Rules
What the policy asks of you, and the bug types it won't reward, quoted from Sorona's policy. "We" in these lines means Sorona, not this site.
While testing
-
Submit through sorona.xyz. This project runs no bounty of its own; we validate, coordinate disclosure with the maintainers, and pay you directly.
-
Use one of the two channels the policy names: email the maintainer at kovid at kovidgoyal.net, or open a private security advisory through GitHub on kovidgoyal/kitty
-
The policy commits to a 72-hour response and a 72-hour fix or mitigation target, so build your timeline around days rather than the usual 90
-
Seven advisories have been published from this channel already, so a silent report is unusual here; follow up rather than assuming the process is dead
-
Send the exact bytes. Escape-sequence findings need the literal sequence, not a description of it, plus the kitty version and the platform
-
State clearly whether the finding needs a non-default option. kitty gates several capabilities behind settings such as allow_remote_control and clipboard_control , and a finding that works at defaults is worth far more
-
Show the bug in kitty's own core. kitty does not use VTE, so a comparison with GNOME Terminal proves nothing about either
-
There is no reward attached to the policy and nothing to negotiate upstream
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.
Sorona credits this project with 7 CVEs, 3 of them recent. The individual records appear here after the next sync.
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 This project runs no bounty of its own. sorona.xyz pays you directly on qualified, reproduced findings. Severity │ sorona.xyz pays Critical │ $1,500+ High │ $700+ Medium │ $300+ Low │ $100 / 1 month Claude Max Submit a vulnerability CVE history 3 Last 12 months 7 Lifetime Escape sequence handling 40 % Code execution 25 % Info disclosure 20 % Denial of service 15 % Latest advisories Loading the feed Overview kitty is a GPU-accelerated terminal with its own core rather than VTE's, widely used on Linux and macOS by developers who keep it open all day. Everything it renders is untrusted input: escape sequences from any command's output, from a remote host over SSH, or from a file that was never meant to be printed. It also layers a large set of its own protocols on top of that, covering graphics, remote control and clipboard access. The 2026 record shows the surface is live, with three CVEs published in June alone. The project's own policy offers coordinated disclosure and no reward, so sorona.xyz pays you directly on qualified, reproduced findings. In scope The SECURITY.md takes vulnerability reports by email to the maintainer or through a private GitHub advisory and draws no boundary narrower than kitty itself, so the whole upstream tree is in play The escape and control sequence parser in full: CSI, OSC, DCS, APC, the private modes and kitty's own extensions to them The kitty graphics protocol end to end, including image decoding, the shared-memory and temporary-file transmission modes, placement handling and the identifiers the protocol lets a client choose The remote control protocol over both transports, the terminal stream and the control socket, along with allow_remote_control and the password and permission checks around it Clipboard access: OSC 52 reads and writes, clipboard_control , primary selection and bracketed paste The kittens, all of them, including ssh, transfer, icat, hints, unicode_input, diff, panel and query The ssh kitten's bootstrap, which copies shell integration to a remote host and executes it there, plus kitty's shell integration hooks for bash, zsh and fish OSC 8 hyperlink handling and the open_url_with path that decides what happens when a link or a matched pattern is activated Configuration handling: kitty.conf parsing, include directives, session files and startup handling, and the mapping from a config value to a capability The window, tab and layout model, the single-instance socket, and the Python and C boundary that runs through the whole codebase Text and font handling, including the ligature and glyph paths that consume font files and the terminal's own Unicode handling Out of scope Other terminals, including VTE-based ones. kitty implements its own core and shares no parser with them The shell or the program that emitted the sequence; kitty displaying hostile output is a bug only where kitty mishandles it A user who explicitly enabled allow_remote_control and is then remote-controlled as documented, unless the finding shows that boundary failing Operating-system clipboard and window-manager behaviour outside kitty's control Upstream dependencies and distribution packaging rather than the upstream kitty tree Anything already covered by one of the seven published advisories Most-valued findings Any sequence that makes kitty write attacker-chosen bytes back into the pty. A terminal that can be induced to type is a shell, and it is the highest-value class on this target Remote control reachable without allow_remote_control , or reachable over the terminal stream when the user only enabled the socket. This is the capability boundary kitty has most explicitly drawn, so a break in it is unambiguous The graphics protocol, particularly the shared-memory and file-based transmission modes where a name or a path arrives inside an escape sequence, and the image decoding behind them Clipboard reads triggered by output rather than by the user, and clipboard writes that plant text a later paste executes The ssh kitten's bootstrap path, on either side of the connection: it writes and runs code on a remote host, which is an unusually rich surface for a terminal Hyperlink or pattern activation that hands an attacker-chosen URI or argument to a system handler Memory corruption in the parser reachable from a single sequence, since the three June 2026 CVEs show this surface is being actively worked and two of them rated high Program rules Submit through sorona.xyz. This project runs no bounty of its own; we validate, coordinate disclosure with the maintainers, and pay you directly. Use one of the two channels the policy names: email the maintainer at kovid at kovidgoyal.net, or open a private security advisory through GitHub on kovidgoyal/kitty The policy commits to a 72-hour response and a 72-hour fix or mitigation target, so build your timeline around days rather than the usual 90 Seven advisories have been published from this channel already, so a silent report is unusual here; follow up rather than assuming the process is dead Send the exact bytes. Escape-sequence findings need the literal sequence, not a description of it, plus the kitty version and the platform State clearly whether the finding needs a non-default option. kitty gates several capabilities behind settings such as allow_remote_control and clipboard_control , and a finding that works at defaults is worth far more Show the bug in kitty's own core. kitty does not use VTE, so a comparison with GNOME Terminal proves nothing about either There is no reward attached to the policy and nothing to negotiate upstream Disclosure Coordinated privately with the maintainer and published as a GitHub Security Advisory alongside a release. The published targets are fast by open-source standards, 72 hours to respond and 72 hours to fix or mitigate, and the advisory history shows those being met in batches. Plan the embargo around the next release rather than a fixed day count, and expect it to be short. 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