CVE-2019-5418 è una vulnerabilità di esposizione del contenuto di file scoperta nel componente Action View di Ruby on Rails nel marzo 2019. Questa vulnerabilità interessa le versioni di Action View inferiori a 5.2.2.1, 5.1.6.2, 5.0.7.2, 4.2.11.1 e tutte le versioni della serie v3.
| Ruby on Rails, Ruby-on-Rails |
| 2025-07-09 07:36:20 |
| Fix Available, Active Exploitation |
Riassunto tecnico
-
Dettagli:
La vulnerabilità sfrutta una falla di traversal del percorso nel processo di rendering di Action View, in particolare nel metodo findfile in templaterenderer.rb.
Quando il metodo render elabora viste al di fuori dell’ambito dell’applicazione, utilizza il metodo findtemplates da PathResolver per risolvere il percorso.
Questo metodo accetta un pattern da risolvere per individuare il percorso;
la vulnerabilità deriva dalla possibilità di manipolare e iniettare un payload utilizzato per costruire questo pattern nel metodo buildquery:
Ad esempio, pattern: template.:variants e la variabile variants come [‘mobile’, ‘tablet’, ‘desktop’] produrrà: template.{mobile,tablet,desktop}
La variabile variants può essere manipolata attraverso l’header Accept:
Acceptt: ../../../../../../../../../etc/passwd{{ -
Attacco non autenticato: non è necessaria alcuna autenticazione preventiva.
Questa debolezza di progettazione nel meccanismo di risoluzione dei template consente agli attaccanti di leggere file di sistema sensibili manipolando gli header Accept per attivare il percorso vulnerabile del codice, bypassando di fatto i controlli di accesso ai file a livello applicativo attraverso il sistema di template rendering.
Raccomandazioni
- Applica la patch immediatamente: aggiorna a una versione di Roundcube 5.2.2.1 o superiore.
- Firewall per applicazioni web (WAF): implementa regole WAF per filtrare gli header Accept malevoli.
- Applicare permessi: limita i permessi del file system per ridurre l’esposizione di file sensibili.