Vulnerabilità in Fluent Bit che coinvolge molti fornitori di cloud

È stata identificata una vulnerabilità nel progetto open source Fluent Bit (CVE-2024-4323) che consente di danneggiare la memoria in remoto, potendo portare a situazioni di denial of service, fuga di dati e potenzialmente all'esecuzione di codice malevolo sul server. Questo problema, nominato «Linguistic Lumberjack», ha un livello di gravità critico (9,8 su 10). La vulnerabilità si manifesta a partire dalla versione 2.0.7 ed è stata corretta negli aggiornamenti 2.2.3 e 3.0.4.

Fluent Bit conta oltre 10 miliardi di installazioni ed è utilizzato per l'elaborazione e la raccolta di log e metriche in molte aziende e piattaforme cloud, tra cui Google Cloud, AWS, DigitalOcean, vmWare, Cisco, Microsoft, Lyft, LinkedIn, Walmart, Couchbase, Swift e Dell. Nel mese di marzo sono stati scaricati 13 milioni di immagini Docker con Fluent Bit. Secondo i dati di Tenable, che ha rilevato le vulnerabilità, molti servizi cloud non bloccano l'accesso alle API Web per la raccolta di metriche interne, come l'uptime, e Fluent Bit viene utilizzato per gestire le richieste a tali API.

La vulnerabilità è causata da un errore nel server HTTP incorporato, che si manifesta durante l'elaborazione delle richieste esterne tramite le chiamate API «/api/v1/traces» e «/api/v1/trace», consentendo agli utenti di accedere alle informazioni sulle tracce configurate. Indipendentemente dall'attivazione della tracciatura, l'utente ha la possibilità di accedere ai dati API se gli è stato fornito l'accesso appropriato. Durante l'analisi delle richieste in arrivo, i tipi di alcuni campi di input inviati tramite un array nel blocco JSON venivano determinati in modo errato e, indipendentemente dal tipo di campo previsto, venivano interpretati come tipo MSGPACK_OBJECT_STR. L'indicazione in un array di valori non stringa, ad esempio parametri interi, portava a un danneggiamento della memoria poiché la funzione flb_sds_create_len() estraeva il valore intero passato come campo di dimensione stringa.

Esempio di richiesta che causa il crash: python3 -c ‘print(«{\»output\»:\»stdout\», \»params\»: {\»format\»: \»json\»},\»inputs\»:[\»» + «A»*8 + «\»,» + str(0xffffffff) + «, \»» + «B»*500 + «\»]}»)’ > test curl -v http://:2020/api/v1/traces/ -H «Content-Type: application/json» -H «Expect: » —data «@test»

Durante i loro esperimenti, i ricercatori sono riusciti a forzare l'interruzione del servizio e a determinare il contenuto residuo della memoria utilizzata per elaborare le richieste HTTP, che includeva, ad esempio, frammenti di dati riservati, come le chiavi d'accesso. Poiché il problema può portare a un overflow del buffer che dipende dai parametri trasmessi, teoricamente potrebbe essere sfruttato per eseguire codice nel sistema, ma i ricercatori che hanno identificato il problema non hanno verificato questa possibilità a causa della mancanza di tempo per lavorare su un exploit.

Fonte: opennet.ru

Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster