CVE-2026-80431: Out-of-bounds write in the kitty text sizing protocol allows termination of the terminal process

Published Sep 25, 2026
·
Updated

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 screenhandlemulticellcommand() 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 RAIIListOfChars macro as a four-element chartype 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 ensurespaceforchars() 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.

Affected Software

1 affected component
Kitty Kitty>=0.40.0<0.49.0

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade kitty to a version that resolves this vulnerability.

    Fixed in 0.49.0

Event History

Sep 25, 2026
CVE Published
via MITRE·01:23 PM
Data Sourced
via MITRE·01:23 PM
RemedyDescriptionWeakness
Data Sourced
via NVD·02:17 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Which installations should be prioritized for remediation?

Kitty versions from 0.40.0 up to, but not including, 0.49.0 are affected. Version 0.49.0 includes the referenced fix.

2

What must an attacker be able to do to trigger the issue?

A program must be able to write terminal output containing an OSC 66 escape sequence with a grapheme cluster longer than four codepoints. The out-of-bounds write occurs as kitty processes that terminal payload.

3

What is the practical impact of successful exploitation?

The documented result is termination of the kitty process. This also terminates all of its windows, tabs, and child processes.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203