CVE-2026-93520: 
TigerVNC Análise e mitigação de vulnerabilidades

Visão geral

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).

Detalhes técnicos

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).

Impacto

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).

Explorabilidade

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).

Etapas de exploração

  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).

Indicadores de compromisso

  • 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.

Mitigação e soluções alternativas

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).

Reações da comunidade

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.

Recursos adicionais

Status correto da distribuição Linux

Corrija a disponibilidade entre as principais distribuições Linux e seus lançamentos.

Debian

Fixo

bookworm

xwayland

Afetado

sid

xwayland: 2:24.1.14-1

Fixo

trixie

xwayland

Afetado

Ubuntu

Desconhecido

bionic (esm-infra)

xorg

Não Afetado

devel

xorg

Não Afetado

focal (esm-infra)

xorg

Não Afetado

jammy

xorg

Não Afetado

noble

xorg

Não Afetado

resolute

xorg

Não Afetado

trusty (esm-infra-legacy)

xorg-server

Desconhecido

xenial (esm-infra-legacy)

xorg

Não Afetado

RHEL / CentOS

Fixo

RHEL 8

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

Fixo

RHEL 9

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

Fixo

RHEL 10

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

Fixo

Alpine

Fixo

edge

xorg-server: 21.1.25-r0, 24.1.14-r0

Fixo

Origem: Este relatório foi gerado usando IA

Relacionado TigerVNC Vulnerabilidades:

CVE ID

Gravidade

Pontuação

Tecnologias

Nome do componente

Exploit CISA KEV

Tem correção

Data de publicação

CVE-2026-93523HIGH7.8
  • TigerVNC logoTigerVNC
  • xorg-x11-server-Xwayland
NãoSimOct 28, 2026
CVE-2026-93521HIGH7.8
  • TigerVNC logoTigerVNC
  • xorg-x11-server-Xdmx-debuginfo
NãoSimOct 28, 2026
CVE-2026-93520HIGH7.8
  • TigerVNC logoTigerVNC
  • xorg-x11-server-Xephyr-debuginfo
NãoSimOct 28, 2026
CVE-2026-93524MEDIUM6.9
  • TigerVNC logoTigerVNC
  • xorg-x11-server-debugsource
NãoSimOct 28, 2026
CVE-2026-93536MEDIUM5.3
  • TigerVNC logoTigerVNC
  • xwayland-devel
NãoSimOct 28, 2026

Avaliação Gratuita de Vulnerabilidades

Avalie a sua postura de segurança na nuvem

Avalie suas práticas de segurança em nuvem em 9 domínios de segurança para avaliar seu nível de risco e identificar lacunas em suas defesas.

Avaliação de solicitação

Recursos adicionais da Wiz

Marque uma demonstração personalizada

Pronto para ver a Wiz em ação?

"A melhor experiência do usuário que eu já vi, fornece visibilidade total para cargas de trabalho na nuvem."
David EstlickCISO
"A Wiz fornece um único painel de vidro para ver o que está acontecendo em nossos ambientes de nuvem."
Adam FletcherDiretor de Segurança
"Sabemos que se a Wiz identifica algo como crítico, na verdade é."
Greg PoniatowskiChefe de Gerenciamento de Ameaças e Vulnerabilidades