CVE-2026-93520: 
TigerVNC Analyse et atténuation de la vulnérabilité

Aperçu

CVE-2026-93520 is a heap-based buffer overflow vulnerability in the X Keyboard Extension (XKB) of the X.org X server and XWayland, caused by mismatching size calculations between XkbAllocNames and ChangeKeycodeRange. Authenticated local X clients can exploit this flaw to crash the X server or potentially execute arbitrary code in the X server's context. Affected software includes X.org X server before version 21.1.25 and XWayland before version 24.1.14. The vulnerability was reported on October 7, 2026, and published to the NVD on October 28, 2026. It carries a CVSS v3.1 base score of 7.8 (High) (Red Hat Advisory, GitHub Advisory).

Détails techniques

The root cause is an incomplete fix regression from commit a3171732d ("xkb: Always use MAP_LENGTH keymap size"), which converted most XKB allocation functions to use MAP_LENGTH (256) but missed XkbAllocNames(). As a result, XkbAllocNames() allocates names->keys using max_key_code + 1, while ChangeKeycodeRange() performs a memset up to MAP_LENGTH. When a keymap with max_key_code < 255 is loaded (e.g., sun(type6) with max_key_code=132) and a subsequent SetMap request extends maxKeyCode to 255, the memset writes past the undersized allocation, causing a heap out-of-bounds write (CWE-787, CWE-122). The fix, committed to xkb/XKBAlloc.c, changes the allocation to use MAP_LENGTH consistently. The vulnerability was discovered by an anonymous researcher working with TrendAI Zero Day Initiative (ZDI-CAN-31941) (Red Hat Bugzilla, GitHub Advisory).

Impact

Successful exploitation allows any authenticated local X client to trigger a heap out-of-bounds write in the X server process, leading to arbitrary code execution in the X server's security context or a denial of service via crash. The confidentiality, integrity, and availability impacts are all rated High, as an attacker gaining code execution within the X server could access sensitive display data, manipulate graphical sessions, or disrupt all users relying on the X server. The scope is limited to the local system, but on multi-user systems this could enable privilege escalation or disruption of other users' graphical sessions (Red Hat Bugzilla, GitHub Advisory).

Exploitabilité

No public proof-of-concept exploit code is known to exist, and there is no evidence of in-the-wild exploitation at this time. The vulnerability requires authenticated local access to the X server, limiting the attack surface compared to network-exploitable flaws. The EPSS score is approximately 0.202%, indicating a low near-term exploitation probability. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. It was discovered through the TrendAI Zero Day Initiative (ZDI-CAN-31941) (Red Hat Bugzilla, GitHub Advisory).

Étapes d’exploitation

  1. Reconnaissance: Identify a target system running X.org X server before version 21.1.25 or XWayland before 24.1.14 with local user access to an X session.
  2. Authenticate to X server: Obtain a valid X client connection (e.g., via a local user account with access to the X display, typically DISPLAY=:0).
  3. Load a keymap with a small max_key_code: Send an XKB request to load a keycodes component with max_key_code < 255 (e.g., sun(type6) with max_key_code=132), causing XkbAllocNames() to allocate names->keys with an undersized buffer.
  4. Trigger keycode range extension: Send a subsequent SetMap or ChangeKeycodeRange XKB request that extends maxKeyCode to 255, causing XkbChangeKeycodeRange() to memset names->keys up to MAP_LENGTH (256), writing past the end of the allocated buffer.
  5. Achieve heap corruption: The out-of-bounds write corrupts adjacent heap memory, potentially enabling arbitrary code execution in the X server process or causing a denial of service crash (Red Hat Bugzilla).

Indicateurs de compromis

  • Logs: X server crash logs or core dumps in /var/log/Xorg.0.log or systemd journal entries showing X server process termination; error messages related to XKB or keycode range operations.
  • Process: Unexpected child processes spawned by the X server process (e.g., shells or network tools) if code execution is achieved; repeated X server restarts (e.g., via display manager logs in /var/log/gdm/ or /var/log/lightdm/).
  • File System: Unexpected files written to directories accessible by the X server user (e.g., /tmp, X server home directory); new or modified files in X server configuration directories.
  • Network: Unusual outbound connections from the X server process if a reverse shell payload is executed post-exploitation.

Atténuation et solutions de contournement

Upgrade X.org X server to version 21.1.25 or later, and XWayland to version 24.1.14 or later, which contain the one-line fix in xkb/XKBAlloc.c (commit b941a473e06f26a407a9adb15759be79f7418e86). Red Hat has issued multiple errata addressing this issue: RHSA-2026:84574 (RHEL 9), RHSA-2026:85191 (RHEL 10), RHSA-2026:85193 (RHEL 9), RHSA-2026:86907 (RHEL 8), and RHSA-2026:89747 (RHEL 8). SUSE has released SUSE-SU-2026:4636-1, SUSE-SU-2026:4645-1, SUSE-SU-2026:4663-1, and SUSE-SU-2026:4835-1. As a workaround where patching is not immediately possible, restrict local user access to X server connections and consider implementing access controls limiting which authenticated users can interact with the X Keyboard Extension (Red Hat Bugzilla, Red Hat Advisory).

Réactions de la communauté

The vulnerability was part of a broader batch of 12 CVEs patched in X.org Server 21.1.25 and XWayland 24.1.14, which received coverage from security news outlets including Help Net Security and Gaming on Linux, noting the significance of the release (Help Net Security, Gaming on Linux). Community discussion was moderate, with mentions on Mastodon and security aggregators. No notable individual researcher commentary specific to this CVE was identified beyond the ZDI discovery credit.

Ressources supplémentaires

État de correction de la distribution Linux

Corrigez la disponibilité entre les grandes distributions Linux et leurs versions.

Debian

Fixé

bookworm

xwayland

Affecté

sid

xwayland: 2:24.1.14-1

Fixé

trixie

xwayland

Affecté

Ubuntu

Inconnu

bionic (esm-infra)

xorg

Non affecté

devel

xorg

Non affecté

focal (esm-infra)

xorg

Non affecté

jammy

xorg

Non affecté

noble

xorg

Non affecté

resolute

xorg

Non affecté

trusty (esm-infra-legacy)

xorg-server

Inconnu

xenial (esm-infra-legacy)

xorg

Non affecté

RHEL / CentOS

Fixé

RHEL 8

:appstream:xorg-x11-server-0:1.20.11-28.el8_10.5.src

Fixé

RHEL 9

:appstream:xorg-x11-server-0:1.20.11-34.el9_8.5.src

Fixé

RHEL 10

xorg-x11-server-Xwayland-0:24.1.9-4.el10_2.4.src

Fixé

Alpine

Fixé

edge

xorg-server: 21.1.25-r0, 24.1.14-r0

Fixé

Source: Ce rapport a été généré à l’aide de l’IA

Connexe TigerVNC Vulnérabilités :

CVE ID

Gravité

Partition

Technologies

Nom du composant

Exploit CISA KEV

A corrigé

Date de publication

CVE-2026-93523HIGH7.8
  • TigerVNC logoTigerVNC
  • xorg-x11-server-source
NonOuiOct 28, 2026
CVE-2026-93521HIGH7.8
  • TigerVNC logoTigerVNC
  • xorg-x11-server-Xnest-debuginfo
NonOuiOct 28, 2026
CVE-2026-93520HIGH7.8
  • TigerVNC logoTigerVNC
  • xorg-x11-server-Xwayland-devel
NonOuiOct 28, 2026
CVE-2026-93524MEDIUM6.9
  • TigerVNC logoTigerVNC
  • tigervnc-icons
NonOuiOct 28, 2026
CVE-2026-93536MEDIUM5.3
  • TigerVNC logoTigerVNC
  • xorg-x11-server-Xwayland.src
NonOuiOct 28, 2026

Évaluation gratuite des vulnérabilités

Évaluez votre posture de sécurité cloud

Évaluez vos pratiques de sécurité cloud dans 9 domaines de sécurité afin d’évaluer votre niveau de risque et d’identifier les lacunes dans vos défenses.

Évaluation de la demande

Ressources Wiz supplémentaires

Obtenez une démo personnalisée

Prêt(e) à voir Wiz en action ?

"La meilleure expérience utilisateur que j’ai jamais vue, offre une visibilité totale sur les workloads cloud."
David EstlickRSSI
"Wiz fournit une interface unique pour voir ce qui se passe dans nos environnements cloud."
Adam FletcherChef du service de sécurité
"Nous savons que si Wiz identifie quelque chose comme critique, c’est qu’il l’est réellement."
Greg PoniatowskiResponsable de la gestion des menaces et des vulnérabilités