CVE-2026-109090
libXi: libXi: Arbitrary code execution via oversized DEVICE_ENABLE reply
Severity
ImportantRed Hat Product Security
CVSS 3.1
Review impact separately from score.
Published · October 28, 2026
Updated · November 3, 2026
Description
A flaw was found in libXi. A malicious X server can send an oversized DEVICE_ENABLE response to a connecting client application, triggering a heap-based buffer overflow. This memory corruption can allow arbitrary code execution in the context of the client application or cause it to crash, resulting in a Denial of Service (DoS).
Statement
This vulnerability is rated as Important severity because successful exploitation allows an untrusted display service to execute code with the permissions of the connecting user process or induce an immediate application crash. In standard Red Hat Enterprise Linux environments, desktop and terminal applications interact solely with trusted, locally managed X11 or Xwayland display servers, which substantially limits practical attack exposure. The elevated risk is primarily present when client programs are configured to communicate with remote or unverified display servers across a network.
CVSS score applicability
The CVSS score(s) listed for this vulnerability do not reflect the associated product's status, and are included for informational purposes to better understand the severity of this vulnerability.
Mitigation
Mitigation for this issue is either not available or the currently available options do not meet the Red Hat Product Security criteria comprising ease of use and deployment, applicability to widespread installation base, or stability.
--- CME Mitigation Guidance (2026-11-02) --- Disclaimer: The following mitigation solutions are provided as a courtesy, pending the application of an official patch. This content was generated utilizing AI tools in conjunction with data from https://cmetaxonomy.org. Customers are advised to independently evaluate and test these temporary mitigations within their own infrastructure.
The highest-value action is to properly size the allocation for XDeviceEnableState and validate wire length before parsing DEVICE_ENABLE replies in libXi's XGetDeviceControl: upgrade to libXi 1.8.4 (or the fixed Libxi builds), which add a DEVICE_ENABLE case arm in XGetDCtl.c to allocate sizeof(XDeviceEnableState) and validate wire bytes against sizeof(xDeviceEnableState), closing crafted X11 DEVICE_ENABLE reply. Until patched, this is a concern on Linux systems running X11 client applications connecting to remote or unverified X display servers, so Restrict client applications from connecting to remote or unverified display servers across the network, ensuring connections are limited to trusted, locally managed X11 or Xwayland instances. As a compensating measure, Enable Address Space Layout Randomization to randomize process memory layout and hinder reliable code execution, Compile client binaries with Full RELRO and PIE to make relocation tables read-only and randomize code segments, Implement Control Flow Integrity or Shadow Call Stack to restrict indirect call and jump targets, Enable FORTIFY_SOURCE buffer overflow detection to abort execution upon detecting heap buffer overruns, Run SELinux in enforcing mode to confine the X11 client application within a mandatory access control domain, and Isolate client applications using Linux user, PID, network, and mount namespaces to restrict host access. These controls limit blast radius and contain exploitation, but they do not fix the underlying heap-based buffer overflow — apply the upstream patch to fully remediate.
Highest-impact CME: CME-301 SELinux (Enforcing Mode) (medium)
CVSS / CWE
CVSS 3.1 · 7.5CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H
CWE-787 · Out-of-bounds Write