Aggiornare GitLab self-managed (CVE-2026-110264)
Il 21 ottobre 2026 GitLab ha corretto CVE-2026-110264, una falla CVSS 10.0 che consente di eseguire codice sul server senza autenticazione e riguarda GitLab self-managed dalla versione 7.0, del 2014. Nove giorni prima aveva corretto CVE-2026-97229, anch’essa 10.0. GitLab.com è già aggiornato; le installazioni proprie dipendono da te.
Hai questa vulnerabilità? Aggiorniamo il tuo GitLab alla versione corretta del tuo ramo, pianifichiamo il fermo se le migrazioni del database lo richiedono e controlliamo runner, token e log.
$ sudo gitlab-rake gitlab:env:info | grep -A1 "GitLab information"GitLab informationVersion: 19.4.2-ee# 19.4.2 corregge CVE-2026-97229, non CVE-2026-110264$ cat /opt/gitlab/embedded/service/gitlab-rails/VERSION19.4.2-ee# Anche dal browser: https://tuo-gitlab/helpPer il ramo 19.4: aggiornare a 19.4.3 Due falle CVSS 10.0 in nove giorni
Chi ha aggiornato il 12 ottobre per CVE-2026-97229 deve rifarlo: quella correzione non copre CVE-2026-110264, che riguarda tutte le versioni dal 2014.
CVE-2026-110264 è un integer overflow durante la compilazione di un’espressione regolare manipolata in Onigmo, il motore di espressioni regolari di Ruby che GitLab include e corregge nei propri pacchetti. GitLab lo distribuisce dalla 7.0, ed è per questo che la falla arriva così indietro. GitLab non ha spiegato quali condizioni servono a un attaccante, quindi non ci si può escludere tramite la configurazione, e non offre mitigazioni temporanee: l’unica correzione è aggiornare.
Il 12 ottobre GitLab aveva corretto CVE-2026-97229, anch’essa CVSS 10.0: esecuzione di codice senza autenticazione tramite un’espressione regolare manipolata nella configurazione CI/CD, nelle versioni dalla 19.2 alla 19.4 (corretta in 19.2.8, 19.3.5 e 19.4.2). Esiste una proof of concept pubblica.
Al 22 ottobre, GitLab non segnala sfruttamenti di CVE-2026-110264 e la falla non è nel catalogo KEV della CISA. GitLab ha pubblicato due regole Sigma per cercare tentativi, «Onigmo native worker crash» e «Org mode render error burst». Le istanze GitLab Dedicated su 19.3.5-internal0 o 19.4.2-internal0 e successive hanno già la correzione.
Fonti: The Hacker News: CVE-2026-110264 · The Hacker News: CVE-2026-97229
Versioni di GitLab corrette
Vale per GitLab CE ed EE installato da te (Omnibus, Docker, Helm). Se la tua versione è precedente a quella del suo ramo, sei vulnerabile a CVE-2026-110264.
| Se hai | Aggiorna a | Nota |
|---|---|---|
| 19.5 (prima di 19.5.1) | 19.5.1 | |
| 19.4 (prima di 19.4.3) | 19.4.3 | Migrazioni DB: fermo con un solo nodo |
| 19.3 (prima di 19.3.6) | 19.3.6 | Migrazioni DB: fermo con un solo nodo |
| 19.2 (prima di 19.2.9) | 19.2.9 | |
| 19.1 (prima di 19.1.9) | 19.1.9 | |
| 19.0 (prima di 19.0.10) | 19.0.10 | |
| 7.0 – 18.11 (prima di 18.11.13) | 18.11.13 | Può richiedere versioni intermedie |
Controlla questo
- Hai GitLab CE o EE installato sul tuo server, in Docker o nel tuo cloud, non su GitLab.com.
- La versione mostrata in
/helpè precedente a quella del tuo ramo in tabella. - Hai aggiornato il 12 ottobre a 19.2.8, 19.3.5 o 19.4.2: sei ancora vulnerabile a CVE-2026-110264.
- Sei sulla 18.10 o precedente: la destinazione è 18.11.13 o una 19.x, e GitLab impone tappe intermedie nel percorso di aggiornamento.
- La tua istanza è raggiungibile da internet, anche con la registrazione utenti chiusa: la falla non richiede un account.
Nessuna mitigazione temporanea
GitLab non offre alcun workaround per CVE-2026-110264. Quello che si può preparare è l’aggiornamento stesso, perché riesca al primo tentativo.
- 01 GitLab non ha detto quali condizioni servono per sfruttare la falla, quindi nessuna configurazione ti mette al riparo.
- 02 Su un server a nodo singolo, 19.4.3 e 19.3.6 eseguono migrazioni del database durante l’aggiornamento e GitLab resta fermo finché non terminano.
- 03 Con più nodi si può applicare senza fermo seguendo la procedura zero-downtime di GitLab.
- 04 Prima di toccare qualsiasi cosa: backup del database e dei repository, e di
gitlab-secrets.jsonegitlab.rb, che non rientrano nel backup standard.
Sette passi, in questo ordine
Applichiamo la stessa procedura su ogni server: prima capire quale versione gira dove, poi correggere e infine verificare che nessuno sia entrato prima della patch.
Inventario delle versioni
Annotiamo versione ed edizione (CE o EE), tipo di installazione (Omnibus, Docker, Helm), numero di nodi, runner registrati e da dove è raggiungibile l’istanza.
Mitigazione immediata
Senza workaround ufficiale, mentre si prepara la finestra si può ridurre chi raggiunge l’istanza, ad esempio lasciandola solo dietro la VPN se il tuo team può lavorare così.
Aggiornamento
Backup, percorso di aggiornamento con le tappe che GitLab impone se parti da una versione vecchia e passaggio alla versione corretta del tuo ramo. Se le migrazioni obbligano a fermarsi, scegliamo con te il momento.
Verifica
Controlliamo la versione in /help, che le migrazioni del database siano terminate, che i runner si colleghino e che le pipeline tornino a passare.
Analisi degli indicatori di compromissione
Applichiamo ai log le regole Sigma pubblicate da GitLab ed esaminiamo utenti, token di accesso personali e chiavi SSH creati di recente.
Rotazione dei segreti, se serve
Se ci sono indicatori, ruotiamo i token dei runner, i token personali e di deploy, le variabili CI/CD e le chiavi che le pipeline usano per il deploy.
Monitoraggio dei nuovi avvisi
Annotiamo versione, percorso di aggiornamento e calendario delle patch di GitLab, così il prossimo aggiornamento non parte da zero.
Perché un aggiornamento di GitLab va storto
Il tuo GitLab non si aggiorna da anni?
Consulenza gratuita →Domande frequenti su CVE-2026-110264
Quale versione di GitLab corregge CVE-2026-110264?
Ho già aggiornato il 12 ottobre, devo rifarlo?
Uso GitLab.com, devo fare qualcosa?
L’aggiornamento ferma GitLab?
C’è qualche mitigazione se oggi non posso aggiornare?
Raccontaci quale GitLab hai
Con la versione, il tipo di installazione e il numero di nodi ti diciamo il percorso di aggiornamento e se servirà un fermo.
Raccontaci la tua sfida. Ti proponiamo la soluzione.
Senza impegno. In meno di 24 ore riceverai una proposta con ambito, tempistiche e budget. Nessuna clausola nascosta.