Skip to main content

Kitty terminal CVE-2026-54056

| EUVDEUVD-2026-36578 HIGH
Improper Link Resolution Before File Access (CWE-59)
2026-06-12 GitHub_M
7.1
CVSS 3.1 · NVD
Share

Severity by source

Vendor (GitHub_M) PRIMARY
HIGH
qualitative
NVD
7.1 HIGH
AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:L
vuln.today AI
6.9 MEDIUM

Network-delivered drag source with no kitty-side auth (PR:N); AC:H due to required case-collision race and case-sensitive FS; UI:R for the drag gesture; scope change with I:H/A:L file overwrite, no confidentiality loss.

3.1 AV:N/AC:H/PR:N/UI:R/S:C/C:N/I:H/A:L
4.0 AV:N/AC:H/AT:P/PR:N/UI:A/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N
SUSE
HIGH
qualitative

Primary rating from Vendor (GitHub_M).

CVSS VectorNVD

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

Lifecycle Timeline

3
CVSS changed
Jun 16, 2026 - 16:07 NVD
7.6 (HIGH) 7.1 (HIGH)
Patch available
Jun 12, 2026 - 22:01 EUVD
Analysis Generated
Jun 12, 2026 - 21:22 vuln.today

DescriptionNVD

Kitty is a cross-platform GPU based terminal. In versions 0.47.0 and 0.47.1, kitten dnd can allow a malicious remote drag-and-drop source to overwrite or truncate arbitrary files writable by the local kitty user. Remote text/uri-list drops are staged in a temporary directory, but on case-sensitive filesystems duplicate remote basenames are not de-duplicated. An attacker can first create a staged symlink and then send a same-name regular-file entry. The regular-file write uses utils.CreateAt() / openat(O_RDWR|O_CREAT|O_TRUNC) without O_NOFOLLOW, so it follows the attacker-created symlink and writes outside the staging directory before final overwrite confirmation runs. This appears related in class to the file-transfer symlink advisory, but it is a different bug: it affects kitten dnd remote drag-and-drop staging, uses different vulnerable code (kittens/dnd/drop.go and tools/utils/file_at_fd.go), and reproduces on commit 4aa4a5c0567a92553a8c20a88a4352da637fca5d, after the file-transfer O_NOFOLLOW fix. Version 0.47.2 patches the issue.

AnalysisAI

Arbitrary file write in Kitty terminal versions 0.47.0 and 0.47.1 allows a remote drag-and-drop source to overwrite files writable by the local kitty user via a TOCTOU symlink race in kitten dnd staging. The flaw stems from openat() calls lacking O_NOFOLLOW when handling duplicate remote basenames on case-sensitive filesystems, letting an attacker-staged symlink redirect writes outside the staging directory. No public exploit identified at time of analysis, and EPSS is very low (0.03%), though user interaction via drag-and-drop is the gating factor.

Technical ContextAI

Kitty is a GPU-accelerated cross-platform terminal emulator (CPE cpe:2.3:a:kovidgoyal:kitty) whose 'kitten dnd' helper stages remote drag-and-drop payloads (text/uri-list MIME) in a temporary directory before final placement. The root cause is CWE-59 (Link Following): the vulnerable code in kittens/dnd/drop.go and tools/utils/file_at_fd.go calls utils.CreateAt() / openat(O_RDWR|O_CREAT|O_TRUNC) without the O_NOFOLLOW flag, so when two remote entries share a basename on case-sensitive filesystems they are not de-duplicated and the second write follows whatever symlink the first entry planted. Notably this is distinct from the earlier file-transfer symlink advisory - it reproduces on commit 4aa4a5c0567a92553a8c20a88a4352da637fca5d, after that prior O_NOFOLLOW fix was applied, indicating an incomplete remediation pattern across staging code paths.

RemediationAI

Vendor-released patch: upgrade to Kitty 0.47.2, which adds the missing O_NOFOLLOW semantics to the dnd staging open path; see https://github.com/kovidgoyal/kitty/security/advisories/GHSA-r892-cv7q-fw8x for the fix commit and details. Until upgrade is possible, disable or avoid using 'kitten dnd' for remote drag-and-drop sources (do not drag content from untrusted remote desktops, browsers backed by untrusted origins, or RDP/VNC sessions into kitty windows), with the side effect of losing remote drag-and-drop convenience. As a defense-in-depth measure, run kitty under a user account whose writable file set excludes sensitive shell startup files and SSH config (e.g., by relocating dotfiles or tightening permissions), accepting the side effect of breaking workflows that legitimately rewrite those files.

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-2026-33633 HIGH
8.8 May 19

Heap buffer overflow in Kitty terminal versions 0.46.2 and below allows any process able to write to the terminal's stan

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

Vendor StatusVendor

SUSE

Severity: Important

Share

CVE-2026-54056 vulnerability details – vuln.today

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