В уеб фреймворка Apache Struts, използван за изграждане на уеб приложения на Java с парадигма MVC (Model-View-Controller), е открита уязвимост (CVE-2024-53677). Уязвимостта позволява на външен злоумышленик да запише файл на произволно място в файловата система на сървъра чрез изпращане на специално структурирано HTTP искане. Проблемът засяга версии от 2.0.0 до 2.3.37, от 2.5.0 до 2.5.33 и от 6.0.0 до 6.3.0.2, и се проявява в приложения, използващи компонента FileUploadInterceptor за качване на файлове на сървъра.
Уязвимостта е причинена от липсата на подходяща проверка на параметрите, предавани при качването на файлове. При наличие на достъп до функции за качване на файлове в уеб интерфейса, реализиран на базата на Apache Struts, атакуващият може да зададе стойност от вида «..\/..\/..\/..\/..\/webapps\/ROOT» и да постигне запазване на файл извън директорията за съхранение на качените данни (прототип на експлоита). Получавайки възможност за запис на файлове в произволни части на файловата система, може да организира изпълнението на свои команди на сървър, презаписвайки скриптове или конфигурационни файлове, доколкото позволяват правата на потребителя, под който работи уеб приложението. Ако уеб приложението работи в контейнер Apache Tomcat, стартиран с права root, атакуващият може да получи привилегирован достъп до системата.
Уязвимостите в Apache Struts са значими, тъй като този фреймворк е популярен в корпоративни системи, достъпни през уеб. По статистика на RedMonk фреймворкът Apache Struts е използван в 65% от уеб приложенията на компаниите от списъка Fortune 100. През 2017 година атака срещу информационната система на компания Equifax, използваща уязвима версия на Apache Struts, доведе до изтичане на лични данни на 143 милиона жители на САЩ.
Източник: opennet.ru
