
Ruby ha rilasciato aggiornamenti critici per risolvere tre bug nel suo motore di espressioni regolari Onigmo. Queste falle, che potevano portare all'esecuzione di codice remoto, hanno interessato in particolare GitLab, che ha già rilasciato diverse patch.
Il linguaggio di programmazione Ruby ha recentemente affrontato una serie di vulnerabilità di sicurezza significative, derivanti da tre bug scoperti nel suo motore di espressioni regolari, Onigmo. Le versioni interessate sono state corrette con il rilascio di Ruby 4.0.9, 3.4.12 e 3.3.13. Queste correzioni sono state rese necessarie a seguito della scoperta di quattro gravi falle di sicurezza da parte di GitLab, che ha lavorato attivamente per mitigare il rischio.
Le vulnerabilità risiedono nella gestione delle espressioni regolari da parte di Onigmo. Un attaccante poteva creare un pattern di espressione regolare appositamente studiato che, durante la fase di compilazione da parte di Ruby, causava la corruzione della memoria. Questo scenario poteva potenzialmente condurre all'esecuzione di codice arbitrario sui server che utilizzavano versioni vulnerabili di Ruby.
Ruby stessa ha chiarito che il rischio si concretizza in tutte le applicazioni che compilano espressioni regolari partendo da input forniti da un utente malintenzionato. Questo accade tipicamente quando un programma utilizza funzioni come Regexp.new, Regexp.union o Regexp.compile con dati non attendibili, o quando tali dati vengono interpolati all'interno di un pattern, ad esempio in /#{input}/.
Le applicazioni che impiegano esclusivamente espressioni regolari definite dagli sviluppatori e non derivanti da input esterni non sono considerate a rischio.
GitLab è stata una delle piattaforme più colpite, poiché compila espressioni regolari fornite dai propri utenti, come quelle presenti nelle configurazioni CI/CD. Tra il 23 settembre e il 21 ottobre, GitLab ha identificato e corretto quattro vulnerabilità distinte, assegnando loro codici CVE specifici.
Le prime due falle, scoperte il 23 settembre, richiedevano un account utente per essere sfruttate e sono state valutate con un punteggio di gravità di 9.9 su 10. Le due vulnerabilità successive, scoperte il 12 ottobre (CVE-2026-97229) e il 21 ottobre (CVE-2026-110264), erano ancora più critiche poiché non richiedevano alcun tipo di autenticazione e hanno ricevuto il punteggio massimo di 10.0. In particolare, CVE-2026-110264 ha interessato tutte le versioni di GitLab a partire dalla 7.0.
Un ricercatore di sicurezza, noto con lo pseudonimo joaxcar, ha segnalato tutte e quattro le vulnerabilità tramite il programma di bug bounty di GitLab. Al momento della segnalazione, nessuna di queste era ancora stata inclusa nell'elenco delle vulnerabilità note e attivamente sfruttate (Known Exploited Vulnerabilities) della CISA.
Le versioni di Ruby che includono le correzioni sono la 4.0.9, 3.4.12 e 3.3.13. È importante notare che le versioni 3.4.12 e 3.3.13 sono le prime delle rispettive serie a ricevere questi fix. Gli utenti di Ruby 4.0 dovrebbero assicurarsi di installare la versione 4.0.9, poiché la precedente 4.0.8 non includeva la correzione per CVE-2026-110264.
Le versioni più datate di Ruby, come la 3.2 e precedenti, non riceveranno più aggiornamenti di sicurezza. La versione 3.2 ha raggiunto la fine del suo ciclo di vita il 1° aprile 2026, con la 3.2.11 come ultima release. Ruby raccomanda vivamente la migrazione a versioni più recenti come la 3.4 o la 4.0.
Per chi non potesse aggiornare immediatamente, Ruby suggerisce di evitare la compilazione di espressioni regolari da input non attendibili. Tentativi di mitigazione come l'impostazione di Regexp.timeout o la limitazione della lunghezza dei pattern si sono rivelati inefficaci nel prevenire lo sfruttamento di queste vulnerabilità.
Gli amministratori di istanze GitLab self-managed che necessitano di correggere la vulnerabilità CVE-2026-110264 devono aggiornare a una delle seguenti versioni rilasciate da GitLab, che includono la patch: 19.5.1, 19.4.3, 19.3.6, 19.2.9, 19.1.9, 19.0.10 e 18.11.13. GitLab.com e le istanze GitLab Dedicated su versioni recenti sono già state aggiornate.
GitLab ha inoltre messo a disposizione delle regole di rilevamento per aiutare gli amministratori a identificare tentativi di sfruttamento delle vulnerabilità sulle proprie istanze.
Attualmente, Ruby non ha assegnato propri identificativi CVE per queste correzioni, ma ha indicato che gli utenti dovrebbero fare riferimento ai codici CVE forniti da GitLab. L'azienda ha dichiarato che aggiornerà il proprio avviso se richiederà identificativi CVE in futuro.
Contenuto generato automaticamente da intelligenza artificiale a partire da fonti pubbliche. Non garantiamo l'accuratezza assoluta delle informazioni: consulta sempre la fonte originale. I diritti sui contenuti originali appartengono ai rispettivi editori.