Red Hot Cyber
La cybersecurity è condivisione. Riconosci il rischio, combattilo, condividi le tue esperienze ed incentiva gli altri a fare meglio di te.
Cerca

I Bug critici su FortiSIEM, macOS e Glibc richiedono una rapida applicazione delle patch

Sandro Sana : 30 Maggio 2024 07:56

Un rapporto di Horizon3 e diverse PoC dimostrano la gravità delle falle di sicurezza scoperte recentemente

FortiSIEM: due vulnerabilità con punteggio 10/10

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:

SCORSO DEL 25% SUL CORSO NIS2 FINO AL 31 DICEMBRE!
La direttiva NIS2 rappresenta una delle novità più importanti per la sicurezza informatica in Europa, imponendo nuovi obblighi alle aziende e alle infrastrutture critiche per migliorare la resilienza contro le cyber minacce. Con scadenze stringenti e penalità elevate per chi non si adegua, comprendere i requisiti della NIS2 è essenziale per garantire la compliance e proteggere la tua organizzazione.

Accedi alla pagina del corso condotto dall'Avv. Andrea Capelli sulla nostra Academy e segui l'anteprima gratuita.

Per un periodo limitato, potrai utilizzare il COUPON NIS-84726 che ti darà diritto ad uno sconto del 20% sul prezzo di copertina del corso
Per ulteriori informazioni, scrivici ad [email protected] oppure scrivici su Whatsapp al 379 163 8765 

Supporta RHC attraverso:


Ti piacciono gli articoli di Red Hot Cyber? Non aspettare oltre, iscriviti alla newsletter settimanale per non perdere nessun articolo.

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.

macOS: una vulnerabilità che permette l’esecuzione di codice con privilegi di kernel

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.

Glibc: una vulnerabilità che può essere sfruttata per attacchi di esecuzione di codice remoto

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.

Conclusioni

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.

Sandro Sana
Membro del gruppo di Red Hot Cyber Dark Lab. Si occupa d'Information Technology dal 1990 e di Cybersecurity dal 2014 (CEH - CIH - CISSP - CSIRT Manager - CTI Expert), relatore a SMAU 2017 e SMAU 2018, docente SMAU Academy & ITS, membro CLUSIT e giornalista presso RedHot Cyber, Cybersecurity360 & Digital360.
Visita il sito web dell'autore