Skip to main content

Kitty terminal CVE-2026-33633

| EUVDEUVD-2026-30964 HIGH
Heap-based Buffer Overflow (CWE-122)
2026-05-19 GitHub_M
8.8
CVSS 3.1 · NVD
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Stage malicious APC payload in file or remote output
  2. Delivery
    Lure user to display untrusted content in Kitty
  3. Exploit
    Terminal parses APC graphics command with f=100
  4. Execution
    Oversized PNG payload overflows load_image_data() heap buffer
  5. Persist
    Attacker-controlled bytes corrupt heap metadata
  6. Impact
    Crash terminal or hijack execution in Kitty process

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Heap buffer bounds checking
MITRE ATT&CK

1 technique across 1 tactic: Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that the attacker can write bytes to the Kitty process's stdin or controlling TTY, the target must be running Kitty 0.46.2 or earlier, and Kitty's graphics protocol must be enabled (it is on by default). The attacker must deliver a single APC graphics protocol command with the PNG format declaration f=100 carrying a payload larger than twice load_image_data()'s initial buffer capacity. Limiting factors per CVSS AV:N/AC:H/UI:R: high attack complexity and required user interaction - the victim has to perform an action that pipes attacker-controlled output into Kitty (viewing a malicious file, SSHing to a compromised host, tailing a poisoned log, or running a hostile local program); no authentication to Kitty itself is required (PR:N) and scope is unchanged.

Impact

The CVSS 3.1 vector AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H yields 7.5 (High) and signals an unauthenticated network-reachable attack but with high complexity and required user interaction - realistic because exploitation requires getting attacker-controlled bytes piped into a victim's terminal stdin (e.g., catting a malicious file, viewing a crafted log over SSH, or a hostile process on the same host). EPSS and CISA KEV status were not supplied in the input, and no public exploit identified at time of analysis, so this is not currently a mass-exploitation candidate; the realistic risk profile is targeted abuse against developers, sysadmins, and CTF/forensics workflows where untrusted output is commonly displayed. The vendor confirms DoS is reliably triggerable and notes RCE is potentially reachable given the attacker-controlled length and content, but no public weaponization demonstrating code execution has been provided in the references - RCE remains an inferred upper bound, not a confirmed capability.

Exploit ScenarioDerived

An attacker who can place bytes into a user's terminal stdin - for instance via a malicious file the user runs cat on, a compromised remote host the user SSHes into, a poisoned log file tailed during incident response, or a hostile local process sharing the TTY - emits a single APC graphics command with f=100 and a PNG payload more than twice the initial buffer capacity. Kitty's load_image_data() overruns its heap allocation with attacker-controlled bytes, immediately crashing the terminal (denial of service) and, per the vendor advisory, potentially allowing escalation to code execution in the terminal process. No public proof-of-concept has been identified at time of analysis.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – May 19, 2026

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.

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.

Affected VersionsENISA

kitty < 0.47.0

Affected Packages

euvd kitty fix: 0.47.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

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.

Know when Kitty gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

NVD PRIMARY 8.8 HIGH
AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
SUSE HIGH

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
CVSS changed
Jul 24, 2026 - 12:22 NVD
7.5 (HIGH) 8.8 (HIGH)
Patch available
May 19, 2026 - 18:03 EUVD

DescriptionNVD

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.

Executive ViewAI

Why It Matters

Kitty terminal emulator versions 0.46.2 and earlier contain a high-severity heap buffer overflow in the graphics protocol handler that can crash the application or enable code execution when processing malicious terminal input. Organizations using Kitty face service disruption and unauthorized code execution risks if terminals process untrusted data.

Business Impact: High
Compensating Controls

Apply vendor patch: upgrade to Kitty 0.47.0 or later.

Threat Intelligence Overview

EPSS Score
0.0%
Top 88% exploitable
Social Media
3
Sightings
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor CIRCL GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.

A heap overflow occurs when a program writes data beyond the bounds of a buffer allocated in the heap memory region.

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.8 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

Vendor StatusVendor

SUSE

Severity: Important
Product Status
openSUSE Leap 16.0 Fixed

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