Severity by source
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:A/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Network reach via attacker bytes, but high complexity and required user action (victim must run netcat into Kitty); no auth needed; full RCE as user gives C:H/I:H, no availability impact stated.
Primary rating from Vendor (github).
CVSS VectorVendor: github
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:A/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Lifecycle Timeline
2DescriptionCVE.org
Kitty is a cross-platform GPU based terminal. In versions prior to 0.47.0, it is possible to inject commands within the subshell through kitty error. A special escape code will make kitty return an error, this error is not escaped and will be correctly echoed back to the terminal with CRLF, as such it will be run by the shell in use. To exploit this bug, the victim must use a netcat or a similar program to connect to the attacker, or else listening for someone to connect. Once this condition is set, an attacker could pwn the computer of the victim using a special kitty's escape code that will run a command in the shell in use. Version 04.7.0 fixes the issue.
AnalysisAI
Command injection in Kitty cross-platform GPU terminal emulator versions prior to 0.47.0 allows remote attackers to execute arbitrary shell commands on a victim's host by sending a crafted escape sequence over an attacker-controlled network connection. The terminal echoes its own error message - including attacker-controlled bytes - back to the shell with CRLF, causing the shell to execute the injected command. No public exploit identified at time of analysis, and the issue is not listed in CISA KEV.
Technical ContextAI
Kitty is a GPU-accelerated terminal emulator written primarily in Python and C, used widely on Linux and macOS. The flaw is a textbook CWE-77 (Improper Neutralization of Special Elements used in a Command) issue in Kitty's escape-code handler: when the terminal receives a specially crafted escape code it cannot process, it emits its own error response back to the TTY without sanitizing carriage-return/line-feed sequences. Because the error string is written to the same TTY the user's shell reads from, the embedded CRLF terminates the in-progress shell input line and submits whatever followed it as a new command, effectively turning the terminal's own error path into a command-injection sink.
RemediationAI
Vendor-released patch: upgrade to Kitty 0.47.0 or later, per the GitHub Security Advisory GHSA-p64q-59hq-5q65 (https://github.com/kovidgoyal/kitty/security/advisories/GHSA-p64q-59hq-5q65). Note the CVE description's reference to '04.7.0' is a typo for 0.47.0. Until upgrade is possible, avoid piping untrusted network data directly into a Kitty session - pipe through cat -v, less -R with control-character filtering, or tr -d '\r' to strip carriage returns before they reach the terminal, accepting that this breaks legitimate ANSI rendering. Disabling shell auto-execution on CR is not realistic, so the most defensible interim control is to run untrusted netcat/socat sessions inside a disposable container or a less feature-rich terminal (e.g., tmux inside a plain xterm) where Kitty's escape-code parser is not in the loop.
The SSH transport protocol with certain OpenSSH extensions, found in OpenSSH before 9.6 and other products, allows remot
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
The Graphics Protocol feature in graphics.c in kitty before 0.19.3 allows remote attackers to execute arbitrary code bec
KiTTY versions 0.76.1.13 and before is vulnerable to command injection via the filename variable, occurs due to insuffic
KiTTY versions 0.76.1.13 and before is vulnerable to a stack-based buffer overflow via the username, occurs due to insuf
KiTTY versions 0.76.1.13 and before is vulnerable to a stack-based buffer overflow via the hostname, occurs due to insuf
In Kitty before 0.26.2, insufficient validation in the desktop notification escape sequence can lead to arbitrary code e
Heap memory corruption in Kitty cross-platform GPU terminal emulator (versions 0.46.2 and below) allows remote attackers
Heap buffer overflow in Kitty terminal versions 0.46.2 and below allows any process able to write to the terminal's stan
open_actions.py in kitty before 0.41.0 does not ask for user confirmation before running a local executable file that ma
Remote code execution in Kitty terminal emulator versions prior to 0.47.0 allows any process or remote peer that can wri
Code injection in Kitty terminal emulator versions prior to 0.47.3 allows attacker-controlled bytes - including newline
Same weakness CWE-77 – Command Injection
View allSame technique Command Injection
View allVendor StatusVendor
SUSE
Severity: ImportantShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-36553