Skip to main content

kitty EUVDEUVD-2026-87226

| CVE-2026-80432 MEDIUM
Missing Authorization (CWE-862)
2026-09-25 Secur0 GHSA-ghc4-9m25-367h
6.0
CVSS 4.0 · Vendor: Secur0
View

Attack ChainAIDerived

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

  1. Access
    Run malicious program in kitty session
  2. Delivery
    User drags file over window (hover)
  3. Exploit
    Emit drag-data request escape sequence
  4. Execution
    kitty reads and streams file contents
  5. Impact
    Exfiltrate disclosed file data

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

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

Exploitation Conditions

Requires kitty 0.47.0 through 0.48.x with the drag-and-drop protocol, a window that has registered to accept drops, and a client able to write escape sequences to that terminal (a local program or a process in an active session such as SSH). The decisive precondition is user interaction: the victim must drag a file or directory over the kitty window (a hover/move event) - the flaw lets the client request and receive that offered data before, or without, the user ever completing the drop, and drop_left_child() leaves directory handles and in-flight file transfers readable even after the drag leaves. Limiting factors: local attack vector, mandatory drag interaction by the victim, and disclosure is bounded to the files the drag source actually offered (not arbitrary attacker-chosen paths).

Impact

This is a genuine but moderate-severity information-disclosure flaw, not a high-urgency issue. The vendor-assigned CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:N/UI:P, VC/VI/VA:N but SC:H) is internally consistent with the description: the terminal process itself is unharmed (no vulnerable-system impact) but user files handled during a drag session are disclosed to a subsequent system, hence SC:H and the 6.0 score. Two signals temper real-world urgency: (1) exploitation is local (AV:L) - the attacker must already be able to write escape sequences to the terminal (a local program, or a process reachable through an active session such as SSH), and (2) it requires user interaction (UI:P) - the victim must physically drag a file or directory over the kitty window. There is no EPSS score, no CISA KEV listing, and no public exploit code identified - so this is 'no public exploit identified at time of analysis,' with only a vendor/researcher advisory (Secur0) and a confirmed upstream patch. No conflicting signals were found between the CVSS vector and the description; both agree on local, low-privilege, interaction-dependent, confidentiality-only impact. Overall: a real defect worth patching on developer workstations but not a mass-exploitation priority.

Exploit ScenarioDerived

A user runs a malicious or compromised program inside kitty (for example a CLI tool, or output streamed over an SSH session) that emits drag-and-drop protocol escape sequences. When the user drags a sensitive file or folder over the kitty window while deciding whether to drop it, the program issues a drag-data request; because drop_enqueue_request() never checks the window's drop state, kitty reads the offered file paths from disk and streams their contents back to the program even though the user never released the drop. No public exploit code has been identified, only a researcher advisory.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.1% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 25, 2026

Information disclosure in the kitty terminal emulator versions 0.47.0 through 0.48.x lets a program that can write escape sequences to the terminal read the contents of files a user merely drags over a kitty window, without ever completing the drop. The drag-and-drop handler in kitty/dnd.c serves a client's drag-data request without first verifying that a drop has actually occurred, and drop_left_child() keeps the offered URI list, directory handles, an open file descriptor and its main-loop transfer timer alive after the drag leaves the window, so a client can keep reading through a retained directory handle or let an in-flight file transfer continue streaming with no drag in progress. The CVSS 4.0 base score is 6.0 (moderate), the request path is unauthenticated (PR:N) and the decisive precondition is user interaction: the victim must drag a file or directory over the window; no public exploit code was identified at time of analysis, and vendor-released patch kitty 0.49.0 is available.

RemediationAI

Vendor-released patch: upgrade kitty to 0.49.0 or later, which is the version that denies pre-drop data requests with EPERM and tears down all drag-session state (URI list, directory handles, file descriptor and transfer timer) when the drag leaves the window; the fix is commit 026d11f517da17bfd3c35ea502057babdfbe5828 and the release is https://github.com/kovidgoyal/kitty/releases/tag/v0.49.0, with the CNA advisory at https://secur0.com/en/cna/cve-list/cve-2026-80432-kitty-dnd-data-before-drop. Until upgrading, the practical compensating controls are behavioural rather than configuration-level: do not drag files or directories over a kitty window while a program you do not fully trust is able to write escape sequences to that terminal, including processes reached through an active SSH session, since the disclosure only triggers once a drag is offered and is bounded to the paths the drag source supplied; and avoid dropping directories or initiating large file transfers into untrusted sessions on 0.47.x/0.48.x because the retained directory handles and in-flight transfers survive the drag leaving the window - the trade-off is purely operational, since kitty offers no documented switch to disable the drag-and-drop protocol without patching, and disabling or rebuilding without the DnD handler would break legitimate file-drop integration in terminal applications such as file managers and editors. Upstream regression tests (dnd_test_probe_state checks for drop_dropped, drop_num_dir_handles, drop_uri_list_sz and drop_file_fd_plus_one) can be used to verify that a patched build really clears this state after a leave event.

Affected VersionsENISA

kitty 0.47.0 <0.49.0

Affected Packages

euvd kitty fix: 0.49.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 implements drag and drop as a terminal escape-sequence protocol: a client registers a window as a drop target, the terminal reports drag enter/move/leave events with the MIME types on offer, and the client then requests data by name or requests a listing of a URI/directory handle. The flaw is CWE-862 (Missing Authorization) in kitty/dnd.c. In drop_enqueue_request() the terminal validated geometry and queued the request but never checked w->drop.dropped, so a request issued while the drag was merely hovering (a move event only, no release) was served with the data the drag source had offered. A second defect in drop_left_child(), which runs when the drag leaves the window without a drop, freed only the offered MIME list while retaining the pending request state, the open file descriptor plus its main-loop transfer timer, the directory handles, the URI list and the pending MIME name - the upstream fix commit 026d11f517da17bfd3c35ea502057babdfbe5828 also updates docs/dnd-protocol.rst to require that requests received before a drop be rejected with EPERM and that a leave event discard all drag-session data and resources (URI lists, in-progress transfers, directory handles) so stale handles fail. Note that kitty itself performs the filesystem reads using the paths the drag source offered, so the disclosure is bounded to files the user actually dragged over the window, not arbitrary attacker-chosen paths; the affected CPE is cpe:2.3:a:kovid_goyal:kitty:*:*:*:*:*:*:*:* mapped to versions before the 0.49.0 fix.

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

Vendor (Secur0) PRIMARY 6.0 MEDIUM
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:H/SI:N/SA:N
vuln.today AI 6.3 MEDIUM

Local terminal-write access (AV:L), no privileges (PR:N), but the victim must drag a file over the window (UI:R); kitty reads user files into a different component (S:C) yielding confidentiality-only impact (C:H).

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

Primary rating from Vendor (Secur0).

CVSS VectorVendor: Secur0

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
High
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

Missing Authorization in the drop handling path of the drag and drop protocol in kitty from 0.47.0 before 0.49.0 allows a program writing to the terminal to obtain the contents of files dragged over the window even when the user never completes the drop, because drop_enqueue_request() in kitty/dnd.c serves a drag data request without first checking the drop state of the window, so a client that issues the request while a drag is merely hovering receives the data offered for the drag. In the same file, drop_left_child(), which runs when the drag leaves the window without a drop having occurred, releases the offered MIME list but retains the pending request state, the open file descriptor and its main loop transfer timer, the directory handles, the URI list and the pending MIME name, so a client can continue to read through a retained directory handle, and an in-flight file transfer continues to stream, when no drag is in progress. The file contents are read from the filesystem by the kitty process itself using the paths the drag source offered. This results in disclosure of the contents of files the user moved over the window without ever releasing them into it.

Threat Intelligence Overview

EPSS Score
0.1%
Top 98% exploitable
Prevalence
Medium
popular GPU-accelerated terminal emulator among developers, not enterprise-ubiquitous
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor CIRCL GitHub

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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Defer
Exploitation
None
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

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: Moderate

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