// 6 ZERO-DAY · 8 CVE · 4 EXPLOIT NELLE ULTIME 24H
Una vulnerabilità use-after-free in CommonMakeCurrent consente a un attaccante locale di elevare i privilegi a root. Il meccanismo è stato pubblicato il 15 luglio 2026.

Il 15 luglio 2026 il Trend Micro Zero Day Initiative ha reso pubblica l'advisory ZDI-26-405 su una vulnerabilità in X.Org Server, il display server storico dei sistemi Linux e Unix. La stessa giornata, il commit di patch firmato da Peter Hutterer su GitLab FreeDesktop ha esposto la geometria esatta del trigger. La falla, tracciata come CVE-2026-56000 con punteggio CVSS 7.8, colpisce il sottosistema GLX.

Punti chiave
  • La vulnerabilità risiede nella funzione CommonMakeCurrent dell'estensione GLX di X.Org Server e permette escalation di privilegi locale fino a root.
  • Il meccanismo è un use-after-free causato da realloc dell'array contextTags, che invalida un puntatore stale successivamente dereferenziato in scrittura.
  • La condizione di trigger richiede la creazione di 17 contesti GLX distinti per esaurire i 16 slot iniziali dell'array e forzare la riallocazione dinamica.
  • X.Org ha pubblicato il commit di patch (2779affb) con test di regressione che riproducono il bug; il credito va a un ricercatore anonimo in coordinazione con ZDI.

Il meccanismo: come un puntatore stale diventa scrittura arbitraria

La radice della falla sta nell'interazione tra due funzioni del sottosistema GLX. Quando CommonMakeCurrent() gestisce un contesto di rendering, conserva in oldTag un puntatore a un elemento dell'array cl->contextTags. Se CommonMakeNewCurrent() chiama GlxAllocContextTag() e quest'ultima trova tutti e 16 gli slot iniziali occupati, esegue realloc() dell'array. Il puntatore oldTag, tuttavia, continua a puntare all'indirizzo originale. La successiva chiamata a GlxFreeContextTag(oldTag) scrive quindi in memoria già liberata.

Il commit di patch (2779affb), autore Peter Hutterer con credito a "Anonymous working with Trend Micro Zero Day Initiative", descrive esplicitamente questa sequenza. I test di regressione allegati al commit riproducono il bug creando 17 contesti GLX, rendendo current i primi 16 con oldContextTag=0 per occupare gli slot, quindi eseguendo un switch che forza la riallocazione.

"oldTag in CommonMakeCurrent() is a pointer to cl->contextTags[...]. CommonMakeCurrent() may realloc(cl->contextTags) and thus move the array. If we then GlxFreeContextTag(oldTag) we end up writing into freed memory." — Commit GitLab 2779affb, Peter Hutterer

La condizione di trigger: la matematica dei 16 slot

I 16 slot iniziali di contextTags sono sufficienti per la maggior parte degli scenari d'uso, ma un attaccante che controlli il numero di contesti creati può forzare il superamento di questa soglia. I 17 contesti del test di regressione rappresentano la condizione minima per far scattare la realloc che espone il dangling pointer.

Questa struttura rende la vulnerabilità particolarmente insidiosa perché non richiede condizioni di race complesse né input malformati. L'operazione MakeCurrent è legittima e frequente; è la sua combinazione con un pattern di allocazione specifico a generare la corruzione di memoria. L'advisory ZDI-26-405 sottolinea che l'attaccante "deve prima ottenere la capacità di eseguire codice a basso privilegio sul sistema target", il che restringe il vettore ai contesti locali.

Chi è a rischio e perché il display server conta

X.Org Server rimane il display server di riferimento per installazioni Linux e Unix che non hanno ancora migrato a Wayland o che dipendono da applicazioni legacy con requisiti GLX. Server con accesso limitato ma con capacità grafica, workstation condivise, infrastrutture che eseguono applicazioni grafiche con privilegi separati: tutti questi scenari espongono una superficie dove un processo utente può interagire con il server X.

Il CVSS 7.8 assegnato da ZDI a CVE-2026-56000 riflette l'impatto elevato della vulnerabilità. Il dettaglio completo del CVSS vector non è disponibile nelle fonti consultate. L'advisory ZDI-26-405 indica che l'exploit consente "esecuzione di codice arbitrario nel contesto di root".

La disclosure e i limiti delle fonti

La timeline della disclosure mostra un report al vendor datato 29 maggio 2026 e il rilascio coordinato pubblico il 15 luglio 2026. Il commit GitLab include la descrizione del bug, i riferimenti a ZDI-CAN-30561, e i test che documentano la condizione di trigger.

Il presente articolo si basa sull'advisory ZDI-26-405 e sul commit di patch ufficiale; non sono disponibili informazioni su versioni specifiche affette o exploit in-the-wild. Non emergono nelle fonti disponibili indicazioni su exploit pubblico al momento della stesura.

Cosa fare adesso

  • Applicare il commit di patch 2779affb sui sistemi che compilano X.Org Server da sorgente.
  • Attendere gli aggiornamenti delle distribuzioni Linux che mantengono pacchetti X.Org Server precompilati.
  • Verificare nei changelog delle distribuzioni in uso se CVE-2026-56000 è elencata tra le correzioni applicate.

Analisi: il pattern del puntatore stale in codice legacy

La vulnerabilità CVE-2026-56000 illustra un pattern ricorrente nel software di sistema: un puntatore conservato attraverso un'operazione di realloc che può spostare l'area di memoria puntata. In questo caso specifico, il puntatore oldTag in CommonMakeCurrent() sopravvive alla chiamata GlxAllocContextTag() senza essere ricalcolato, creando la condizione di use-after-free.

Il commit di patch risolve il problema ricalcolando il puntatore dopo l'operazione che può riallocare l'array. I test di regressione allegati al commit forniscono una procedura riproducibile per attivare il bug, che può essere utilizzata per verificare l'efficacia della correzione.

Questa analisi si limita ai fatti verificabili dalle fonti citate. Il brief non fornisce informazioni su altre vulnerabilità correlate o su campagne di attacco che sfruttino questa specifica falla.

Le informazioni sono state verificate sulle fonti citate e aggiornate al momento della pubblicazione.

Fonti


Fonti e riferimenti
  1. zerodayinitiative.com
  2. gitlab.freedesktop.org