Vulnerabilità in Fluent Bit che colpisce molti provider di cloud

Nel progetto aperto Fluent Bit è stata identificata una vulnerabilità (CVE-2024-4323) che consente di danneggiare la memoria da remoto, potenzialmente sfruttabile per causare un'interruzione del servizio, una perdita di dati e l'esecuzione di codice non autorizzato sul server. Il problema, denominato "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 risolta negli aggiornamenti correttivi 2.2.3 e 3.0.4.

Fluent Bit conta oltre 10 miliardi di implementazioni ed è utilizzato per l'elaborazione e la raccolta di log e metriche in molte aziende e piattaforme cloud. Tra gli utenti ci sono 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 contenenti Fluent Bit. Secondo Tenable, l'azienda che ha scoperto le vulnerabilità, molti servizi cloud non bloccano l'accesso alle API Web per ottenere metriche interne, come l'uptime, e Fluent Bit viene utilizzato per elaborare le richieste a tali API.

La vulnerabilità è causata da un errore nel server HTTP integrato, che si verifica durante l'elaborazione delle richieste esterne tramite le chiamate API "/api/v1/traces" e "/api/v1/trace", consentendo agli utenti di ricevere informazioni sulle tracce configurate. Indipendentemente dall'abilitazione della tracciabilità, un utente può accedere ai dati API se ha ricevuto l'autorizzazione adeguata. Durante l'analisi delle richieste in entrata, i tipi di alcuni campi di input trasmessi tramite un array nel blocco JSON venivano determinati in modo errato e, indipendentemente dal tipo atteso del campo, venivano interpretati come MSGPACK_OBJECT_STR. L'inclusione di valori non stringa, come parametri interi, nell'array di input causava un danneggiamento della memoria poiché la funzione flb_sds_create_len() estraeva il valore intero fornito come campo di dimensione stringa.

Esempio di richiesta che provoca un 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 gli esperimenti, i ricercatori sono riusciti a ottenere un arresto anomalo del servizio e a determinare il contenuto residuo della memoria utilizzata nel trattamento delle richieste HTTP, che conteneva, ad esempio, frammenti di dati riservati, come le chiavi di accesso. Poiché il problema porta a un overflow del buffer legato ai parametri trasmessi, teoricamente potrebbe essere sfruttato per eseguire codice nel sistema, ma questa possibilità non è stata testata dai ricercatori che hanno identificato il problema a causa della mancanza di tempo per lavorare su un exploit.

Fonte: opennet.ru

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