
CVE-2012-1823 - Iniezione di Argomenti PHP CGI per Esecuzione Remota di Codice (RCE)
Gravità: Critica (CVSS 9.8)
CVE: CVE-2012-1823
Pubblicato: 11 Maggio 2012
Software Affetto: PHP eseguito in modalità CGI (php-cgi)
Tipo di Vulnerabilità: Iniezione di Argomenti / Esecuzione Remota di Codice (RCE)
Vettore di Attacco: Rete
Autenticazione Richiesta: Nessuna
CVE-2012-1823 è una delle vulnerabilità di Esecuzione Remota di Codice più significative mai scoperte in PHP. La vulnerabilità colpisce le installazioni di PHP configurate per essere eseguite tramite l'Interfaccia Gateway Comune (CGI), consentendo a un utente malintenzionato non autenticato di eseguire codice PHP arbitrario da remoto.
A differenza delle vulnerabilità che richiedono difetti all'interno di un'applicazione web, questo problema esiste all'interno di PHP stesso quando viene implementato utilizzando php-cgi. Poiché la vulnerabilità esiste a livello di interprete, ogni applicazione PHP ospitata su un server affetto diventa vulnerabile, indipendentemente dal fatto che l'applicazione contenga o meno difetti di codifica.
La vulnerabilità è diventata ampiamente pubblicizzata nel 2012 a causa della sua semplicità, affidabilità e ampio sfruttamento su Internet. Anche anni dopo la divulgazione, scansioni a livello di Internet continuano a identificare sistemi vulnerabili, e la vulnerabilità rimane inclusa in framework di sfruttamento e strumenti di rilevamento difensivi. :contentReference[oaicite:0]{index=0}
La vulnerabilità esiste all'interno dell'implementazione CGI di PHP (php-cgi).
Normalmente, i parametri della query HTTP sono destinati a essere passati agli script PHP come input utente.
Tuttavia, PHP elabora erroneamente stringhe di query appositamente create che non contengono un carattere uguale (=).
Invece di trattare la stringa di query puramente come dati utente, PHP interpreta erroneamente porzioni di essa come argomenti della riga di comando passati direttamente all'eseguibile PHP.
Poiché PHP supporta numerosi interruttori da riga di comando (come -d), un attaccante può sovrascrivere le opzioni di configurazione di runtime di PHP durante l'elaborazione della richiesta.
Ciò consente all'attaccante di:
La causa principale è la gestione impropria di php_getopt() all'interno di:
sapi/cgi/cgi_main.c
Nello specifico, PHP non è riuscito a ignorare correttamente l'analisi della riga di comando durante l'elaborazione di stringhe di query dannose prive del segno di uguale (=). :contentReference[oaicite:1]{index=1}
L'eseguibile CGI accetta parametri da riga di comando.
Per esempio:
php-cgi -d allow_url_include=1
Normalmente questi parametri dovrebbero provenire solo dal sistema operativo.
Invece, PHP ha permesso erroneamente alle richieste HTTP di iniettare tali parametri attraverso URL appositamente creati.
L'attaccante poteva quindi manipolare la configurazione di runtime di PHP prima che lo script di destinazione venisse eseguito.
Ciò ha effettivamente trasformato una semplice richiesta HTTP in un'esecuzione da riga di comando contro php-cgi.
Le seguenti versioni di PHP sono vulnerabili:
| Versione | Stato |
|---|---|
| PHP < 5.3.12 | Vulnerabile |
| PHP 5.4.x < 5.4.2 | Vulnerabile |
Solo le installazioni che utilizzano la modalità CGI (php-cgi) sono interessate.
PHP eseguito come:
generalmente non sono interessate da CVE-2012-1823 stesso. :contentReference[oaicite:2]{index=2}
Un attaccante richiede solo:
La vulnerabilità è completamente sfruttabile da remoto.
L'attacco segue tipicamente queste fasi:
Una volta ottenuta l'esecuzione del codice, gli attaccanti comunemente:
Uno sfruttamento riuscito porta al compromesso completo dell'applicazione PHP.
Le potenziali conseguenze includono:
Se PHP viene eseguito con privilegi elevati, potrebbe essere possibile anche un compromesso a livello di sistema.
| Metrica | Valore |
|---|---|
| Punteggio Base | 9.8 |
| Gravità | Critica |
| Vettore d'Attacco | Rete |
| Complessità d'Attacco | Bassa |
| Privilegi Richiesti | Nessuno |
| Interazione Utente | Nessuna |
| Riservatezza | Alta |
| Integrità | Alta |
| Disponibilità | Alta |
Diverse caratteristiche hanno reso CVE-2012-1823 particolarmente impattante:
La sua combinazione di facilità di sfruttamento e grave impatto ha portato a estesi attacchi nel mondo reale e alla sua inclusione nel catalogo delle Vulnerabilità Note Sfruttate (KEV) di CISA. :contentReference[oaicite:4]{index=4}
Gli amministratori dovrebbero verificare:
Gli indicatori includono:
Scanner di sicurezza come Nuclei, Nessus, OpenVAS e moduli Metasploit possono rilevare configurazioni vulnerabili. :contentReference[oaicite:5]{index=5}
Le mitigazioni raccomandate includono:
| Data | Evento |
|---|---|
| Maggio 2012 | Vulnerabilità divulgata pubblicamente |
| Maggio 2012 | Patch di sicurezza rilasciate |
| 2012 | Exploit pubblici rilasciati |
| 2012 | Modulo Metasploit pubblicato |
| Anni successivi | Sfruttamento di massa su Internet osservato |
| Presente | Continua ad apparire in scansioni di vulnerabilità e sistemi legacy |
Questo repository è destinato esclusivamente a scopi educativi, ricerca sulla sicurezza, analisi delle vulnerabilità e test difensivi. Qualsiasi informazione qui contenuta dovrebbe essere utilizzata solo su sistemi per i quali si dispone di autorizzazione esplicita. Lo sfruttamento non autorizzato di sistemi vulnerabili è illegale e non etico.