Ruby on Rails CVE-2026-66066: un'immagine caricata legge i segreti dell'applicazione
Serve solo il modulo di caricamento immagini che quasi ogni applicazione web espone. La CVE-2026-66066, battezzata KindaRails2Shell dai ricercatori, interessa Active Storage di Ruby on Rails con score CVSS v4.0 pari a 9.5 e nasce dall'interazione tra Active Storage e libvips, la libreria di elaborazione immagini che Rails seleziona di default a partire dalle impostazioni della versione 7.0. Nel generare le varianti di un'immagine, Active Storage non disabilita le operazioni che libvips stessa marca come non sicure per contenuti non attendibili: un file caricato ad arte da un utente non autenticato ne invoca una e ottiene la lettura di file arbitrari accessibili al processo Rails.
Il bersaglio che conta è l'ambiente del processo, dove risiedono credenziali e segreti applicativi, a partire dal secret_key_base con cui Rails firma sessioni e cookie. Chi ottiene quella chiave può forgiare sessioni valide e, per la via della deserializzazione dei cookie firmati, arrivare all'esecuzione di codice: è la ragione per cui la vulnerabilità è classificata anche come RCE e il nome scelto dai ricercatori richiama il classico Rails2Shell. La falla è stata pubblicata il 29 luglio 2026, ma è a fine agosto che ACN ha aggiornato l'alert AL02/260731 registrando insieme la prova di concetto pubblica e lo sfruttamento attivo in rete.
Un dettaglio va letto con attenzione prima di dichiararsi al sicuro dopo l'aggiornamento: la correzione di Rails funziona solo se libvips è alla versione 8.13 o successiva, perché le versioni precedenti non permettono affatto di disabilitare quelle operazioni. Un'applicazione aggiornata su un sistema operativo con libvips vecchia resta quindi esposta, e il caso è tutt'altro che raro sulle distribuzioni con cicli di rilascio lunghi. A doversene preoccupare è chiunque gestisca un'applicazione Rails che accetti immagini da utenti non autenticati, categoria che comprende portali di servizi al cittadino con allegati, moduli di segnalazione, aree di caricamento documenti: l'attacco non richiede un account, basta il modulo di upload.
- Versioni affette: Ruby on Rails Active Storage 7.2.3.x precedenti alla 7.2.3.2, ramo 8.0.x precedente alla 8.0.5.1, ramo 8.1.x precedente alla 8.1.3.1; le versioni 6.x sono interessate solo dove il processore vips sia stato abilitato manualmente.
- Azione raccomandata: aggiornare Active Storage alla 7.2.3.2, 8.0.5.1 o 8.1.3.1 secondo il ramo in uso e verificare contestualmente che libvips sul sistema sia almeno alla versione 8.13, altrimenti la correzione non ha effetto; dove l'aggiornamento non sia immediato, sospendere l'elaborazione delle varianti sulle immagini caricate da utenti non autenticati; considerare compromessi i segreti dell'applicazione in caso di dubbio e ruotare secret_key_base e credenziali dei servizi collegati.
Fonti: ACN, Ruby on Rails, Rapid7, Ethiack