CVE-2026-33642 PUBLISHED

Kitty has a Heap Buffer Over-Read/Write via Integer Overflow in compose_rectangles Bounds Check

Assigner: GitHub_M
Reserved: 23.03.2026 Published: 19.05.2026 Updated: 19.05.2026

Kitty is a cross-platform GPU based terminal. In versions 0.46.2 and below, the handle_compose_command() function in kitty/graphics.c performs bounds validation on composition offsets using unsigned 32-bit arithmetic that is subject to integer wrapping, potentially leading to Heap Buffer Over-Read/Write. An attacker who can write escape sequences to a kitty terminal (e.g., via a malicious file, SSH login banner, or piped content) can supply crafted x_offset/y_offset values that pass the bounds check after wrapping but cause massive out-of-bounds heap memory access in compose_rectangles(). No user interaction is required. No non-default configuration is required. The attacker only needs the ability to produce output in a kitty terminal window. This issue has been fixed in version 0.47.0.

Metrics

CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:H
CVSS Score: 9.9

Product Status

Vendor kovidgoyal
Product kitty
Versions
  • Version < 0.47.0 is affected

References

Problem Types

  • CWE-190: Integer Overflow or Wraparound CWE
  • CWE-787: Out-of-bounds Write CWE
  • CWE-125: Out-of-bounds Read CWE