Bug 2542463 - CVE-2026-80431 kitty: out-of-bounds write in the kitty text sizing protocol allows termination of the terminal process [fedora-all]
Summary: CVE-2026-80431 kitty: out-of-bounds write in the kitty text sizing protocol a...
Keywords:
Status: NEW
Alias: None
Product: Fedora
Classification: Fedora
Component: kitty
Version: rawhide
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: ---
Assignee: Jonathan Wright
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard: {"flaws": ["42aa66fc-58e5-480f-8c0c-d...
Depends On:
Blocks: CVE-2026-80431
TreeView+ depends on / blocked
 
Reported: 2026-09-28 12:58 UTC by Guilherme de Almeida Suckevicz
Modified: 2026-09-28 12:58 UTC (History)
7 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Guilherme de Almeida Suckevicz 2026-09-28 12:58:43 UTC
Disclaimer: Community trackers are created by Red Hat Product Security team on a best effort basis. Package maintainers are required to ascertain if the flaw indeed affects their package, before starting the update process.

Out-of-bounds Write in the natural width branch of the text sizing protocol in kitty from 0.40.0 before 0.49.0 allows a program writing to the terminal to write past the end of a fixed-size buffer, because screen_handle_multicell_command() in kitty/screen.c appends each codepoint of a grapheme cluster with lc.chars[lc.count++] = ch without any capacity check, while lc is declared by the RAII_ListOfChars macro as a four-element char_type array in the function's stack frame, so an OSC 66 escape code whose payload carries a grapheme cluster longer than four codepoints writes beyond that buffer, one 32-bit value per additional codepoint, in the order the codepoints appear. Where the cluster is preceded in the same payload by a sequence that causes an intermediate flush, the buffer is first migrated to the heap by ensure_space_for_chars() and the write occurs past the heap allocation instead. This results in termination of the kitty process and therefore of all its windows, tabs and child processes.


Note You need to log in before you can comment on or make changes to this bug.