Il framework Ruby on Rails sarebbe affetto da una vulnerabilità di tipo XSS (Cross-site scripting) rilevata a carico dei metodi number_to_currency
(per la conversione di un numero in un formato valutario), number_to_percentage
(per la formattazione in punti percentuali) e number_to_human
(per la formattazione delle cifre in un formato leggibile); a tale problematica è stato associato l'identificatore univoco CVE-2014-0081 intitolato "Rails XSS vulnerability in number formatting".
Tutte le versioni di Rails sarebbero affette da tale vulnerabilità, ma sono stati applicati dei fixing alle release 4.1.0.beta2, 4.0.3 e 3.2.17. Gli helpers coinvolti, utilizzati per la formattazione di valori numerici, presenterebbero alcuni parametri (format
, negative_format
e units
) recanti problemi di validazione, motivo per il quale il passaggio di dati a tali metodi nelle applicazioni potrebbe spianare la strada ad un attacco XSS.
Per eliminare i rischi derivanti dal problema rilevato sarà necessario procedere con un aggiornamento della propria installazione di Rails o utilizzare un workaround che consiste nell'escape manuale dei valori passati ai metodi; per cui un'espressione come la seguente:
<%= number_to_currency(1.02, format: params[:format]) %>
Dovrà essere corretta in questo modo
<%= number_to_currency(1.02, format: h(params[:format])) %>
Come per le altre vulnerabilità individuate in precedenza nel framework, è bene sottolineare che al momento sono supportati soltanto i rami di sviluppo 4.0.x e 3.2.x, per cui chiunque utilizzasse versioni obsolete dovrebbe migrare quanto prima a quelle meno datate per disporre di un livello di sicurezza più elevato.
Via CVE-2014-0081