La reciente vulnerabilidad de Struts2 permitió la ejecución remota de código al proporcionar un encabezado de tipo de contenido falso, como se explica aquí: enlace
La página de arriba también contiene enlaces a - lo que asumo que son - el fijación commits . Lo que no he podido encontrar hasta ahora es dónde se evaluó realmente el encabezado falso en el código de struts.
El el propio wiki de Struts dice:
Problema
Es posible realizar un ataque RCE con un malicioso Valor de tipo de contenido. Si el valor de Tipo de Contenido no es una excepción válida se lanza y se usa para mostrar un mensaje de error a un usuario.
Pero simplemente pasar un mensaje de error, incluso cuando está compuesto por la entrada del usuario, no debería ejecutar un comando exec (), ¿no?
¿Puede alguien explicar cómo esta vulnerabilidad realmente funcionó, técnicamente, preferiblemente con un enlace a la línea de buggy en el repositorio de Struts? ¿O realmente no hay exec
culpable?