News

Ruby: quattro CVE nel motore regex, CloudLinux aggiorna i pacchetti alt-ruby

Quattro bug di memoria nel motore regex di Ruby, sfruttabili per RCE su GitLab. CloudLinux rilascia le versioni corrette dei pacchetti alt-ruby.

Redazione UptimeMag · 27 ottobre 2026 · 2 minuti di lettura

Ruby: quattro CVE nel motore regex, CloudLinux aggiorna i pacchetti alt-ruby

Ruby ha pubblicato il 23 ottobre 2026 le versioni 4.0.9, 3.4.12 e 3.3.13, che correggono quattro bug di corruzione della memoria nel motore delle espressioni regolari (Onigmo). CloudLinux ha ricompilato di conseguenza i pacchetti alt-ruby per Ruby Selector, perché su un hosting condiviso la patch upstream non arriva agli account finché il fornitore del pannello non la distribuisce.

Da dove arrivano i CVE

I quattro identificatori — CVE-2026-89078, CVE-2026-93577, CVE-2026-97229 e CVE-2026-110264 — sono stati assegnati da GitLab, non da Ruby. GitLab compila regole espressioni regolari fornite dagli utenti, come i pattern nella configurazione CI, con Regexp.new, e ha scoperto che pattern creati ad arte potevano corrompere la memoria durante la compilazione, trasformandosi in esecuzione di codice remoto sui server GitLab. GitLab ha corretto il problema aggiornando alle versioni 19.2.8, 19.3.5 e 19.4.2, pubblicate il 12 ottobre 2026, undici giorni prima della patch sul lato Ruby. Per CVE-2026-97229 esiste una proof-of-concept pubblica, usata da Rapid7 per riprodurre l'esecuzione di codice; per gli altri tre CVE non risultano PoC pubbliche né sfruttamenti confermati in the wild.

Chi è esposto su un hosting condiviso

Il rischio riguarda solo le applicazioni Ruby che compilano una regex a partire da testo fornito da terzi (una funzione di ricerca o filtro che tratta l'input utente come pattern). Le app che usano solo pattern scritti dai propri sviluppatori non sono interessate, ma da server non è possibile distinguere i due casi: la risposta pratica resta aggiornare l'interprete. Regexp.timeout non protegge, perché il bug avviene in fase di compilazione e non di match; limitare la lunghezza del pattern non è una mitigazione affidabile.

Pacchetti e versioni minime corrette

Pacchetto Versione minima corretta (CL 7/8/9) Versione minima corretta (Ubuntu 22.04)
alt-ruby26 2.6.10-20 non distribuito
alt-ruby27 2.7.8-151 2.7.8-11
alt-ruby30 3.0.7-175 3.0.7-177
alt-ruby31 3.1.7-15 3.1.7-15
alt-ruby32 3.2.11-16 3.2.11-16
alt-ruby33 3.3.13-14 3.3.13-15
alt-ruby34 3.4.12-13 3.4.12-14
alt-ruby35 3.5.0-0.6.preview1 3.5.0~preview1-7
alt-ruby40 4.0.9-8 4.0.9-9
ea-ruby27-ruby 2.7.8-6.el7/el8.cloudlinux.1 non distribuito

Le linee alt-ruby18 a alt-ruby25 non sono supportate e non ricevono correzioni: chi le usa ancora deve migrare a una versione supportata. Il Ruby di sistema (CloudLinux 10 e gli stream modulo di CloudLinux 8/9) non ha ancora una build corretta dal vendor del sistema operativo.

Comandi per aggiornare

Su CloudLinux 7, 8, 9 (inclusa EasyApache 4):

rpm -qa 'alt-ruby*' 'ea-ruby27-ruby'
yum update 'alt-ruby*' 'ea-ruby27*'

Su CloudLinux per Ubuntu 22.04:

dpkg-query -W 'alt-ruby*'
apt-get update
apt-get install --only-upgrade 'alt-ruby*'

Le applicazioni già in esecuzione continuano a usare il vecchio interprete finché non vengono riavviate. Per riavviare una singola app:

selectorctl --interpreter=ruby --user=USER --restart-webapp APP_DIR

Per coprire l'intero server: apachectl -k graceful (oppure, su cPanel, /scripts/restartsrv_httpd). Per il Ruby di sistema serve anche cagefsctl --force-update.

Chi usa i pacchetti TuxCare trova la correzione sul repository repo.alt.tuxcare.com, disponibile anche per Ubuntu 24.04, dove CloudLinux non distribuisce pacchetti alt-ruby propri.

Testo redatto con il supporto dell'intelligenza artificiale e verificato dalla redazione (AI Act, art. 50).