
Apache Struts 2 è un framework open source per applicazioni web per lo sviluppo di applicazioni web Java EE. È la seconda generazione del framework Struts, rilasciato per la prima volta il 10 ottobre 2006. Il framework Struts è progettato in modo tale da aiutare a creare applicazioni web che utilizzano un'architettura MVC.
Apache Struts è un framework ampiamente utilizzato; nel 2017 più del 65 percento delle aziende Fortune 100 utilizzava il framework Apache Struts.
Questa vulnerabilità è stata pubblicata per la prima volta da NVD il 03/10/2017, ed è stata assegnata al livello più alto di Base Score 10, che è Critico. Il fattore principale che ha portato al punteggio di vulnerabilità più alto è che le applicazioni potrebbero essere sfruttate sulla rete con minima complessità e alto impatto sull'integrità e la disponibilità.
La vulnerabilità permetteva all'attaccante di eseguire RCE sull'applicazione introducendo espressioni Object Graph Navigation Library (OGNL) nelle intestazioni HTTP.
Le versioni vulnerabili del framework sono Apache Struts 2 versioni 2.3.x anteriori alla 2.3.32 e 2.5.x anteriori alla 2.5.10.1.
.png)
Il codice vulnerabile si trova nel Jakarta Multipart Parser; per eseguire un exploit, l'attaccante ha sfruttato la vulnerabilità nella funzione LocalizedTextUtil.findText che interpretava il messaggio fornito all'interno di ${…} come un'espressione Object Graph Navigation Library (OGNL). L'attacco può quindi utilizzare queste espressioni OGNL che a loro volta eseguono comandi di sistema e possono rivelare il contenuto di file sensibili come /etc/password,/etc/shadow, dando all'attaccante il controllo completo. L'applicazione restituiva inoltre l'output dei comandi eseguiti dall'attaccante, facilitando così l'attaccante stesso.
L'immagine seguente mostra la richiesta HTTP con l'espressione OGNL, che ha permesso agli attaccanti di sfruttare la vulnerabilità.

Nel marzo 2017, quando la vulnerabilità CVE-2017-5638 fu scoperta per la prima volta nel framework Apache Struts, la Apache Foundation rilasciò una patch per la vulnerabilità, ma Equifax non applicò la patch al sistema vulnerabile perché le scansioni eseguite per trovare il sistema vulnerabile non funzionarono.
Da maggio a luglio 2017, gli attaccanti sono riusciti ad accedere a diversi database di Equifax, esponendo le informazioni di milioni di persone. L'attacco ha colpito 143 milioni di persone e ha anche rivelato le informazioni delle carte di credito di oltre 200.000 persone.
Gli attaccanti sono riusciti a continuare gli attacchi senza essere notati per 76 giorni.
L'azienda ha speso 1,4 miliardi di dollari per aggiornare la propria sicurezza dopo la grande violazione dei dati.
Aggiornamenti frequenti
Aggiornare tutti i componenti, incluso il framework, utilizzati nell'applicazione
Test di penetrazione frequenti
Programmi di bounty per trovare vulnerabilità
Informazioni su Apache Stratus 2, Wikipedia
Vulnerabilità spiegata, Synopsis