Ava projektis Fluent Bit tuvastati haavatavus (CVE-2024-4323), mis vÔimaldab kaugjuhtimise teel mÀluprobleeme tekitada, mida saab kasutada teenuse katkestamiseks, andmete lekkimiseks ja potentsiaalselt koodi kÀivitamiseks serveris. Probleem, mille koodinimi on "Linguistic Lumberjack", on kriitilise tÀhtsusega (9.8 skaalal 10-st). Haavatavus ilmneb alates versioonist 2.0.7 ja on kÔrvaldatud parandavates vÀrskendustes 2.2.3 ja 3.0.4.
Fluent Bit'il on ĂŒle 10 miljardi kasutuse ja seda rakendatakse logide ja mÔÔdikute töötlemiseks ja kogumiseks paljude ettevĂ”tete ja pilveplatvormide seas, sealhulgas Google Cloud, AWS, DigitalOcean, vmWare, Cisco, Microsoft, Lyft, LinkedIn, Walmart, Couchbase, Swift ja Dell. MĂ€rtsis laaditi ĂŒles 13 miljonit Docker-kontseptsiooniga Fluent Bit. Vastavalt ettevĂ”tte Tenable, mis tuvastas haavatavused, ei blokeeri paljud pilveteenused juurdepÀÀsu Web API-le sisemiste mÔÔdikute, nagu sĂŒsteemi tööaeg, saamiseks, ning Fluent Bit'i kasutatakse selliste API-dega seotud pĂ€ringute töötlemiseks.
Haavatavus tuleneb 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 saada teavet seadistatud jĂ€lgimiste kohta. ĂkskĂ”ik, kas jĂ€lgimine on lubatud vĂ”i mitte, on kasutajal vĂ”imalik pÀÀseda API andmetele, kui talle on antud vastav ligipÀÀs. Sisenevate pĂ€ringute analĂŒĂŒsimisel mÀÀrati teatud sisendvĂ€ljade tĂŒĂŒbid, mida edastatakse JSON-bloki massiivis, valesti ja tĂ”lgendati sĂ”ltumata oodatud vĂ€ljatĂŒĂŒbidest kui MSGPACK_OBJECT_STR tĂŒĂŒpi. Massiivis, kus oli mÀÀratud mitte-stringi vÀÀrtusi, nagu tĂ€isarvulised parameetrid, pĂ”hjustas mĂ€luprobleeme, kuna funktsioon flb_sds_create_len() tootis edastatud tĂ€isarvulise vÀÀrtuse stringi pikkusena.
NĂ€ide pĂ€ringust, mis pĂ”hjustab sĂŒsteemi kokku kukkumise: 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»
Eksperimendis suudeti teadlastel saavutada teenuse hĂ€daseisundisse viimine ning mÀÀrata HTTP-pĂ€ringute töötlemisel kasutatud mĂ€lus sĂ€ilinud sisu, sealhulgas nĂ€iteks konfidentsiaalse info fragmente, nagu ligipÀÀsuvĂ”tmed. Kuna probleem vĂ”ib sĂ”ltuda edastatavatest parameetritest ja pĂ”hjustada puhverdusĂŒlessehitust, vĂ”ib seda teoreetiliselt Ă€ra kasutada sĂŒsteemis oma koodi kĂ€ivitamiseks, kuid probleemi avastanud teadlased ei kontrollinud seda vĂ”imalust aja puudumise tĂ”ttu exploiti kallal töötamiseks.
Allikas: opennet.ru
