Saltar al contenido
CVE-2026-80432 ·
Media · 25 de septiembre de 2026

Falta de autorización en el protocolo de arrastrar y soltar de kitty permite a un cliente obtener el contenido del archivo arrastrado sin necesidad de soltarlo

S0
Secur0 CNA
CVE-2026-80432

Descripción

Falta de autorización (CWE-862) en drop_enqueue_request() (kitty/dnd.c), en la ruta de gestión del soltado del protocolo de arrastrar y soltar, en kitty desde 0.47.0 y anterior a 0.49.0, que permite a un programa que escribe en el terminal obtener el contenido de los ficheros arrastrados sobre la ventana incluso cuando el usuario nunca completa el soltado, porque la función atiende una solicitud de datos de arrastre sin comprobar previamente el estado de soltado de la ventana, de modo que un cliente que emite la solicitud mientras un arrastre se limita a sobrevolar la ventana recibe los datos ofrecidos para ese arrastre. Esto da lugar a la divulgación del contenido de ficheros que el usuario desplazó sobre la ventana sin llegar a soltarlos en ella.

Un segundo defecto en el mismo fichero prolonga el primero más allá de la vida del arrastre. drop_left_child() se ejecuta cuando el arrastre abandona la ventana sin que se haya producido un soltado, ante el evento de salida de arrastre de la plataforma y cuando cambia la ventana sobre la que está el puntero. Libera la lista de tipos MIME ofrecidos, razón por la cual las dos formas de solicitud indexadas por MIME fallan después su comprobación de límites, pero conserva el estado de solicitudes pendientes, el descriptor de fichero abierto junto con el temporizador del bucle principal que impulsa la transferencia, los manejadores de directorio, la lista de URI y el nombre MIME pendiente. Por tanto, un cliente puede seguir leyendo a través de un manejador de directorio conservado, y una transferencia en curso continúa enviando fragmentos, sin que haya ningún arrastre en marcha.

El origen del arrastre aporta la lista de URI; el contenido de los ficheros lo lee después el propio proceso de kitty del sistema de ficheros, usando esas rutas y sus propios privilegios. La acción de usuario requerida es desplazar un fichero sobre la ventana del terminal, que constituye una interacción ordinaria y no dirigida por el atacante.

Tipo de vulnerabilidad (CWE)

  • CWE-862: Falta de autorización

Versiones afectadas

kitty desde 0.47.0 y anterior a 0.49.0. El protocolo de arrastrar y soltar se introdujo en kitty/dnd.c y se publicó por primera vez en v0.47.0 (19-05-2026); las versiones anteriores no contienen el código afectado. Están afectadas todas las versiones desde v0.47.0 hasta v0.48.2, ambas incluidas. Estado por defecto: no afectado.

Puntuación (CVSS 4.0)

Media (6.0)

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

La pérdida de confidencialidad recae sobre el sistema subsiguiente y no sobre kitty, dado que el contenido divulgado pertenece a los ficheros del usuario y no al terminal.

Solución

Actualizar a kitty 0.49.0 o posterior.

Parche

Commit 026d11f5, que rechaza una solicitud de datos de arrastre cuando la ventana no tiene registrado ningún soltado, devolviendo EPERM con el mensaje drop data can only be requested after a drop. A diferencia de la denegación contigua por cola llena, ésta no da por terminada la sesión de arrastre, de modo que un soltado genuino posterior sigue funcionando. El mismo commit reescribe drop_left_child() para cerrar el descriptor de fichero y cancelar su temporizador de transferencia, limpiar el estado de solicitudes pendientes y los manejadores de directorio, y liberar la lista de URI y el nombre MIME pendiente, y modifica la especificación del protocolo para exigir ambos comportamientos a cualquier terminal.

Créditos

  • C4sh3R - descubridor
  • Cristian Fernández Cornejo - analista
  • Xoán M. Otero Jorge - analista
  • Secur0 CNA - coordinador
  • Kovid Goyal - desarrollador de la corrección Origen del descubrimiento: Externo

Registro oficial: CVE-2026-80432

Avisos relacionados

  • CVE-2026-80430 - Severidad media
  • CVE-2026-80431 - Severidad media