Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessLure client to malicious/compromised X server
-
ExploitSend crafted protocol reply with inconsistent lengths
-
ExecutionTrigger out-of-bounds read in client library parser
-
ImpactCrash X client (denial of service)
Vulnerability Assessment
| Exploitation Conditions | Exploitation requires the victim's X client application (linked against the affected libXrender/libXtst/libX11 code) to connect to and receive replies from a malicious or compromised X server - this inverts the normal X11 trust model, in which the client trusts its server. The crafted reply carries inconsistent length/count fields (e.g. mismatched numSubpixel/numScreens in XRenderQueryFormats, or malformed record/datum sizing in XRecord) that the parser walks past. Limiting factors: default setups connecting only to a local, trusted X server are not exposed; realistic exposure comes from untrusted-display scenarios such as X11 forwarding to or from an attacker-controlled host; and the demonstrated impact is a client crash (denial of service), not code execution, which bounds the severity. |
| Impact | No CVSS vector, EPSS score, KEV entry, or POC indicator was supplied for CVE-2026-109090 specifically, so quantitative exploitation signals are absent and there is no public exploit identified at time of analysis. The vulnerability belongs to an aggregated X.Org advisory (Oct 16, 2026) covering client-side memory-safety flaws in the X client libraries; the linked diffs tie this ID to libXrender (bounds hardening in XRenderQueryFormats) and libXtst (OOB/livelock fix in XRecord parse_reply_call_callback, a follow-up to CVE-2016-7952). Across the itemized sibling CVEs the pattern is consistent: a malicious or compromised X server sends a crafted reply that drives an out-of-bounds read (or, for one XKB case, an out-of-bounds write) in the client, yielding a client crash - availability impact, rated MEDIUM 5.3-6.5. The decisive risk limiter is the inverted trust model: these are client-side bugs triggered by a hostile server, whereas X clients normally trust the server they connect to, so exploitation requires luring a client to an attacker-controlled display. That makes this a real-but-modest-priority patch: ubiquitous library, but availability-only impact and an elevated-trust precondition keep real-world risk low rather than critical. CAVEAT: the input bundles many CVEs and does not itemize CVE-2026-109090 individually, so its exact component and precise impact are inferred from the linked diffs and should be verified against the per-CVE NVD/X.Org entry. |
| Exploit ScenarioDerived | An attacker stands up or compromises an X server (for example a hostile display reached via X11 forwarding or an untrusted remote session) and waits for a victim to run an X client linked against libXrender or libXtst. When the client issues a normal request, the malicious server returns a crafted reply with inconsistent length or count fields, driving an out-of-bounds read during parsing and crashing the client. No public exploit code has been 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
Multiple out-of-bounds read and write defects in the X.Org X client libraries (libX11, libXi, libXpm, libXrender, libXtst) let a malicious or compromised X server send crafted replies that drive client-side parsers past the end of the received buffer, crashing the linked application and, in the libX11 XKB case, writing past an allocated array. Affected are libX11 before 1.8.14, libXi before 1.8.4, libXpm before 3.5.20, libXrender before 0.9.13 and libXtst before 1.2.6; exploitation requires the victim's client to connect to an untrusted server and, per the assessed vector CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H (6.5), the craftwork is unauthenticated but needs user interaction, with demonstrated impact limited to denial of service rather than code execution. No CVSS vector, EPSS score, KEV entry or POC indicator was supplied for CVE-2026-109090 specifically, so no public exploit identified at time of analysis and quantitative exploitation signals are absent.
RemediationAI
Vendor-released patches: upgrade to libX11 1.8.14, libXi 1.8.4, libXpm 3.5.20, libXrender 0.9.13 and libXtst 1.2.6, as published in the X.Org advisory at https://seclists.org/oss-sec/2026/q4/212; downstream distributions should track their own updated packages since these are shared libraries requiring a rebuild or restart of dependent client applications for the fix to take effect. If backporting rather than upgrading wholesale, the advisory notes that the fixed releases also contain additional code hardening without CVE assignments, so cherry-picking only the CVE-tagged commits (for example libX11 6d4432b13, f263bbca2, 924fc91f0, 797eaf0bd; libXi 9a5f8636b, 59f8dece8, f885619bb, e2ec4a1c8, 2e5ecd187; plus libXrender 0564bce54 and libXtst ac60f5f47) may leave further hardening behind. As compensating controls, avoid connecting X clients to untrusted or attacker-controlled displays, restrict or disable X11 forwarding over SSH (ssh -X/-Y) to known-good hosts, require authenticated transport such as Xauthority or SSH forwarding rather than raw TCP displays, and where practical run remote GUI applications inside a trusted nested or proxy display (for example Xephyr or xpra); the trade-off is loss of the remote-GUI convenience these libraries exist to provide, and note these measures reduce exposure to forged server replies rather than fixing the parser defects, which is why patching remains the primary action. The assessed impact is client crash and denial of service, with no code execution demonstrated in the supplied data.
Affected ProductsAI
Affected are X.Org X client library builds prior to the fixed releases: libX11 before 1.8.14 (covering the XKB action parser, XIM attribute and trigger-key parsers, and the byte-oriented codeset parser issues), libXi before 1.8.4 (covering XQueryDeviceState and the XI2 class parsing, XI_DeviceChanged and XIQueryDevice reply paths), libXpm before 3.5.20, libXrender before 0.9.13 (XRenderQueryFormats numSubpixel/numScreens and length validation) and libXtst before 1.2.6 (record/datum parsing in parse_reply_call_callback). These are widely distributed client-side shared libraries, so exposure follows whichever releases a given distribution or downstream application links against; the vendor advisory at https://seclists.org/oss-sec/2026/q4/212 is the authoritative list, with per-component commit references including https://gitlab.freedesktop.org/xorg/lib/libxrender/-/commit/0564bce54, https://gitlab.freedesktop.org/xorg/lib/libxtst/-/commit/ac60f5f47 and https://gitlab.freedesktop.org/xorg/lib/libx11/-/commit/924fc91f0. No CPE identifiers or EPSS data were supplied with this record, so version-to-package matching must be performed against the local distribution's package manifest.
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
These libraries implement the client half of the X11 protocol, where the client traditionally trusts its display server; the flaws invert that trust assumption by consuming wire-supplied length and count fields without bounds validation. The referenced XRenderQueryFormats fix adds checks that numSubpixel does not exceed numScreens and that numDepths, numVisuals, numSubpixel and the reply length stay within INT_MAX-derived limits before allocating XRenderInfo; the XRecord parse_reply_call_callback fix addresses datum_bytes and reply length handling (a follow-up to the earlier CVE-2016-7952 livelock fix) so malformed element sizing cannot advance the parser past end. Additional issues in the same advisory ship under other CVE IDs: an out-of-bounds write (CWE-787 class) in libX11's XKB action parser when a XkbGetMap reply uses keycodes beyond max_keycode + 1, out-of-bounds reads (CWE-125 class) in libX11's XIM attribute and trigger-key parsers, an out-of-bounds read in libX11's byte-oriented codeset parser for multi-byte locales such as GBK and Big5, and a family of out-of-bounds reads in libXi's size_classes()/copy_classes()/XQueryDeviceState()/XListInputDevices() paths driven by inconsistent class lengths, num_valuators, num_buttons, num_keycodes or device-name length bytes. No CPE strings were included in the supplied data, so exact platform and distribution package mappings were not independently confirmed from this feed.
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 server reply is reachable over networked X11 (AV:N) with no auth to the protocol (PR:N), but the user must run a client against a hostile server (UI:R); impact is a client crash only (A:H, C/I:N).
Description PRE-NVD
Articles & Coverage 1
Executive ViewAI
Multiple memory-safety defects in X.Org X client libraries (libX11, libXi, libXpm, libXrender, libXtst) can cause denial of service in graphical applications when a user connects to an untrusted X server. The vulnerability is unauthenticated but requires user interaction, and no public exploit identified at time of analysis, limiting immediate risk to availability rather than data compromise. Leadership should prioritize patching to the vendor-released versions and restrict connections to untrusted X servers to protect affected users.
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