Skip to main content

X.Org X Libraries CVE-2026-109089

HIGH
2026-10-16
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Lure client to malicious/compromised X server
  2. Exploit
    Server sends crafted reply with inconsistent length fields
  3. Execution
    Client parser reads past buffer bounds
  4. Impact
    Client process crashes (denial of service)

Vulnerability Assessment

Exploitation Conditions

Exploitation requires the victim X client to connect to and parse replies from a malicious or compromised X server (for libXtst/XRecord and libXrender parsing paths) - the attacker must control the server side of the X protocol connection, e.g. via X11 forwarding (ssh -X / -Y) to a hostile host or a compromised display server. This inverts the normal trust assumption that the X server is trusted, which is the primary limiting factor. Per the advisory's sibling CVEs the impact is confined to out-of-bounds reads causing client crashes (availability only); user interaction is effectively required (the user must launch/connect the affected client), and there is no indication of code execution or data disclosure for this read-class issue. Affected only prior to libXrender 0.9.13 / libXtst 1.2.6 (and the other listed library versions).

Impact

This entry (CVE-2026-109089) is part of the October 16, 2026 X.Org Security Advisory covering a batch of client-library parsing flaws in libX11, libXi, libXpm, libXrender, and libXtst. No CVSS vector, EPSS score, KEV listing, or POC is provided for this specific CVE ID in the input, so quantitative exploitation signals are MISSING and cannot be compared. The references and linked diffs tie this ID to libXrender (XRenderQueryFormats bounds-checking of numSubpixel/length in Xrender.c) and/or libXtst (XRecord parse_reply_call_callback loop-livelock/OOB hardening in XRecord.c), but the advisory text itself does not enumerate a CVE-2026-109089 line, so the exact sub-issue mapping is INFERRED from the reference commits, not confirmed. Across the entire advisory the pattern is consistent: a malicious or compromised X server (or XIM server) sends crafted replies/events that drive client-side parsers past buffer bounds, yielding out-of-bounds reads and client crashes (the sibling CVEs with vectors all score MEDIUM 5.3-6.5 with C/I mostly None and A:H). The dominant real-world limiter is the inverted trust model: these libraries normally parse data from a trusted local X server, so exploitation presupposes the client connecting to an attacker-controlled or compromised server (e.g., X11 forwarding to a hostile host). Net assessment: a real hardening priority for distributions to ship, but low practical urgency as a denial-of-service class issue absent any evidence of active exploitation or confidentiality/integrity impact in this CVE.

Exploit ScenarioDerived

A user runs an X11 client that connects to a malicious or compromised X server - for example via SSH X11 forwarding (ssh -X) to an untrusted remote host. The hostile server returns a crafted reply (e.g., a QueryFormats/RenderQueryFormats reply or an XRecord reply with inconsistent length fields), and the client library parses it without adequate bounds checks, reading past its buffer and crashing the client. No public exploit is identified in the provided data.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 16, 2026

Out-of-bounds reads in the X.Org X client libraries - libXrender before 0.9.13 and libXtst before 1.2.6 in the parsing paths covered by this entry, alongside the sibling fixes shipped in libX11 1.8.14, libXi 1.8.4 and libXpm 3.5.20 - let a malicious or compromised X server crash connecting clients by returning malformed protocol replies. The clients trust length, count and category fields supplied by the server (for example the depth, visual and subpixel counts used when building XRenderInfo, and the datum/category handling in libXtst's XRecord reply parser) without validating them against the actual received buffer, so parsing walks past the end of the packet and causes a denial of service. 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 attacker is unauthenticated from the network but exploitation requires user interaction - the victim must launch or connect an affected client to the hostile server (for example via ssh -X/-Y X11 forwarding to a compromised display) - and there is no public exploit identified at time of analysis.

RemediationAI

Vendor-released patches: upgrade to libXrender 0.9.13, libXtst 1.2.6, and - to close the companion issues from the same advisory - libX11 1.8.14, libXi 1.8.4 and libXpm 3.5.20; the upstream advisory notes that the libX11 1.8.14 and libXi 1.8.4 releases also contain additional code-hardening fixes without CVE identifiers, so distributors cherry-picking individual commits should take the full release set rather than only the CVE-tagged changes (see https://seclists.org/oss-sec/2026/q4/212 and the fix commits https://gitlab.freedesktop.org/xorg/lib/libxrender/-/commit/0564bce54 and https://gitlab.freedesktop.org/xorg/lib/libxtst/-/commit/ac60f5f47). Because the root cause is untrusted server-side reply data reaching client parsers, the practical compensating control is to stop running vulnerable clients against servers you do not control: set ForwardX11 no (or at minimum keep ForwardX11Trusted no rather than enabling ssh -Y) in the SSH client configuration when connecting to untrusted hosts, and avoid ssh -X/-Y sessions to shared or hostile systems, accepting the trade-off that remote GUI applications then cannot be displayed and users must run alternative transports such as a trusted VNC/Wayland session; for environments that only need XRecord-style functionality, avoiding the RECORD extension and the affected XRender format-query paths reduces exposure, at the cost of losing recording/format introspection features. Note that enabling trusted forwarding (ssh -Y) increases the server's privileges over the client and is not an acceptable mitigation. Until patched versions are deployed, treat X11-forwarded sessions to untrusted hosts as a denial-of-service risk to locally running clients.

Affected ProductsAI

Affected are the X.Org client library implementations prior to the October 16, 2026 security releases: 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; the parsing defects attributed to this entry are the libXrender and libXtst paths fixed in libXrender 0.9.13 and libXtst 1.2.6 respectively. Distributions and applications ship these libraries as shared objects consumed by essentially every X11 client, so any system with an unpatched libXrender/libXtst (and the other listed libraries) that connects to an untrusted or compromised X server is exposed. No CPE strings were supplied in the source data, which should be treated as a gap to be filled from vendor/distro advisories. The full upstream advisory text, including the per-CVE fix commits, is at https://seclists.org/oss-sec/2026/q4/212, with the relevant fix commits at https://gitlab.freedesktop.org/xorg/lib/libxrender/-/commit/0564bce54, https://gitlab.freedesktop.org/xorg/lib/libxtst/-/commit/ac60f5f47, and the related libX11 hardening commit https://gitlab.freedesktop.org/xorg/lib/libx11/-/commit/924fc91f0.

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

X11 is a client-server protocol in which the X client libraries (libX11, libXi, libXrender, libXtst, libXpm, and others) parse binary replies and events generated by the X server. The normal deployment assumption is that the server side is trusted, but X11 forwarding (ssh -X / -Y) or a compromised display server inverts that trust boundary, placing the server under attacker control while the vulnerable parsing code runs in the victim's client process. This entry corresponds to the read-class defects fixed by the XRenderQueryFormats numeric sanity checks in libXrender (adding the extra guard so replies whose numDepths/numVisuals/numSubpixel/numScreens/length values cannot be valid are rejected before Xcalloc and the subsequent walk over the reply) and by the libXtst XRecord parse_reply_call_callback hardening (rejecting unknown categories, zero-length data, and malformed elements that neither grow nor advance the index, as a follow-up to the earlier CVE-2016-7952 fix). The underlying weakness class is CWE-125, Out-of-bounds Read: server-controlled length fields are consumed as loop and memcpy bounds before being checked against the size of the received packet. Because these are read-only overruns of protocol buffers, the assessed impact is limited to availability (client crash); no CPE strings, CVSS vector or CWE were attached in the raw advisory data, and the authoritative assessed vector is the one recorded by our analysis above.

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

vuln.today AI 6.5 MEDIUM

Malicious server reply reachable over networked X11 forwarding (AV:N), no auth (PR:N), but victim must connect a client (UI:R); OOB read crashes the client, so A:H with C:N/I:N.

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Description PRE-NVD

Disclosed via oss-security. NVD scoring and full description are pending.

Threat Intelligence Overview

Prevalence
High
core X11 client libraries on nearly all Linux/BSD desktop installations
Data Quality
1 sources
Confidence: Low

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS N/A
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

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.

More in Gitlab

View all
CVE-2021-22205 CRITICAL POC
10.0 Apr 23

An issue has been discovered in GitLab CE/EE affecting all versions starting from 11.9. Rated critical severity (CVSS 10

CVE-2023-7028 CRITICAL POC
10.0 Jan 12

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.

CVE-2021-22175 CRITICAL POC
9.8 Jun 11

When requests to the internal network for webhooks are enabled, a server-side request forgery vulnerability in GitLab af

CVE-2026-85706 CRITICAL POC
10.0 Sep 12

Unauthenticated arbitrary file read in GitLab CE/EE lets remote attackers retrieve files from the GitLab server via the

CVE-2013-4490 MEDIUM POC
6.5 May 13

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

CVE-2022-2992 CRITICAL POC
9.9 Oct 17

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

CVE-2026-97229 CRITICAL POC
10.0 Oct 13

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)

CVE-2026-87719 CRITICAL POC
9.9 Sep 12

Sensitive credential and configuration disclosure in GitLab Enterprise Edition allows an authenticated user with Duo Cha

CVE-2018-18843 CRITICAL POC
10.0 Dec 04

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

CVE-2026-93577 CRITICAL POC
9.9 Sep 23

Authenticated code execution on the GitLab server is possible in GitLab CE/EE 19.2 through 19.4.0, where an integer over

CVE-2026-89078 CRITICAL POC
9.9 Sep 23

Authenticated users who can define or modify a CI/CD configuration can achieve remote code execution on GitLab CE/EE ser

CVE-2026-61560 CRITICAL POC
9.8 Sep 15

Unauthenticated path traversal in the @zereight/mcp-gitlab Model Context Protocol server prior to version 2.1.27 allows

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy