En el marco web Apache Struts, utilizado para crear aplicaciones web en Java con la paradigma MVC (Modelo-Vista-Controlador), se ha identificado una vulnerabilidad (CVE-2024-53677). Esta vulnerabilidad permite a un atacante externo escribir un archivo en cualquier ubicación del sistema de archivos del servidor mediante el envío de una solicitud HTTP especialmente diseñada. El problema afecta a las versiones desde 2.0.0 hasta 2.3.37, desde 2.5.0 hasta 2.5.33 y desde 6.0.0 hasta 6.3.0.2, y se manifiesta en aplicaciones que utilizan el componente FileUploadInterceptor para la carga de archivos en el servidor.
La vulnerabilidad es causada por la falta de una adecuada verificación de los parámetros transmitidos al cargar archivos. Si se tiene acceso a las funciones de carga de archivos en la interfaz web basada en Apache Struts, el atacante puede especificar un valor como «..\/..\/..\/..\/..\/webapps\/ROOT» y lograr que el archivo se guarde fuera del directorio destinado a almacenar datos cargados (prototipo de exploit). Al obtener la capacidad de escribir archivos en partes arbitrarias del sistema de archivos, se puede organizar la ejecución de sus propios comandos, servidor, sobrescribiendo scripts o archivos de configuración, según lo permitan los permisos del usuario bajo el cual se ejecuta la aplicación web. Si la aplicación web se ejecuta en un contenedor de Apache Tomcat con permisos de root, el atacante podría obtener acceso privilegiado al sistema.
Las vulnerabilidades en Apache Struts son significativas, ya que este marco es popular en sistemas corporativos accesibles a través de la web. Según estadísticas de RedMonk, el marco Apache Struts ha sido utilizado en aplicaciones web por el 65% de las empresas en la lista Fortune 100. En 2017, un ataque al sistema de información de la compañía Equifax, que utilizaba una versión vulnerable de Apache Struts, provocó la filtración de datos personales de 143 millones de residentes en EE. UU.
Fuente: opennet.ru
