Nel framework web Apache Struts, utilizzato per creare applicazioni web in Java seguendo la paradigma MVC (Model-View-Controller), è stata rilevata una vulnerabilità (CVE-2024-53677). Questa vulnerabilità consente a un potenziale attaccante di scrivere un file in un luogo arbitrario del filesystem sul server tramite l'invio di una richiesta HTTP appositamente formattata. Il problema riguarda le versioni dalla 2.0.0 alla 2.3.37, dalla 2.5.0 alla 2.5.33 e dalla 6.0.0 alla 6.3.0.2, e si manifesta nelle applicazioni che utilizzano il componente FileUploadInterceptor per il caricamento dei file sul server.
La vulnerabilità è causata dalla mancanza di un'adeguata verifica dei parametri trasmessi durante il caricamento dei file. Qualora si abbia accesso alle funzionalità di upload nel web interface basato su Apache Struts, un attaccante può specificare un valore del tipo «../../../../../webapps/ROOT» e ottenere così la possibilità di salvare un file al di fuori della directory designata per l'archiviazione dei dati caricati (prototipo dell'exploit). Ottenendo la possibilità di scrivere file in parti arbitrarie del filesystem, si possono eseguire comandi personalizzati. server, riscrivendo script o file di configurazione, a condizione che i diritti dell'utente con cui viene eseguita l'applicazione web lo consentano. Se l'applicazione web viene eseguita in un contenitore Apache Tomcat avviato con privilegi di root, l'attaccante può ottenere accesso privilegiato al sistema.
Le vulnerabilità in Apache Struts sono significative poiché questo framework è ampiamente utilizzato nei sistemi aziendali accessibili via web. Secondo le statistiche di RedMonk, il framework Apache Struts è stato utilizzato nel 65% delle applicazioni web delle aziende incluse nella lista Fortune 100. Nel 2017, un attacco al sistema informativo della compagnia Equifax, che utilizzava una versione vulnerabile di Apache Struts, ha portato alla fuga di dati personali di 143 milioni di cittadini statunitensi.
Fonte: opennet.ru
