V kancelárskom balíku Apache OpenOffice bola zistená zraniteľnosť (CVE-2021-33035), ktorá umožňuje vykonanie kódu pri otvorení špeciálne upraveného súboru vo formáte DBF. Výskumník, ktorý na problém upozornil, varoval pred vytvorením funkčného exploit pre platformu Windows. Oprava zraniteľnosti je zatiaľ dostupná len v podobe patchu v repozitári projektu, ktorý bol zahrnutý do testovacích zostavení OpenOffice 4.1.11. Aktualizácie pre stabilnú vetvu zatiaľ neboli vyvinuté.
Problém spôsobuje to, že pri prideľovaní pamäte OpenOffice spoliehal sa na hodnoty fieldLength a fieldType v hlavičke súborov DBF, pričom nekontroloval zhodu skutočného typu údajov v poliach. Na vykonanie útoku je možné nastaviť v hodnote fieldType typ INTEGER, ale umiestniť údaje väčšej veľkosti a nastaviť hodnotu fieldLength, ktorá nezodpovedá veľkosti údajov s typom INTEGER, čo povedie k tomu, že koniec údajov z poľa bude zapísaný za hranice prideleného buffera. V dôsledku kontrolovaného pretečenia bufferu sa výskumníkovi podarilo prepísať ukazovateľ návratu z funkcie a pomocou techník návratového orientovaného programovania (ROP – Return-Oriented Programming) dosiahnuť vykonanie svojho kódu.
Pri použití techniky ROP sa útočník nepokúša umiestniť svoj kód do pamäte, ale operuje s už existujúcimi útržkami strojových inštrukcií v načítaných knižniciach, ktoré končia inštrukciou návratu riadenia (zvyčajne sú to konce knižničných funkcií). Funkčnosť exploit sa zameriava na vytváranie reťazca volaní podobných blokov („gadgetov“) s cieľom získať požadovanú funkcionalitu. Ako gadgety v exploite pre OpenOffice bol použitý kód z používaného knižnica libxml2, ktorá sa na rozdiel od samotného OpenOffice ukázala byť zostavená bez ochranných mechanizmov DEP (Data Execution Prevention) a ASLR (Address Space Layout Randomization).
Vývojári OpenOffice boli o probléme informovaní 4. mája, pričom verejné odhalenie zraniteľnosti bolo naplánované na 30. augusta. Keďže v stanovenom termíne nebolo aktualizované stabilné vydanie, výskumník posunul odhalenie podrobností na 18. septembra, ale vývojári OpenOffice nestihli spraviť vydanie 4.1.11 do tohto termínu. Zaujímavé je, že v rámci toho istého výskumu bola odhalená podobná zraniteľnosť v kóde podpory formátu DBF v Microsoft Office Access (CVE-2021–38646), podrobnosti o ktorej budú odhalené neskôr. V LibreOffice neboli zistené žiadne problémy.
Zdroj: opennet.ru
