CVE-2026-80431 in Kitty
Résumé
par VulDB • 25/09/2026
Une écriture hors limites (Out-of-bounds Write) dans la branche de largeur naturelle du protocole de dimensionnement des polices de Kitty, depuis les versions 0.40.0 jusqu'à la version antérieure à 0.49.0, permet à un programme écrivant sur le terminal d'écrire au-delà de la fin d'un tampon de taille fixe. En effet, `screen_handle_multicell_command()` dans `kitty/screen.c` ajoute chaque codepoint d'une grappe graphique avec l'instruction `lc.chars[lc.count++] = ch`, sans aucune vérification de capacité. Or, `lc` est déclaré par la macro RAII_ListOfChars comme un tableau de quatre éléments de type char_type dans le cadre de pile (stack frame) de la fonction ; ainsi, un code d'échappement OSC 66 dont la charge utile contient une grappe graphique plus longue que quatre codepoints écrit au-delà de ce tampon, en ajoutant une valeur sur 32 bits par codepoint supplémentaire, dans l'ordre d'apparition des codepoints. Lorsque cette grappe est précédée dans la même charge utile par une séquence provoquant un vidage intermédiaire (flush), le tampon est d'abord migré vers le tas (heap) via `ensure_space_for_chars()`, et l'écriture se produit alors au-delà de l'allocation du tas. Cela entraîne la terminaison du processus kitty, et donc celle de toutes ses fenêtres, onglets et processus enfants.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.