Ata zbuluan një dobësi kritike në Apache OpenOffice

Disa ditë më parë, u zbulua një dobësi që u identifikua në paketën e zyrës Apache OpenOffice . Kjo dobësi, e kataloguar nën CVE-2021-33035, lejon ekzekutimin e kodit kur hapet një skedar i projektuar posaçërisht në formatin DBF.

Problemi është se OpenOffice mbështetet në vlerat fieldLength dhe fieldType në kokën e skedarit DBF për të ndarë memorie pa verifikuar llojin aktual të të dhënave në fusha.

Rreth cenueshmërisë

Për të kryer një sulm, mund të specifikoni llojin INTEGER në vlerën fieldType, por të vendosni të dhëna më të mëdha dhe të specifikoni vlerën fieldLength që nuk korrespondon me madhësinë e të dhënave INTEGER, gjë që do të çojë në faktin se të dhënat e bishtit të fushës do të shkruhen jashtë buffer-it të alokuar.

Si rezultat i një mbingarkese të kontrolluar të buffer-it , studiuesi ishte në gjendje të ripërcaktonte treguesin e kthimit të funksionit dhe, duke përdorur teknikat e Programimit të Orientuar drejt Kthimit (ROP), të arrinte ekzekutimin e kodit të tij.

Një këshillë që mora herët në udhëtimin e kërkimit të cenueshmërisë ishte të përqëndrohesha në një format skedari, jo në një pjesë të veçantë të softuerit. Ekzistojnë dy përparësi kryesore të kësaj qasjeje. Së pari, si fillestar, ju mungonte përvoja për të identifikuar shpejt vektorët unikë të sulmit në aplikacione individuale, ndërsa analiza e formatit të skedarit tenton të jetë një pikë e zakonshme hyrëse në mesin e shumë aplikacioneve. 

Për më tepër, formatet e zakonshme të skedarëve janë të dokumentuara mirë përmes Kërkesave për Komente (RFC) ose kodit me burim të hapur, gjë që zvogëlon sasinë e përpjekjes së nevojshme për të përpunuar formatin.

Kur përdoret teknika ROP, sulmuesi nuk përpiqet ta vendosë kodin e tij në memorie, por në vend të kësaj vepron mbi pjesë të udhëzimeve të makinës që janë tashmë të disponueshme në bibliotekat e ngarkuara, duke përfunduar me një udhëzim kontrolli kthimi (si rregull, këto janë funksionet e fundit të bibliotekës).

Detyra e shfrytëzimit reduktohet në ndërtimin e një zinxhiri thirrjesh në blloqe të ngjashme ("pajisje") për të marrë funksionalitetin e kërkuar.

Si vegla në shfrytëzim për OpenOffice, përmendet se është përdorur kodi nga biblioteka libxml2 e përdorur në OpenOffice, i cili, ndryshe nga OpenOffice, doli të jetë mbledhur pa mekanizma mbrojtës DEP (Parandalimi i Ekzekutimit të të Dhënave) dhe ASLR (Randomizimi i Layout të Hapësirës së Adresave) )

Zhvilluesit e OpenOffice u njoftuan për problemin më 4 maj, pas së cilës një zbulim publik i dobësisë ishte planifikuar për 30 gusht.

Meqenëse dega stabile nuk u përditësua në datën e caktuar, studiuesi e shtyu publikimin e detajeve deri më 18 shtator, por zhvilluesit e OpenOffice nuk patën kohë të publikonin versionin 4.1.11 deri atëherë. Vlen të përmendet se gjatë të njëjtit studim, një dobësi e ngjashme u zbulua në kodin që mbështet formatin DBF në Microsoft Office Access (CVE-2021-38646), detajet e të cilit do të zbulohen më vonë. Nuk u gjetën probleme në LibreOffice.

Dokumentacioni i formatit të skedarit për dBase ishte relativisht i lehtë për t'u zbuluar; Wikipedia ka një përshkrim të thjeshtë të versionit 5 të formatit dhe dBase LLC gjithashtu siguron një specifikim të azhurnuar. Biblioteka e Kongresit rendit një katalog të jashtëzakonshëm të formateve të skedarëve, përfshirë DBF. Versionet dhe shtesat e ndryshme të formatit DBF ofrojnë mundësi të bollshme për programuesit që të prezantojnë dobësitë e skanimit.

Formati DBF përbëhet nga dy seksione kryesore: titulli dhe trupi. Titulli përfshin një parashtesë që përshkruan versionin e bazës së të dhënave dBase, afatin kohor të përditësimit të fundit dhe meta të tjera. Më e rëndësishmja, ajo specifikon gjatësinë e secilit regjistrim në bazën e të dhënave, gjatësinë e strukturës së kokës, numrin e regjistrimeve dhe fushat e të dhënave në një regjistrim.

Studiuesi që identifikoi problemin paralajmëroi për krijimin e një shfrytëzimi funksional për platformën Windows . Rregullimi për dobësinë është i disponueshëm vetëm si një patch në deponë e projektit, i cili u përfshi në versionet testuese të OpenOffice 4.1.11.

Së fundmi, nëse jeni të interesuar të mësoni më shumë rreth kësaj, mund të konsultoheni me artikullin origjinal në lidhjen e mëposhtme.


Shto si burim të preferuar në Google