Posible ejecución remota de código en Apache Struts

Fecha de publicación: 
10/07/2017
Importancia: 
4 - Alta
Recursos afectados: 

La vulnerabilidad afecta a Struts 2.3.x con Struts 1 plugin.

Descripción: 

Se ha descubierto una vulnerabilidad de ejecución remota de código en versiones del framework Apache Struts a través de la aplicación instalada por defecto Struts Showcase app. Esta vulnerabilidad podría permitir a un atacante remoto ejecutar código en el sistema afectado y tomar el control del mismo.

Solución: 

Apache Struts recomienda utilizar las claves de recurso en lugar de pasar un mensaje en bruto a ActionMessage tal y como se muestra a continuacion:

    messages.add("msg", new ActionMessage("struts1.gangsterAdded", gform.getName()));

No debe realizarse mediante:

    messages.add("msg", new ActionMessage("Gangster " + gform.getName() + " was added"));

Adicionalmente también puede deshabilitarse Struts Showcase app y actualizar a la versión Apache Struts 2.5.10.

Detalle: 

Struts es un framework de soporte para el desarrollo de aplicaciones web basadas en el modelo de arquitectura Modelo-Vista-Controlador diseñada para operar bajo la plataforma Java Enterprise Edition.

Es posible realizar un ataque de ejecución remota de código a través de un valor malicioso en un campo cuando se usa el complemento Struts 1 y el valor es parte de un mensaje presentado al usuario, cuando se usa por ejemplo una entrada no fiable como parte de un mensaje de error en la clase ActionMessage.