La recente vulnerabilità di Struts2 consentiva l'esecuzione di codice in remoto fornendo un'intestazione Content-Type falsa, come spiegato qui: link
La pagina sopra riportata rimanda anche a: - cosa presumo siano - la correzione commits . Quello che non sono stato in grado di trovare fino ad ora è il punto in cui nel codice base degli strut è stata valutata l'intestazione fasulla.
La wiki Struts afferma:
Problem
It is possible to perform a RCE attack with a malicious Content-Type value. If the Content-Type value isn't valid an exception is thrown which is then used to display an error message to a user.
Ma passare semplicemente un messaggio di errore, anche se composto da input dell'utente, non dovrebbe eseguire un comando exec (), sicuramente?
Qualcuno può spiegare in che modo questa vulnerabilità ha funzionato, tecnicamente - preferibilmente con un collegamento alla linea buggy nel repository di Struts? O non c'è davvero nessun exec
colpevole?