Skip to main content

X.Org X Server CVE-2026-93515

HIGH
2026-10-07
View

Attack ChainAIDerived

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

  1. Access
    Authenticated X client connects to display
  2. Delivery
    Create cross-window Present notifies (Present+SYNC)
  3. Exploit
    Destroy target window leaving stale list entries
  4. Execution
    Trigger traversal of freed window_priv
  5. Impact
    X server crash or heap information disclosure

Vulnerability Assessment

Exploitation Conditions

Requires an authenticated X client (a client permitted to connect to the X display) and that BOTH the Present and SYNC extensions are enabled - they are enabled by default per the advisory. The client must create cross-window Present notify entries pointing at a separate target window, then destroy that target window so the freed window_priv's un-unlinked notify entries are later traversed. Limiting factors: this is not remotely reachable without display access, so exposure depends on who can open an X connection (local users, SSH X11 forwarding, nested/sandboxed sessions, or kiosk/multi-user hosts); hardened setups that disable Present/SYNC or restrict client access reduce exposure. Affected: X.Org X server before 21.1.25 and Xwayland before 24.1.14.

Impact

No CVSS vector, EPSS score, KEV listing, or public POC is present in the input, so quantitative exploitation signals are entirely absent and risk must be inferred from the advisory text and the fix commit. The flaw is a use-after-free in the Present extension (present_clear_window_notifies() fails to unlink notify entries before freeing window_priv); the X.Org advisory limits the realistic impact to denial of service (crash) or potential information disclosure - notably it does NOT claim arbitrary code execution for this CVE, unlike sibling issues in the same advisory (e.g. the GLX RenderLarge overflow CVE-2026-93517). Exploitation requires an authenticated X client (a client already permitted to connect to the display) and both the Present and SYNC extensions, which are enabled by default - this is an authorization-scoped, typically local-access bug rather than a remote-unauthenticated one. Status: no public exploit identified at time of analysis; this is ZDI-reported (ZDI-CAN-31830) and vendor-patched, with no evidence of exploitation. Overall this is a credible but moderate-priority local privilege/stability issue for multi-user or sandbox-escape contexts, not a high-urgency internet-facing threat. Key missing data: official CVSS and CWE are N/A in the input, so severity scoring here is independently assessed and should be reconciled with the eventual NVD/vendor score.

Exploit ScenarioDerived

A local or otherwise authorized X client connects to the X server, creates cross-window Present notify registrations referencing another window, then destroys the target window so that stale notify list entries are later traversed against freed memory. The resulting use-after-free crashes the X server (disrupting the entire graphical session) or may leak adjacent heap contents; no public exploit code is known, and triggering requires a client already authenticated to the display.

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 07, 2026

Use-after-free in the Present extension of X.Org X server before 21.1.25 and Xwayland before 24.1.14 lets an authenticated X client crash the display server and potentially expose limited process memory. An attacker with the ability to open an X display connection creates cross-window Present notify entries pointing at a separate target window and then destroys that window, so the freed per-window notify list is traversed after present_clear_window_notifies() releases the window's private data without unlinking the entries; both the Present and SYNC extensions must be enabled, which they are by default. The issue is a local, low-privilege, user-interaction-free memory-safety bug (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:H), and no CISA KEV listing, EPSS score, or public exploit code was identified at time of analysis.

RemediationAI

Vendor-released patch: upgrade to X.Org X server 21.1.25 or Xwayland 24.1.14 (or later), which contain the fix commit 1b6955c3108e (see https://gitlab.freedesktop.org/xorg/xserver/-/commit/1b6955c3108e and the advisory at https://seclists.org/oss-sec/2026/q4/82); distributions should be tracked for their rebuilt packages since both xorg-server and xwayland lines are affected. If an immediate upgrade is not possible, reduce exposure by limiting who can open an X display connection: require Xauthority cookies, run the server with -nolisten tcp, avoid untrusted X11 forwarding over SSH, and isolate untrusted clients inside a nested server (Xwayland, Xephyr, or xpra) so a crash is contained to that session rather than the host display; the trade-off is added session complexity and the nested server inherits the same bug. Disabling the Present extension (or SYNC, on which Present depends) removes the vulnerable code path but breaks compositing, tear-free presentation, and many modern toolkits and compositors, so it is only practical on locked-down, non-graphical or kiosk deployments that do not need those features.

Affected ProductsAI

X.Org X server versions before 21.1.25 and Xwayland versions before 24.1.14 are affected, which in practice covers Linux and BSD distributions shipping xorg-server, and Wayland compositors or desktop environments that ship Xwayland (the advisory notes the two remaining affected package lines as xorg-server and xwayland). The Present and SYNC extensions must be enabled on the target server for exploitation, and they are enabled by default per the X.Org advisory. The primary vendor advisory is the oss-security posting at https://seclists.org/oss-sec/2026/q4/82, and the specific fix for this CVE is commit 1b6955c3108e at https://gitlab.freedesktop.org/xorg/xserver/-/commit/1b6955c3108e; related commits referenced for the wider advisories include https://gitlab.freedesktop.org/xorg/xserver/-/commit/ad26c26bf795 and https://gitlab.freedesktop.org/xorg/xserver/-/commit/89101a6c6618. No CPE identifiers were provided in the input data, so exact platform package names should be derived from each distribution's advisory.

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 Present extension is the X server interface compositors use to hand off rendered pixmaps for display, and it maintains per-window state in a window private structure whose 'notifies' field is an xorg_list of present_notify entries, including cross-window notifies created by clients to receive updates about a different window. In the vulnerable code, present_clear_window_notifies() walked that list with the non-safe xorg_list_for_each_entry macro while calling present_free_window_notify() on each element, and present_free_window_notify() did not remove the entry from the list; the fix changes the loop to xorg_list_for_each_entry_safe (adding a temporary pointer) and adds an xorg_list_del() call inside present_free_window_notify(), so freed nodes can no longer be reached through a dangling list head. The underlying defect is the use-after-free class (CWE-416) of memory-safety bug: the window private structure is freed while stale list entries still reference it, and any later traversal of that list - triggered when the window is destroyed or its memory reused - dereferences the freed entries. The Present extension depends on SYNC, which is why the advisory notes both must be enabled. No CPE strings were supplied in the input; the advisory scope is xorg-server prior to 21.1.25 and xwayland prior to 24.1.14.

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.1 MEDIUM

X display access makes it local (AV:L) and authenticated (PR:L); trigger is reliable (AC:L); impact is server crash (A:H) with only potential limited info leak (C:L) and no integrity effect.

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

Description PRE-NVD

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

Executive ViewAI

Why It Matters

A memory-safety flaw in the Present extension of X.Org X server (versions before 21.1.25) and Xwayland (before 24.1.14) lets any authenticated local user who can open an X display connection crash the display server, terminating every session hosted on that system and potentially exposing a limited amount of process memory. Organizations running multi-user Linux desktops, VDI/thin-client estates, jump hosts, or kiosk and lab machines carry the greatest exposure, because one low-privileged user can disrupt all other users of the same host, creating a localized availability and productivity risk with a modest confidentiality concern. There is no confirmed active exploitation and no public exploit code identified at time of analysis, so this is a patch-hygiene and privilege-boundary issue rather than an emergency internet-facing threat.

Business Impact: Medium
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: restrict local X display access to trusted accounts and services through strict Xauthority/xhost controls; disable or avoid the Present and SYNC extensions where the environment permits; isolate or sandbox X clients so one user's session cannot affect another (per-user display servers, containers, or VDI session separation); configure display manager and Xwayland/X server units to restart automatically to limit outage duration; and monitor for unexpected display server crashes as a possible indicator of attempted exploitation.

Threat Intelligence Overview

Prevalence
High
X.Org X server ubiquitous on Linux/Unix desktops and Xwayland compatibility layers
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.

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.

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