Fluent Bit'i avatud projektis tuvastati haavatavus (CVE-2024-4323), mis vĂ”imaldab kauglahenduste kaudu pĂ”hjustada mĂ€lu kahjustust, mida saab kasutada teenuse keelamiseks, andmelekete tekitamiseks ja potentsiaalselt ka oma koodi tĂ€itmiseks serveris. Probleem, millele on antud koodinimi âLinguistic Lumberjackâ, omab kriitilist ohtu (9,8 skaalal 10). Haavatavus avaldub alates versioonist 2.0.7 ja on kĂ”rvaldatud parandustes 2.2.3 ja 3.0.4.
Fluent Bit'i on rakendatud ĂŒle 10 miljardi korra ja seda kasutatakse logide ja mÔÔdikute töötlemiseks ning kogumiseks paljudes ettevĂ”tetes ja pilveplatvormidel, nĂ€iteks Google Cloud, AWS, DigitalOcean, vmWare, Cisco, Microsoft, Lyft, LinkedIn, Walmart, Couchbase, Swift ja Dell. MĂ€rtsi jooksul laaditi Fluent Bit'iga 13 miljonit Docker'i pilti. EttevĂ”tte Tenable andmetel, mis tuvastas haavatavusi, ei blokeeri paljud pilveteenused juurdepÀÀsu Web API-dele, et saada sisemisi mÔÔdikuid, nagu nĂ€iteks tööaeg, ning Fluent Bit'i kasutatakse nende API-dele suunatud pĂ€ringute töötlemiseks.
Haavatavus on tingitud veast sisseehitatud HTTP serveris, mis ilmneb vĂ€liste pĂ€ringute töötlemisel API- kĂ”nede kaudu â/api/v1/tracesâ ja â/api/v1/traceâ, vĂ”imaldades kasutajatel pÀÀseda ligi seadistatud jĂ€lgimisandmetele. Kasutaja saab juurdepÀÀsu API andmetele, kui tal on vastavad Ă”igused, sĂ”ltumata jĂ€lgimise lubamisest. Sissetulevate pĂ€ringute analĂŒĂŒsimisel mÀÀrati mĂ”ned sisendvĂ€ljade tĂŒĂŒbid, mis edastati massiivina JSON plokis, valesti ja tĂ”lgendati sĂ”ltumata oodatud vĂ€ljatĂŒĂŒbist kui MSGPACK_OBJECT_STR. Massiivis mitte-stringiliste vÀÀrtuste, nĂ€iteks tĂ€isarvupĂ”histe parameetrite mÀÀramine pĂ”hjustas mĂ€lu kahjustamise, kuna funktsioon flb_sds_create_len() tĂ”mbas edastatud tĂ€isarvuvÀÀrtuse vĂ€lja stringi suuruse vĂ€ljana.
NĂ€ide pĂ€ringust, mis pĂ”hjustab krahhi: 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»
Eksperimentide kĂ€igus suutsid uurijad teenuse sunniviisilise sulgemise tekitada ning mÀÀrata kindlaks jÀÀkmĂ€lu sisu, mida kasutati HTTP-pĂ€ringute töötlemisel ja mis sisaldas nĂ€iteks konfidentsiaalsete andmete fragmente, nagu juurdepÀÀsuvĂ”tmed. Kuna probleem toob kaasa sĂ”ltuva parameetritest puhverdusĂŒlevoolu, siis teoreetiliselt vĂ”iks seda Ă€ra kasutada sĂŒsteemis oma koodi tĂ€itmiseks, kuid probleemi avastanud uurijad ei uurinud selle vĂ”imaluse olemasolu aja puudumise tĂ”ttu.
Allikas: opennet.ru
