Severity by source
AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Bytes must reach a local kitty TTY (AV:L) and the user must render them (UI:R); no auth or privileges needed (PR:N), and arbitrary Python as the user yields full C/I/A impact.
Primary rating from Vendor (github).
CVSS VectorVendor: github
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Lifecycle Timeline
2DescriptionCVE.org
Kitty is a cross-platform GPU based terminal. In versions prior to 0.47.0, a program able to write bytes to a kitty terminal - a remote SSH peer, a downloaded file viewed with cat, a log line, an email body rendered in less, an issue body in a TUI, etc. - can cause kitty to execute attacker-supplied Python inside the running kitty process, with the user's full privileges. There is no approval prompt, no remote-control permission requirement, no shell-integration interaction, no clipboard touch, and no editor interaction. Version 0.47.0 fixes the issue.
Articles & Coverage 1
AnalysisAI
Remote code execution in Kitty terminal emulator versions prior to 0.47.0 allows any process or remote peer that can write bytes to the terminal - including SSH sessions, file viewers like cat or less, log tailers, and TUI applications - to execute attacker-supplied Python code inside the running kitty process with full user privileges. Exploitation requires no approval prompt, no shell integration, no clipboard interaction, and no editor involvement, making any rendered untrusted content a viable injection vector. No public exploit identified at time of analysis, but the trivial trigger conditions and broad attack surface make this a high-priority patch.
Technical ContextAI
Kitty is a cross-platform, GPU-accelerated terminal emulator written largely in Python with a C rendering core. Like other modern terminals it interprets a wide range of escape sequences and control codes embedded in the byte stream printed to the TTY; the vulnerability is a CWE-94 (Improper Control of Generation of Code, 'Code Injection') flaw where one of these terminal protocol features can be coerced into evaluating arbitrary Python in the kitty process itself rather than merely altering display state. Because the injection happens at the terminal-output layer, anything that ultimately reaches stdout/stderr of a kitty window - SSH from a remote host, cat of a downloaded file, less rendering an email body, a TUI rendering an issue description, a log line - becomes a delivery channel. The affected component is Kitty itself (vendor kovidgoyal/kitty); no CPE strings were supplied with the advisory.
RemediationAI
Vendor-released patch: upgrade kitty to version 0.47.0 or later, which fully fixes the issue per the vendor advisory at https://github.com/kovidgoyal/kitty/security/advisories/GHSA-w98g-hpvr-r332. Until the upgrade can be deployed, avoid using kitty to view untrusted byte streams: do not cat, less, or tail untrusted files, downloaded artifacts, or remote logs in a kitty window, and prefer a hardened pager or strip control sequences (for example pipe through cat -v or col -b) when inspecting attacker-influenced content; be aware these workarounds break legitimate color/escape handling and are easy to forget in interactive use, so they are stopgaps rather than substitutes for patching. For SSH from untrusted hosts, consider routing through a different terminal emulator until 0.47.0 is rolled out.
Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t
BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser
pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi
The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python
BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica
OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph
pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.
In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse
Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/
pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne
Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301
Cross-user flow execution in Langflow (< 1.9.1) lets any authenticated API-key holder run another user's flow by passing
Same weakness CWE-94 – Code Injection
View allSame technique Code Injection
View allVendor StatusVendor
SUSE
Severity: ImportantShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-36555