Skip to main content

Kitty terminal CVE-2026-33633

| EUVDEUVD-2026-30964 HIGH
Heap-based Buffer Overflow (CWE-122)
2026-05-19 GitHub_M
7.5
CVSS 3.1 · GitHub Advisory
Share

Severity by source

GitHub Advisory PRIMARY
7.5 HIGH
AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H

Primary rating from GitHub Advisory · only source for this CVE.

CVSS VectorGitHub Advisory

CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H
Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

3
Patch available
May 19, 2026 - 18:03 EUVD
Source Code Evidence Fetched
May 19, 2026 - 18:00 vuln.today
Analysis Generated
May 19, 2026 - 18:00 vuln.today

DescriptionGitHub Advisory

Kitty is a cross-platform GPU based terminal. Versions 0.46.2 and below contain a heap buffer overflow in load_image_data() that allows any process which can write to the terminal's stdin to crash kitty immediately. The vulnerability is triggered by a single APC graphics protocol command with a PNG format declaration (f=100) whose payload exceeds twice the initial buffer capacity. The overflow is attacker-controlled in both length and content, causing DoS and potentially escalation to RCE itself. This issue has been fixed in version 0.47.0.

AnalysisAI

Heap buffer overflow in Kitty terminal versions 0.46.2 and below allows any process able to write to the terminal's standard input to crash the application and potentially achieve remote code execution. The flaw lives in load_image_data() and is triggered by a single APC graphics protocol command declaring PNG format (f=100) with a payload exceeding twice the initial buffer capacity, giving the attacker control over both overflow length and content. No public exploit identified at time of analysis, but the vulnerability has been fixed upstream in version 0.47.0.

Technical ContextAI

Kitty is a GPU-accelerated, cross-platform terminal emulator written in C (cpe:2.3:a:kovidgoyal:kitty) that implements its own graphics protocol using APC (Application Program Command) escape sequences. The protocol lets clients embed images directly inside terminal output, with the f=100 parameter signaling that the payload is PNG-encoded image data. The vulnerability is a CWE-122 heap-based buffer overflow inside load_image_data(): the routine reserves an initial heap buffer for the decoded image but fails to bound subsequent payload chunks, so a payload larger than twice the initial capacity overruns the allocation. Because the bytes written come straight from the attacker's APC command, both the size and content of the overwrite are attacker-controlled, which is exactly the precondition for heap corruption escalation. The upstream fix commit (e9661f0) also widens related dimension variables in handle_compose_command from unsigned int to uint64_t to prevent integer overflow during validity checks, indicating tightening across the graphics command path.

RemediationAI

Vendor-released patch: upgrade Kitty to version 0.47.0 or later, available from the project's GitHub releases and referenced in advisory GHSA-j68c-v8x4-269g (https://github.com/kovidgoyal/kitty/security/advisories/GHSA-j68c-v8x4-269g). Until upgrade is possible, treat terminal stdin as an attack surface: avoid catting or paging untrusted files, log streams, or remote command output through Kitty; pipe untrusted output through filters that strip APC sequences (e.g., less with -R disabled, or wrap with cat -v) at the cost of losing legitimate inline graphics; and where feasible disable the graphics protocol via the allow_remote_control and graphics-related configuration to remove the affected code path, accepting the loss of icat/image preview functionality. SSH and tmux sessions that forward output from untrusted hosts should be considered exposure vectors and locked down accordingly.

More in Kitty

View all
CVE-2023-48795 MEDIUM POC
5.9 Dec 18

The SSH transport protocol with certain OpenSSH extensions, found in OpenSSH before 9.6 and other products, allows remot

CVE-2016-2563 CRITICAL POC
9.8 Apr 07

Stack-based buffer overflow in the SCP command-line utility in PuTTY before 0.67 and KiTTY 0.66.6.3 and earlier allows r

CVE-2020-35605 CRITICAL POC
9.8 Dec 21

The Graphics Protocol feature in graphics.c in kitty before 0.19.3 allows remote attackers to execute arbitrary code bec

CVE-2024-23749 HIGH POC
7.8 Feb 09

KiTTY versions 0.76.1.13 and before is vulnerable to command injection via the filename variable, occurs due to insuffic

CVE-2024-25004 HIGH POC
7.8 Feb 09

KiTTY versions 0.76.1.13 and before is vulnerable to a stack-based buffer overflow via the username, occurs due to insuf

CVE-2024-25003 HIGH POC
7.8 Feb 09

KiTTY versions 0.76.1.13 and before is vulnerable to a stack-based buffer overflow via the hostname, occurs due to insuf

CVE-2022-41322 HIGH POC
7.8 Sep 23

In Kitty before 0.26.2, insufficient validation in the desktop notification escape sequence can lead to arbitrary code e

CVE-2026-33642 CRITICAL
9.9 May 19

Heap memory corruption in Kitty cross-platform GPU terminal emulator (versions 0.46.2 and below) allows remote attackers

CVE-2025-43929 MEDIUM POC
4.1 Apr 20

open_actions.py in kitty before 0.41.0 does not ask for user confirmation before running a local executable file that ma

CVE-2026-42851 HIGH
7.8 Jun 12

Remote code execution in Kitty terminal emulator versions prior to 0.47.0 allows any process or remote peer that can wri

CVE-2026-42850 HIGH
7.4 Jun 12

Command injection in Kitty cross-platform GPU terminal emulator versions prior to 0.47.0 allows remote attackers to exec

CVE-2026-54057 HIGH
7.3 Jun 12

Code injection in Kitty terminal emulator versions prior to 0.47.3 allows attacker-controlled bytes - including newline

Share

CVE-2026-33633 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy