Otkrili su kritičnu ranjivost u Apache OpenOfficeu

Prije nekoliko dana otkrivena je ranjivost identificirana u uredskom paketu Apache OpenOffice . Ova ranjivost, katalogizirana pod CVE-2021-33035, omogućuje izvršavanje koda prilikom otvaranja posebno dizajnirane datoteke u DBF formatu.

Problem je što se OpenOffice oslanja na vrijednosti fieldLength i fieldType ​​u zaglavlju DBF datoteke za dodjelu memorije bez provjere stvarnog tipa podataka u poljima.

O ranjivosti

Za izvođenje napada možete navesti tip INTEGER u vrijednosti fieldType, ali smjestiti veće podatke i navesti vrijednost fieldLength koja ne odgovara veličini INTEGER podataka, što će dovesti do toga da će se repni podaci polja zapisivati ​​izvan dodijeljenog međuspremnika.

Kao rezultat kontroliranog prepunjenja međuspremnika , istraživač je uspio redefinirati pokazivač povratka funkcije i, koristeći tehnike programiranja orijentiranog na povrat (ROP), postići izvršenje svog koda.

Jedan savjet koji sam dobio na početku istraživanja ranjivosti bio je da se usredotočim na jedan format datoteke, a ne na određeni dio softvera. Postoje dvije glavne prednosti ovog pristupa. Prvo, kao početniku nedostajalo vam je iskustvo za brzo prepoznavanje jedinstvenih vektora napada u pojedinim aplikacijama, dok je analiza formata datoteka uobičajena ulazna točka među mnoge aplikacije. 

Osim toga, uobičajeni formati datoteka dobro su dokumentirani putem Zahtjeva za komentare (RFC-ova) ili otvorenog izvornog koda, što smanjuje količinu napora potrebnog za obrnuti inženjering formata.

Prilikom korištenja ROP tehnike, napadač ne pokušava smjestiti svoj kod u memoriju, već operira na dijelovima strojnih instrukcija koje su već dostupne u učitanim bibliotekama, završavajući instrukcijom za upravljanje povratkom (u pravilu, to su krajnje funkcije biblioteke).

Posao exploita svodi se na izgradnju lanca poziva sličnim blokovima ("gadgetima") kako bi se dobila potrebna funkcionalnost.

Kao gadgeti u eksploataciji za OpenOffice spominje se da je korišten kôd iz biblioteke libxml2 korištene u OpenOfficeu za koji se, za razliku od OpenOfficea, pokazalo da je sastavljen bez zaštitnih mehanizama DEP (Sprečavanje izvršavanja podataka) i ASLR (Nasumična postavka rasporeda adresa) ).

Programeri OpenOfficea obaviješteni su o problemu 4. svibnja, nakon čega je javno otkrivanje ranjivosti zakazano za 30. kolovoza.

Budući da stabilna grana nije ažurirana na planirani datum, istraživač je odgodio objavljivanje detalja do 18. rujna, ali programeri OpenOfficea nisu imali vremena objaviti verziju 4.1.11 do tada. Vrijedi napomenuti da je tijekom iste studije otkrivena slična ranjivost u kodu koji podržava DBF format u Microsoft Office Accessu (CVE-2021-38646), čiji će detalji biti otkriveni kasnije. U LibreOfficeu nisu pronađeni problemi.

Dokumentaciju o formatu datoteke za dBase bilo je relativno lako otkriti; Wikipedia ima jednostavan opis verzije 5 formata, a dBase LLC također nudi ažurirane specifikacije. Kongresna knjižnica navodi nevjerojatan katalog formata datoteka, uključujući DBF. Različite verzije i proširenja DBF formata pružaju programerima velike mogućnosti za uvođenje ranjivosti skeniranja.

DBF format sastoji se od dva glavna odjeljka: zaglavlja i tijela. Zaglavlje uključuje prefiks koji opisuje verziju baze podataka dBase, vremensku oznaku zadnjeg ažuriranja i druge metapodatke. Što je još važnije, ona navodi duljinu svakog zapisa u bazi podataka, duljinu strukture zaglavlja, broj zapisa i polja podataka u zapisu.

Istraživač koji je identificirao problem upozorio je na stvaranje radnog exploita za Windows platformu . Ispravak za ranjivost dostupan je samo kao zakrpa u repozitoriju projekta, koja je bila uključena u testne verzije OpenOfficea 4.1.11.

Konačno, ako ste zainteresirani saznati više o ovome, možete pogledati izvorni članak na sljedećoj poveznici.


Dodaj kao preferirani izvor na Googleu