Cyberattacchi alimentati dall'intelligenza artificiale: Come individuare, prevenire e difendersi dalle minacce intelligenti

Leggi ora
Per le traduzioni dei siti utilizziamo l'intelligenza artificiale e, sebbene ci sforziamo di essere accurati, non sempre le traduzioni sono precise al 100%. La vostra comprensione è apprezzata.

Critica CVE-2025-24293 in Ruby on Rails - Active Storage RCE scoperta da OPSWAT Unità 515

da OPSWAT
Condividi questo post

Introduzione a Ruby on Rails

Ruby on Rails (Rails) è un framework web full-stack, Model-View-Controller (MVC), costruito con Ruby. Viene fornito "batterie incluse", offrendo agli sviluppatori tutto ciò di cui hanno bisogno: un mapper relazionale a oggetti (Active Record), un livello di richiesta/risposta e di visualizzazione (Action Pack/Action View), l'elaborazione di lavori in background, i mailer, il supporto WebSocket, l'archiviazione e il caricamento di file (Active Storage) e molto altro ancora.

Dal suo rilascio iniziale nel 2004, Ruby on Rails è cresciuto fino a diventare uno dei framework web più adottati al mondo. Oggi alimenta milioni di siti web e applicazioni, comprese piattaforme di alto profilo come GitHub, Shopify, Airbnb, Basecamp e Netflix. Grazie alla sua forte enfasi sulla convenzione rispetto alla configurazione, sulla produttività degli sviluppatori e sulla prototipazione rapida, Rails è diventato un framework di riferimento sia per le startup che per le grandi imprese.

Unità 515 Ricerca: Esporre le vulnerabilità critiche di Rails

Nel corso di una ricerca indipendente, Thai Do, membro del team dell'Unità 515 di OPSWAT, ha individuato due vulnerabilità in Ruby on Rails, una delle quali potrebbe portare all'esecuzione di codice remoto (RCE). Queste scoperte sono state responsabilmente comunicate al team di sicurezza di Rails, con il quale OPSWAT si è coordinato durante tutto il processo.

Il 13 agosto 2025, il team di Rails ha pubblicato avvisi pubblici e ha rilasciato versioni con patch che risolvono entrambe le vulnerabilità.

Versioni interessate e versioni corrette

Componente
Versioni interessate
Versioni fisse
Archiviazione attiva (CVE-2025-24293)
Rails ≥ 5.2.0 e inferiore alla release fissa
7.1.5.2, 7.2.2.2, 8.0.2.1
Registrazione attiva dei record (CVE-2025-55193)
Rails < 7.1.5.2, < 7.2.2.2, < 8.0.2.1
7.1.5.2, 7.2.2.2, 8.0.2.1

Problemi di sicurezza identificati in Rails

CVE-2025-24293 - Metodi di trasformazione non sicuri dell'archiviazione attiva

Questa vulnerabilità riguarda Active Storage nelle versioni di Rails ≥ 5.2.0. Si verifica quando vengono passati a mini_magick metodi di trasformazione delle immagini non sicuri che, se combinati con input dell'utente non validati, potrebbero portare all'esecuzione di codice remoto (RCE). Rails fa notare che la falla non è sfruttabile con la configurazione predefinita, ma le applicazioni che espongono le opzioni di trasformazione agli utenti sono particolarmente a rischio.

CVE-2025-55193 - Iniezione di escape ANSI nella registrazione dei record attivi

Questa vulnerabilità riguarda il logging di Active Record in tutte le versioni di Rails precedenti alla 7.1.5.2, 7.2.2.2 e 8.0.2.1. Gli aggressori potrebbero iniettare nei log identificatori appositamente creati contenenti sequenze di escape ANSI, manipolando potenzialmente il modo in cui le query appaiono nell'output del terminale e portando a log fuorvianti o corrotti. Sebbene la falla non esponga direttamente i dati o consenta l'esecuzione di codice, potrebbe ostacolare le attività di monitoraggio e di risposta agli incidenti. Il team di sicurezza di Rails ha risolto il problema nelle stesse versioni patchate.

Analisi tecnica di CVE-2025-24293 - Esecuzione di codice remoto di Active Storage

Panoramica dell'archiviazione attiva

Active Storage è il framework integrato di Rails per gestire il caricamento dei file. Consente agli sviluppatori di allegare file ai modelli Active Record e di archiviarli localmente (per lo sviluppo e i test) o su servizi cloud come Amazon S3, Google Cloud Storage o Microsoft Azure. Le caratteristiche Core includono l'esecuzione di trasformazioni di immagini, la generazione di anteprime per file non di immagine come PDF e video e il mirroring dei caricamenti su più servizi per ridondanza o migrazione.

Come funzionano le trasformazioni delle immagini

Le trasformazioni delle immagini consentono agli sviluppatori di fornire allegati con dimensioni o formati specifici. Ciò avviene chiamando il metodo variant() su un allegato immagine e passando le operazioni supportate.

Quando un client richiede una variante URL, Active Storage esegue la trasformazione su richiesta dal blob originale, memorizza il risultato sul servizio configurato e restituisce un reindirizzamento al nuovo file generato.

Rails supporta due processori per la trasformazione delle immagini: Vips e MiniMagick. Il processore in uso può essere configurato tramite config.active_storage.variant_processor.

Le operazioni specifiche supportate nelle trasformazioni delle immagini sono determinate dal gemma image_processing e dipendono dal processore sottostante configurato per l'applicazione Rails.

Correzione incompleta di CVE-2022-21831

Nel marzo 2022, il team di Rails ha reso nota la CVE-2022-21831, una vulnerabilità critica di iniezione di codice nella funzione di trasformazione delle immagini di Active Storage. La patch ha introdotto un elenco predefinito di metodi di trasformazione per mitigare il problema.

Tuttavia, durante una revisione più approfondita della patch e del codice sorgente di Rails, Thai DoOPSWAT Unit 515) ha scoperto un bypass che rendeva incompleta la correzione originale. Questo bypass ha reintrodotto un percorso per gli aggressori per ottenere l'esecuzione di codice remoto (RCE), portando alla divulgazione della CVE-2025-24293.

Causa principale nella Gemma image_processing

Quando viene applicata una trasformazione, Rails delega l'operazione alla gemma image_processing, che alla fine chiama ImageProcessing::Processor#call in lib/image_processing/processor.rb

Se l'elaboratore di varianti configurato è MiniMagick, la vulnerabilità risiede in due funzioni all'interno di lib/image_processing/mini_magick.rb:

-load_image - accetta opzioni non validate da **loader.

-save_image - accetta opzioni non validate da **saver.

Per load_image, tutte le coppie chiave-valore in **loader diverse da page, geometry e auto_orient sono conservate in **options. Lo stesso vale per save_image, dove le chiavi diverse da allow_splitting rimangono in **options. Queste opzioni vengono poi passate a Utils.apply_options(magick, **options), che le applica come flag della CLI di MiniMagick (ad esempio, -quality).

Sebbene loader e saver siano inclusi nell'elenco dei permessi predefinito e quindi considerati sicuri, questa fiducia è mal riposta. Con un input accuratamente creato, un utente malintenzionato può sfruttare queste opzioni per aggirare i controlli e, in ultima analisi, far sì che Rails esegua comandi di sistema arbitrari sul computer host.

Scenario di sfruttamento nelle applicazioni Rails

Se un'applicazione passa input dell'utente non validati direttamente nei metodi di trasformazione, ad esempio:

Un utente malintenzionato potrebbe creare input dannosi per manipolare le opzioni del caricatore o del salvatore. Ciò consentirebbe di aggirare l'elenco dei permessi e di eseguire comandi arbitrari sul server, con conseguente esecuzione di codice remoto (RCE).

Prova di concetto: Esecuzione di codice remoto

Nelle applicazioni Rails che eseguono versioni vulnerabili (precedenti a 8.0.2.1, 7.2.2.2 e 7.1.5.2), l'unità OPSWAT 515 ha dimostrato con successo una catena di exploit in cui l'input di trasformazione non convalidato portava all'esecuzione di comandi di shell.

Questo video PoC dimostra la sfruttabilità di CVE-2025-24293 e ne evidenzia l'impatto reale sulle applicazioni Rails:

Servizi di mitigazione e test di penetrazione professionali

Le organizzazioni dovrebbero risolvere i problemi CVE-2025-24293 e CVE-2025-55193 aggiornando Ruby on Rails alle ultime versioni di sicurezza (7.1.5.2, 7.2.2.2 o 8.0.2.1). Se non è possibile applicare immediatamente la patch, le misure di sicurezza temporanee includono la limitazione delle trasformazioni delle immagini a preset predefiniti, la convalida e la sanificazione dell'input dell'utente, l'irrigidimento delle politiche di ImageMagick e la garanzia che i log non possano interpretare le sequenze di escape ANSI.

Tuttavia, l'applicazione delle patch non elimina tutti i rischi nei moderni ambienti web. La logica aziendale personalizzata, le integrazioni di terze parti e le complesse pipeline di distribuzione spesso creano percorsi sfruttabili che vanno oltre i consigli del fornitore. Ecco perché i test di penetrazione delle applicazioni web sono essenziali.

In OPSWAT, l'Unità 515 offre servizi specializzati di penetration test delle applicazioni web che vanno ben oltre gli scanner automatici o gli audit delle liste di controllo. Il nostro team è composto da esperti di sicurezza offensiva che vantano anni di esperienza nel test di applicazioni su larga scala in diversi settori. Utilizzando una metodologia sistematica e avversaria, scopriamo le vulnerabilità nei flussi di autenticazione, nella convalida degli input, nel controllo degli accessi e nella gestione dei dati, problemi che possono persistere anche in framework completamente patchati come Ruby on Rails.

Ogni impegno combina una profonda competenza tecnica con una reportistica di livello aziendale, fornendo informazioni chiare e attuabili che consentono ai team di sviluppo di rimediare alle falle in modo efficace. Impegnandosi con l'Unità 515, le organizzazioni hanno la certezza che le loro applicazioni critiche siano testate da esperti che non solo simulano le tecniche di attacco del mondo reale, ma convalidano anche che le correzioni chiudano davvero le falle. Questa competenza rafforza gli sforzi di rimedio, riduce il rischio residuo e aumenta la resilienza complessiva delle applicazioni contro le minacce in evoluzione.

Rimanete aggiornati con OPSWAT!

Iscriviti oggi stesso per ricevere gli ultimi aggiornamenti sull'azienda, storie, informazioni sugli eventi e altro ancora.