Sandro Sana : 30 Maggio 2024 07:56
Un rapporto di Horizon3 e diverse PoC dimostrano la gravità delle falle di sicurezza scoperte recentemente
Vulnerabilità Critica: La società di sicurezza informatica Horizon3 ha rivelato i dettagli e una prova di concetto (PoC) per una vulnerabilità critica nei dispositivi FortiSIEM, identificata come CVE-2024-23108. Questa falla permette l’esecuzione remota di comandi con privilegi di root senza necessità di autenticazione, classificandola con un punteggio di gravità massima di 10 su 10. La vulnerabilità è stata corretta a febbraio di quest’anno e riguarda FortiClient FortiSIEM dalla versione 6.4.0 in poi.
Analisi del Codice: L’analisi del codice ha rivelato che, nonostante i tentativi di mitigazione, persiste un’iniezione di comando di secondo ordine quando vengono inviati certi parametri a datastore.py. Questo significa che un attaccante può inviare una richiesta HTTP contenente dei comandi shell che vengono eseguiti dallo script Python con privilegi di root. Il problema è dovuto al fatto che lo script usa la funzione os.system() per eseguire dei comandi basati sui parametri ricevuti, senza alcuna validazione o sanitizzazione. Un esempio di richiesta malevola è il seguente:
Sei un Esperto di Formazione?
Entra anche tu nel Partner program!
Accedi alla sezione riservata ai Creator sulla nostra Academy e scopri i vantaggi riservati ai membri del Partner program.
Per ulteriori informazioni, scrivici ad [email protected] oppure su Whatsapp al 379 163 8765
Supporta RHC attraverso:
GET /phoenix/rest/configs/datasource/;id HTTP/1.1
Questo comando permette di ottenere l’identificativo del processo Python, che può essere usato per ottenere un shell interattivo tramite l’invio di un segnale SIGSTOP, come illustrato nella PoC di Horizon3.
Impatto e Soluzione: Oltre a CVE-2024-23108, è stata identificata e risolta un’altra vulnerabilità altrettanto grave, CVE-2024-23109, anch’essa con un livello di gravità di 10/10. Inizialmente, queste falle non erano state riconosciute come tali dalla società, che le aveva incluse nell’avviso per la precedente vulnerabilità CVE-2023-34992. Tuttavia, ulteriori indagini hanno rivelato che CVE-2024-23108 e CVE-2024-23109 rappresentavano in realtà delle soluzioni alternative per CVE-2023-34992, portando alla necessità di chiarire e risolvere il malinteso. Entrambe le vulnerabilità sono state corrette nella stessa release.
CVE-2024-23109 è una vulnerabilità di tipo directory traversal, che permette di accedere a file arbitrari sul sistema tramite la richiesta di una risorsa non valida. Ad esempio, la richiesta seguente permette di ottenere il file /etc/passwd:
GET /phoenix/rest/configs/datasource/../../../etc/passwd HTTP/1.1
La vulnerabilità è dovuta al fatto che lo script non controlla la presenza di caratteri speciali come .. nel parametro della richiesta, e usa la funzione open() per aprire il file corrispondente. Questo può portare a una compromissione della confidenzialità dei dati, e in alcuni casi, anche dell’integrità e della disponibilità.
Indicatori di Compromissione: I log del servizio phMonitor registrano tentativi di sfruttamento, che possono essere identificati e ispezionati per input sospetti.
Parallelamente, il ricercatore Van Tilen ha pubblicato una PoC per CVE-2024-27842, una vulnerabilità che permette a applicazioni macOS di eseguire codice arbitrario con privilegi di kernel. Questo problema è stato corretto nella versione macOS Sonoma 14.5, rilasciata questo mese.
La vulnerabilità sfrutta una condizione di race condition nel driver IOHIDFamily, che gestisce gli eventi di input/output. Se un’attaccante riesce a creare e distruggere un oggetto IOHIDEventService in modo concorrente, può ottenere un riferimento a un oggetto liberato e usarlo per scrivere nella memoria del kernel.
L’attacco si basa su due fasi: la prima consiste nel creare un oggetto IOHIDEventService con un tipo specifico, ad esempio kIOHIDEventTypeDigitizer, e poi distruggerlo. La seconda consiste nel creare un altro oggetto IOHIDEventService con un tipo diverso, ad esempio kIOHIDEventTypeAccelerometer, e poi inviare un evento con dei dati controllati dall’attaccante. Se la prima fase e la seconda fase avvengono in modo concorrente, c’è la possibilità che il driver usi il riferimento all’oggetto liberato per accedere ai dati dell’evento, causando una corruzione della memoria del kernel. Questa corruzione può essere sfruttata per sovrascrivere dei puntatori a funzioni e ottenere l’esecuzione di codice arbitrario con privilegi di kernel.
Infine, grazie agli sforzi del ricercatore di Ambionics Charles Fol, è disponibile una descrizione dettagliata e una PoC per la vulnerabilità CVE-2024-2961 presente in Glibc. Questa vulnerabilità può essere sfruttata per attacchi di esecuzione di codice remoto su applicazioni e siti web basati su PHP.
La vulnerabilità riguarda la funzione _nss_dns_getnetbyname_r, che viene chiamata quando si cerca di risolvere un nome di rete. Se il nome di rete contiene dei caratteri speciali, come \, la funzione genera un buffer overflow che può essere usato per eseguire codice arbitrario.
L’attacco si basa sul fatto che la funzione _nss_dns_getnetbyname_r usa la funzione sprintf() per formattare una stringa che contiene il nome di rete e il suo indirizzo IP. Tuttavia, la funzione sprintf() non controlla la lunghezza della stringa di destinazione, e se il nome di rete contiene dei caratteri di escape come \, la stringa può diventare più lunga di quanto previsto. Questo può portare a sovrascrivere la memoria successiva al buffer, che può contenere dei puntatori a funzioni o dei valori di ritorno. Manipolando questi valori, un attaccante può ottenere il controllo del flusso di esecuzione e invocare delle funzioni arbitrarie.
Questi recenti sviluppi mettono in luce l’importanza di mantenere sempre aggiornati i propri sistemi e di essere pronti a implementare le patch di sicurezza non appena disponibili. Le vulnerabilità scoperte possono avere conseguenze devastanti per la privacy e l’integrità dei dati, oltre che per la continuità operativa. Si raccomanda quindi di verificare la presenza di aggiornamenti e di applicarli al più presto, seguendo le indicazioni dei produttori.