Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessLure client to malicious or compromised X server
-
ExploitServer sends crafted protocol reply/event
-
ExecutionTrigger out-of-bounds access in X client library
-
ImpactCrash client or disclose process memory
Vulnerability Assessment
| Exploitation Conditions | Exploitation requires the victim's X11 client to establish a connection to an attacker-controlled, compromised, or man-in-the-middled X server; the flaw triggers only when that server returns a maliciously crafted reply or event (e.g. inconsistent length, count, or class-metadata fields) that the client library parses without adequate bounds checking. Limiting factors that reduce real-world risk: the X server is normally a local, trusted component, so exploitation presupposes an abnormal trust relationship such as X forwarding to a hostile host or a rogue display server; the observed impact across the advisory family is primarily a client crash (denial of service) with at most limited memory disclosure, not confirmed code execution for this component. |
| Impact | No CVSS vector, EPSS score, KEV entry, POC, or SSVC decision point was provided for CVE-2026-109088 specifically, so quantitative exploitation signals are absent and risk must be inferred from the X.Org advisory class it belongs to. IMPORTANT DATA CONFLICT: the identifier CVE-2026-109088 does not appear anywhere in the provided advisory text, which enumerates CVE-2026-88806, 94283, 94284, 94285 (libX11) and 93541-93545 (libXi); the references and the two linked code diffs instead point to libXrender (XRenderQueryFormats bounds hardening in Xrender.c) and libXtst (XRecord.c parse_reply_call_callback, a follow-up to CVE-2016-7952) - verify the exact affected component and CVSS with the vendor. Across this entire advisory family the sibling CVEs score MEDIUM (5.3-6.5) and share one threat model: a malicious, compromised, or MITM'd X server sends crafted replies/events that trigger out-of-bounds reads/writes in the X CLIENT library, overwhelmingly producing a crash (A:H) rather than code execution. That model is the dominant risk-limiting factor: in typical deployments the X server is local and trusted, so remote unauthenticated mass exploitation is not realistic - the attacker must first control or interpose on the X protocol connection (e.g. SSH X-forwarding to a hostile host). Net assessment: real-world priority is LOW-to-MODERATE despite the ubiquity of the affected libraries - patch via normal distro channels, but there is no evidence of active exploitation or weaponization. Sibling OOB-write CVE-2026-88806 is the one theoretically higher-impact member, but 109088's own impact cannot be confirmed from the supplied data. |
| Exploit ScenarioDerived | An attacker controls or compromises an X server (for example a rogue display server, or a malicious host reached via SSH X11 forwarding) that a victim's X11 client connects to. The server returns a crafted protocol reply or event with inconsistent length/count fields, driving the client's X library to read or write past a buffer, crashing the client and potentially disclosing adjacent process memory. No public exploit identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 16, 2026
Out-of-bounds reads and writes in the X.Org X client libraries (libX11, libXi, libXpm, libXrender and libXtst) can be triggered when a connecting X11 client parses crafted replies or events returned by a malicious, compromised, or man-in-the-middled X server, causing client crashes and, in a subset of cases, limited memory disclosure. The lead issue in the advisory is an out-of-bounds write in libX11's XKB action parser when a XkbGetMap reply contains keycode values above max_keycode + 1; the family also includes multiple out-of-bounds reads in libXi's XI2 class parsing and XQueryDeviceState/XListInputDevices replies, all of which are fixed in libX11 1.8.14, libXi 1.8.4, libXpm 3.5.20, libXrender 0.9.13 and libXtst 1.2.6. The assessed vector (CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H, 6.5) indicates exploitation is unauthenticated but requires user interaction, with impact limited to denial of service rather than confirmed code execution; no public exploit identified at time of analysis, and no KEV entry or EPSS score was supplied.
RemediationAI
Vendor-released patch: upgrade to libX11 1.8.14, libXi 1.8.4, libXpm 3.5.20, libXrender 0.9.13 and libXtst 1.2.6, or apply your distribution's backported equivalents, since many of these libraries are dynamically linked by a very large number of X clients and only the link-time version matters at runtime. Where immediate upgrades are not possible, the effective compensating control is to shrink the trust boundary rather than patch behaviour: stop forwarding X11 sessions to hosts you do not control by disabling SSH X11 forwarding (ssh -X/-Y) in client and server sshd_config, trading away the ability to display remote GUI applications; restrict X server access with host-based access control and per-client xauth cookies (XAUTHORITY/xhost) so that only trusted local clients can connect, which does not help against a genuinely malicious display server; and treat the exposure as availability-only, since the assessed impact is client crash with at most limited memory disclosure, so patching can generally be scheduled with normal maintenance rather than emergency change. Do not rely on the X11 SECURITY extension or sandboxing of the server alone to contain a hostile server, because the vulnerable parsing happens in the client process; running affected X clients as an unprivileged, isolated user and under container or seccomp confinement limits the blast radius of a crash but does not prevent the out-of-bounds access itself. Full technical detail and commit references are in the X.Org advisory at https://seclists.org/oss-sec/2026/q4/212 and the upstream commits https://gitlab.freedesktop.org/xorg/lib/libx11/-/commit/924fc91f0, https://gitlab.freedesktop.org/xorg/lib/libxrender/-/commit/0564bce54 and https://gitlab.freedesktop.org/xorg/lib/libxtst/-/commit/ac60f5f47.
Affected ProductsAI
X.Org X client libraries prior to the fixed releases: libX11 before 1.8.14 (XKB action parser, XIM attribute parser, XIM trigger-key registration parser and the byte-oriented codeset parser for multibyte locales such as GBK/Big5), libXi before 1.8.4 (XQueryDeviceState, XI2 class parsing via size_classes()/copy_classes(), XIQueryDevice reply parsing, and XListInputDevices), plus libXpm before 3.5.20, libXrender before 0.9.13 and libXtst before 1.2.6, which the same advisory fixes. The advisory text provided was truncated before the individual libXpm and libXtst issue write-ups, so their per-issue details are not confirmed in this data set. No CPE strings were supplied for any of these components. The authoritative advisory is the X.Org Security Advisory of October 16, 2026, mirrored at https://seclists.org/oss-sec/2026/q4/212, with upstream fix references at https://gitlab.freedesktop.org/xorg/lib/libx11/-/commit/924fc91f0, https://gitlab.freedesktop.org/xorg/lib/libxrender/-/commit/0564bce54 and https://gitlab.freedesktop.org/xorg/lib/libxtst/-/commit/ac60f5f47; the libX11 1.8.14 and libXi 1.8.4 releases also carry additional hardening changes without CVE identifiers that maintainers cherry-picking fixes are advised to include.
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The X11 protocol is asymmetric: the server owns the display, keyboard and pointer and the client libraries (libX11, libXi, libXrender, libXtst, libXpm) parse whatever the server sends back. That trust relationship is normally benign because the X server is a local, trusted component, but it inverts when a client connects across a trust boundary - SSH X11 forwarding to a hostile host, a rogue or spoofed display, or a machine-in-the-middle on the X11 socket. The advisory family consists of classic protocol-parser defects: no CWE identifier was supplied in the input, but the root-cause classes map to out-of-bounds read (CWE-125) and out-of-bounds write (CWE-787) caused by trusting length, count and class-metadata fields taken directly from wire replies. In libX11 the affected parsers are the XKB action parser (writes past an allocated array when keycode exceeds max_keycode + 1), the XIM attribute parser and trigger-key registration parser (read past the packet buffer on inconsistent nested lengths, crash in memcpy), and the byte-oriented codeset parser byteM_parse_codeset(), which over-reads when the final input byte is a valid lead byte for a multi-byte locale such as GBK or Big5. In libXi the vulnerable surfaces are XQueryDeviceState() (unvalidated num_valuators in a ValuatorClass reply), the size_classes()/copy_classes() helpers and XIQueryDevice()/XI_DeviceChanged handling (overlong num_classes, zero or oversized per-class lengths, button/key counts exceeding class bytes), and XListInputDevices() (name length byte larger than the remaining reply). The supplied fix diffs corroborate the pattern: src/Xrender.c in libXrender adds a bounds check that rep.numSubpixel <= rep.numScreens alongside numDepths/numVisuals and INT_MAX-shift limits before allocation in XRenderQueryFormats(), and src/XRecord.c adds validation that datum_bytes is within INT_MAX>>2, non-zero, and actually advances the parse index - explicitly described as a follow-up to the earlier CVE-2016-7952 livelock/underflow fix. Fixes are published as upstream commits on gitlab.freedesktop.org, for example libX11 commit 924fc91f0, libXrender commit 0564bce54 and libXtst commit ac60f5f47.
Know when Gitlab gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
Malicious X server reply crashes the client over a (possibly forwarded) network connection with no authentication, but the victim must initiate the connection (UI:R); impact is availability-only DoS.
Description PRE-NVD
Articles & Coverage 2
Executive ViewAI
CVE-2026-109088 affects the X.Org X client libraries (libX11, libXi, libXpm, libXrender, and libXtst) used across Linux and Unix graphical environments, enabling a malicious or compromised X server to crash connecting client applications and potentially disclose limited memory. Exploitation is unauthenticated but requires user interaction, and no public exploit has been identified at time of analysis. Because these libraries are widely deployed on user workstations, security and IT teams should prioritize updating affected systems to avoid user-session disruptions.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
Attack Technique
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
An issue has been discovered in GitLab CE/EE affecting all versions starting from 11.9. Rated critical severity (CVSS 10
An issue has been discovered in GitLab CE/EE affecting all versions from 16.1 prior to 16.1.6, 16.2 prior to 16.2.9, 16.
When requests to the internal network for webhooks are enabled, a server-side request forgery vulnerability in GitLab af
Unauthenticated arbitrary file read in GitLab CE/EE lets remote attackers retrieve files from the GitLab server via the
The SSH key upload feature (lib/gitlab_keys.rb) in gitlab-shell before 1.7.3, as used in GitLab 5.0 before 5.4.1 and 6.x
A vulnerability in GitLab CE/EE affecting all versions from 11.10 prior to 15.1.6, 15.2 to 15.2.4, 15.3 to 15.3.2 allows
Remote code execution in GitLab CE/EE (all versions from 19.2 before 19.2.8, 19.3 before 19.3.5, and 19.4 before 19.4.2)
Sensitive credential and configuration disclosure in GitLab Enterprise Edition allows an authenticated user with Duo Cha
The Kubernetes integration in GitLab Enterprise Edition 11.x before 11.2.8, 11.3.x before 11.3.9, and 11.4.x before 11.4
Authenticated code execution on the GitLab server is possible in GitLab CE/EE 19.2 through 19.4.0, where an integer over
Authenticated users who can define or modify a CI/CD configuration can achieve remote code execution on GitLab CE/EE ser
Unauthenticated path traversal in the @zereight/mcp-gitlab Model Context Protocol server prior to version 2.1.27 allows
CVE.org
GitHub PoC
Exploit-DB