Në projektin e hapur Fluent Bit është identifikuar një dobësi (CVE-2024-4323) e cila lejon që të arrihet dëmtimi i memories nga distanca, e cila mund të përdoret për të shkaktuar ndalim të shërbimit, rrjedhjen e të dhënave dhe potencialisht ekzekutimin e kodit të tij në server. Problemi, i quajtur "Lumberjack Lingustik", ka një nivel kritike rreziku (9.8 nga 10). Dobësia shfaqet që nga versioni 2.0.7 dhe është korrigjuar në përditësimet 2.2.3 dhe 3.0.4.
Fluent Bit ka mbi 10 miliardë implementime dhe përdoret për përpunimin dhe mbledhjen e logjeve dhe metrikave në shumë kompani dhe platforma në re, duke përfshirë përdorues të tillë 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 identifikoi dobësitë, shumë shërbime në re nuk bllokojnë aksesin në Web API për marrjen e metrikave të brendshme, si uptime, dhe për të trajtuar kërkesat në këto API përdoret Fluent Bit.
Dobësia shkaktohet nga një gabim në serverin HTTP të integruar, i cili shfaqet gjatë trajtimit të kërkesave të jashtme përmes thirrjeve API "/api/v1/traces" dhe "/api/v1/trace", duke lejuar përdoruesit të marrin informacion rreth gjurmimeve të konfigurueshme. Pavarësisht se gjurmimi është i aktivizuar, përdoruesi ka mundësinë të aksesojë të dhënat e API, nëse i është dhënë qasje përkatëse. Gjatë analizës së kërkesave të ardhshme, disa lloje fushash hyrëse, që dërgohen përmes një array në bllokun JSON, janë interpretuar gabim dhe pavarësisht llojit të pritur të fushe, janë interpretuar si tip MSGPACK_OBJECT_STR. Caktimi i vlerave jo-string në array, për shembull, parametrave të numrave të plotë, shkakton dëmtim të memories sepse funksioni flb_sds_create_len() nxjerr vlerën e dërguar si një fushë me madhësinë e stringut.
Shembulli i njĂ« kĂ«rkese qĂ« shkakton ndalim tĂ« papritur: 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ë eksperimenteve, studiuesit arritën të provojnë një ndalim të papritur të shërbimit dhe të përcaktojnë përmbajtjen mbetëse të memories që përdorej gjatë përpunimit të kërkesave HTTP, e cila përmbante, për shembull, fragmente të dhënash konfidenciale si çelësat e hyrjes. Duke qenë se problemi shkakton një mbipopullim të memories të varur nga parametrat e dërguar, në teori, ai mund të shfrytëzohet për të ekzekutuar kodin e tyre në sistem, por studiuesit që e zbuluan këtë problem nuk e testuan këtë mundësi për shkak të mungesës së kohës për të punuar mbi eksploitin.
Burimi: opennet.ru
