X.Org X server CVE-2026-93536
CRITICALAttack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain authorized X client connection
-
DeliveryCraft malformed XKB/GLX/Present/XFIXES request
-
ExploitTrigger double-free or heap overflow in X server
-
ExecutionCorrupt heap and hijack control flow
-
ImpactExecute code or crash server for privilege escalation/DoS
Vulnerability Assessment
| Exploitation Conditions | Requires an authenticated X client - a connection already authorized to the X server (typically a local user session, or an X11 session forwarded to the attacker). The specific issues add concrete prerequisites: CVE-2026-93515 needs the Present and SYNC extensions enabled (default on) plus the ability to create cross-window notifies and destroy the target window; CVE-2026-93516 needs XI2 privileges to add/remove master devices; CVE-2026-93519 needs the XFIXES and XTEST extensions (default on) and creation of more than 100 pointer barriers followed by pointer motion; CVE-2026-93517/93518/93520 need the ability to send crafted GLX or XKB requests. Limiting factors: no remote-unauthenticated path exists - the attacker must first be able to speak the X protocol to the server, which restricts exploitation to local users or environments that expose the X socket (e.g. SSH X forwarding, shared/multiseat systems). Pure-Wayland deployments without Xwayland are not exposed. |
| Impact | No CVSS vector, EPSS score, KEV entry, or public POC is present in the provided data, so risk must be inferred from the advisory text alone. This is an umbrella advisory covering seven memory-corruption flaws in the X.Org X server (prior to xorg-server-21.1.25) and Xwayland (prior to xwayland-24.1.14): a double free (CVE-2026-88812), two use-after-frees (CVE-2026-93515, CVE-2026-93516), and multiple heap/stack buffer overflows (CVE-2026-93517, 93518, 93519, 93520). Every issue explicitly requires an 'authenticated X client' - i.e. a client already authorized to connect to the display server, which in practice means local session access - so none are remote-unauthenticated despite the inherent severity of the memory corruption. Impact ranges from denial of service (crash) to potential arbitrary code execution; because the X server historically runs with elevated privileges, successful exploitation can mean local privilege escalation. The bugs were reported by Trend Micro ZDI (multiple ZDI-CAN IDs), which indicates credible, validated research but not necessarily public exploit code or in-the-wild use. Net: real priority for multi-user and shared-desktop environments given ubiquity of X, but the local/authenticated precondition meaningfully lowers mass-exploitation likelihood versus a network-facing CVSS-critical flaw. Note the discrepancy that the advisory text enumerates seven CVEs while this record is filed under CVE-2026-93536, and two linked diffs (present_notify.c and glamor_transfer.c) correspond to the Present UAF and an additional glamor integer-overflow fix rather than to every listed CVE - verify exact mapping with the X.Org advisory. |
| Exploit ScenarioDerived | A local user (or a sandboxed/remote application tunneling X11, e.g. via SSH X forwarding) with an authorized connection to the X server sends crafted protocol requests - such as a malformed XkbSetGeometry TextDoodad, an oversized GLX RenderLarge request, or cross-window Present notifies followed by window destruction - to corrupt server heap memory. The attacker leverages the resulting double free, use-after-free, or buffer overflow to crash the server (DoS) or achieve arbitrary code execution in the X server's context, potentially escalating privileges. No public exploit is identified in the provided data, though the flaws were found and validated by Trend Micro ZDI. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 07, 2026
Multiple memory-safety defects in X.Org X server prior to xorg-server-21.1.25 and Xwayland prior to xwayland-24.1.14 let an authenticated X client corrupt server heap and stack memory through crafted XKB, Present, XInput2, GLX and XFixes protocol requests, causing crashes or potentially arbitrary code execution inside the X server process. The flaws include a double free in XKB SetGeometry TextDoodad handling, use-after-frees in the Present cross-window notify path and in XInput passive grabs after XIRemoveMaster, heap overflows in GLX RenderLarge and XkbResizeKeyType, an XFixes pointer-barrier event buffer overflow, and an incomplete-fix out-of-bounds write in the XKB ChangeKeycodeRange path. Exploitation requires a connection already authorized to the X server (typically a local user session, an X11-forwarded session, or a multi-seat/shared-display host); no public exploit code and no confirmed in-the-wild exploitation have been identified at time of analysis, and the assessed vector is CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H. Pure-Wayland deployments that do not run Xwayland are not exposed.
RemediationAI
Vendor-released patch: xorg-server-21.1.25 and xwayland-24.1.14 - upgrade to those versions, or apply the distribution backport corresponding to each individual commit referenced in the X.Org advisory (https://seclists.org/oss-sec/2026/q4/82), including https://gitlab.freedesktop.org/xorg/xserver/-/commit/1b6955c3108e for the Present notify use-after-free, https://gitlab.freedesktop.org/xorg/xserver/-/commit/89101a6c6618 for XkbResizeKeyType, and https://gitlab.freedesktop.org/xorg/xserver/-/commit/ad26c26bf795 for the glamor upload size guard. Until patching is possible, the effective control is to shrink who can reach the X socket, because every issue here requires an authorized X client: disable SSH X11 forwarding (sshd X11Forwarding no) or force X11UseLocalhost, avoid exposing the X server over TCP (remove the -listen tcp / nolisten_tcp setting), and tighten access via xhost/xauth and socket permissions - the trade-off is loss of legitimate remote-GUI use and possible breakage of applications relying on forwarded displays. Where the workload allows, run compositors without Xwayland (pure-Wayland sessions) to remove exposure entirely. Optional extensions can be disabled through xorg.conf where the server supports it (for example blocking GLX, and using the XInput/XI2 and XFixes configuration options) to remove the GLX RenderLarge, XInput passive-grab and XFixes pointer-barrier attack surfaces, at the cost of breaking hardware-accelerated rendering, advanced input mapping and clipboard/shape-related features. CVE-2026-93519 additionally requires more than 100 simultaneous pointer barriers, so restricting the creation of barrier-heavy clients or running a trusted, single-user session reduces that path, and CVE-2026-93516 requires the ability to add and remove master devices, which is only available to privileged XI2 clients. No vendor-released patch was missing in this case - fixes shipped with the advisory - and no public exploit code or confirmed active exploitation was identified at time of analysis, so these compensating controls should be treated as interim hardening rather than a substitute for upgrading.
Affected ProductsAI
The affected software is the X.Org X server at versions prior to xorg-server-21.1.25 and Xwayland at versions prior to xwayland-24.1.14, covering every issue bundled in this advisory (CVE-2026-88812, CVE-2026-93515, CVE-2026-93516, CVE-2026-93517, CVE-2026-93518, CVE-2026-93519 and CVE-2026-93520). Because these are server-side code paths, the exposure is on the machine running the X server or Xwayland and is reachable by any client permitted to speak the X protocol to it - local users on shared or multi-seat systems, users of SSH X11 forwarding, and remote clients where the X socket is exposed. Distributions and downstream products that package xorg-server or Xwayland (Linux distributions, BSD ports, appliance and thin-client images) inherit the issue until they ship 21.1.25/24.1.14 or backport the individual commits. Pure-Wayland environments that run no Xwayland instance are not affected, and no CPE identifiers were provided in the source data. The authoritative vendor advisory is the X.Org Security Advisory of October 07, 2026, mirrored at the oss-security posting https://seclists.org/oss-sec/2026/q4/82, with per-issue fixes at the referenced GitLab commits (for example https://gitlab.freedesktop.org/xorg/xserver/-/commit/1b6955c3108e, https://gitlab.freedesktop.org/xorg/xserver/-/commit/89101a6c6618 and https://gitlab.freedesktop.org/xorg/xserver/-/commit/ad26c26bf795).
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 X.Org X server is the reference X11 display server (and Xwayland is its X11 compatibility layer for Wayland compositors); both speak the X11 wire protocol to any client that can open the display socket or a forwarded channel. These advisories concern several distinct subsystems and root-cause classes. In the XKB layer, _CheckSetDoodad() frees doodad->text.text on an error path without NULLing the pointer, so the later _XkbClearDoodad() cleanup frees the same allocation again (CWE-415, double free, CVE-2026-88812); XkbResizeKeyType() stores a size computed as (nTotal * 15) / 10 into an unsigned short, truncating the value and producing an undersized allocation that is then overflowed (CWE-197/CWE-122, CVE-2026-93518); and CVE-2026-93520 is an incomplete fix of commit a3171732d, where XkbAllocNames() still sizes names->keys as max_key_code+1 while the ChangeKeycodeRange memset uses the potentially larger MAP_LENGTH, giving a heap out-of-bounds write. The Present extension's present_clear_window_notifies() frees window_priv without first unlinking the per-window notify list entries, leaving stale entries that are traversed after the window is destroyed or reused (CWE-416, CVE-2026-93515 - fixed by commit 1b6955c3108e, which replaces the unsafe list walk with xorg_list_for_each_entry_safe and adds an xorg_list_del in present_free_window_notify). XInput stores a raw DeviceIntPtr as GrabRec.modifierDevice with no lifetime management, so XIRemoveMaster frees the device while a passive grab still references it (CWE-416, CVE-2026-93516). GLX RenderLarge allocates a buffer of cmdlen bytes but memcpy's dataBytes into it without validating dataBytes <= cmdlen (CWE-122, CVE-2026-93517), and input_constrain_cursor() writes barrier events into a fixed-size buffer with no bound check, overflowing once more than 100 XFixes pointer barriers are active (CWE-121/122, CVE-2026-93519). A related upstream change in glamor/glamor_transfer.c (commit ad26c26bf795) adds an overflow guard when computing the temporary upload buffer height for depth-mismatched drawables, reflecting the same class of unchecked size arithmetic. No CPE strings were supplied with the source data, so product mapping is taken from the advisory text and fixed-version identifiers.
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
X protocol access requires an authorized local client so AV:L/PR:L; requests are straightforward to craft (AC:L); memory corruption in a privileged server yields full C/I/A impact.
Description PRE-NVD
Articles & Coverage 1
Zero Day Initiative Advisories
Executive ViewAI
Multiple memory-safety flaws in the X.Org X server and Xwayland - the display-server software behind graphical Linux/Unix desktops, X11-forwarded sessions, and shared or multi-seat hosts - let an already-authorized display client corrupt server memory and crash or potentially execute code inside the display-server process. Leadership should care because the display server sits beneath every graphical session on the host, so a compromise there can affect all users and applications rendered through it, not just the initiating client. No vendor-released patch was identified at time of analysis, so near-term risk must be managed through access restrictions and segmentation while fixed builds are validated.
No vendor-released patch identified at time of analysis. Interim mitigations: disable X server TCP listening (-nolisten tcp), enforce Xauthority/xhost access control, disable untrusted X11 forwarding (avoid ssh -Y), migrate to native Wayland or isolate X clients in nested display servers (Xephyr/Xpra), confine the X server with SELinux/AppArmor, restrict multi-seat/shared-display trust boundaries so only trusted users share a display, and monitor display-server crashes and logs for exploitation attempts.
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.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
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