Në projektin e hapur Fluent Bit është zbuluar një vulnerabilitet (CVE-2024-4323), i cili lejon që të arrihet dëmtimi i memories nga distanca, gjë që mund të përdoret për të shkaktuar ndalesë shërbimi, rrjedhje të të dhënave dhe potencialisht ekzekutimin e kodit të tij në server. Problemi, i cili është emërtuar me kodin "Linguistic Lumberjack", ka një nivel kritik rreziku (9.8 nga 10). Vulnerabiliteti shfaqet që nga versioni 2.0.7 dhe është rregulluar në përditësimet e korrigjimit 2.2.3 dhe 3.0.4.
Fluent Bit ka më shumë se 10 miliard instalimesh dhe përdoret për procesimin dhe grumbullimin e logëve dhe metrikave në shumë kompani dhe platforma cloud, siç janë përdoruesit si Google Cloud, AWS, DigitalOcean, vmWare, Cisco, Microsoft, Lyft, LinkedIn, Walmart, Couchbase, Swift dhe Dell. Gjatë marsit janë shkarkuar 13 milion imazhe Docker me Fluent Bit. Sipas kompanisë Tenable, e cila ka zbuluar vulnerabilitetet, shumë shërbime cloud nuk bllokojnë aksesin në Web API për të marrë metrikat e brendshme, si uptime, dhe për të trajtuar thirrjet në këto API përdoret Fluent Bit.
Vulnerabiliteti shkaktohet nga një gabim në serverin HTTP të integruar, i cili shfaqet gjatë përpunimit të kërkesave të jashtme përmes thirrjeve API "/api/v1/traces" dhe "/api/v1/trace", duke lejuar përdoruesit të aksesojnë informacionin e gjurmimeve të konfiguruara. Pavarësisht nga aktivizimi i gjurmimit, përdoruesi ka mundësinë të qaset në të dhënat e API-së nëse i është dhënë akses i duhur. Gjatë analizës së kërkesave të ardhura, llojet e disa fushave hyrëse, të dërguara përmes një array në bllokun JSON, u përcaktuan gabimisht dhe, pavarësisht llojit të pritur, u interpretuan si lloji MSGPACK_OBJECT_STR. Caktimi në array i vlerave jo-string, si për shembull parametrat e numrave, shkaktonte dëmtim të memories sepse funksioni flb_sds_create_len() merrte vlerën e dërguar numerike si një fushë me madhësi string.
Shembulli i kĂ«rkesĂ«s qĂ« shkakton ndĂ«rprerjen: 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"
Gjatë eksperimentimeve, studiuesit arritën të shkaktojnë ndërprerjen e shërbimit dhe të përcaktojnë përmbajtjen e mbetur të memories, e cila përdorej gjatë përpunimit të kërkesave HTTP dhe përmban, për shembull, fragmente të të dhënave konfidenciale, siç janë çelësat e aksesit. Duke qenë se problemi çon në mbingarkesë të varur nga parametrat e dërguar, teorikisht mund të shfrytëzohet për ekzekutimin e kodit të tij në sistem, por kërkuesit që zbuluan problemin nuk e verifikuan këtë mundësi për shkak të mungesës së kohës për të punuar mbi eksploitin.
Burimi: opennet.ru
