V kancelářském balíku Apache OpenOffice byla zjištěna zranitelnost (CVE-2021-33035), která umožňuje provést kód při otevření speciálně upraveného souboru ve formátu DBF. Výzkumník, který problém odhalil, varoval před vytvořením funkčního exploit pro platformu Windows. Oprava zranitelnosti je zatím dostupná pouze ve formě patch v repozitáři projektu, který byl součástí testovacích sestavení OpenOffice 4.1.11. Aktualizace pro stabilní větev zatím nebyla vytvořena.
Problém je způsoben tím, že při alokaci paměti OpenOffice spoléhalo na hodnoty fieldLength a fieldType v hlavičkách souborů DBF, aniž by kontrolovalo shodu skutečného typu dat v polích. Aby bylo možné provést útok, lze v hodnotě fieldType uvést typ INTEGER, ale umístit data větší velikosti a uvést hodnotu fieldLength, která není v souladu s velikostí dat pro typ INTEGER, což způsobí, že zbytek dat z pole bude zapsán za limit alokovaného bufferu. V důsledku řízeného přetečení bufferu se výzkumníkovi podařilo přepsat návratovou adresu z funkce a pomocí technik návratového orientovaného programování (ROP — Return-Oriented Programming) docílit provedení svého kódu.
Při použití techniky ROP se útočník nepokouší umístit svůj kód do paměti, ale pracuje s již existujícími kusy strojových instrukcí ve načtených knihovnách, které končí instrukcí pro návrat řízení (obvykle se jedná o konce knihovních funkcí). Funkce exploit spočívá ve vytváření řetězce volání podobných bloků („gadgets“) k dosažení požadované funkčnosti. Jako gadgets byl v exploit pro OpenOffice použit kód z knihovny libxml2, která byla na rozdíl od samotného OpenOffice sestavena bez mechanismů ochrany DEP (Data Execution Prevention) a ASLR (Address Space Layout Randomization).
Vývojáři OpenOffice byli o problému informováni 4. května, po čemž bylo na 30. srpna naplánováno veřejné zveřejnění informací o zranitelnosti. Vzhledem k tomu, že do stanoveného termínu nebylo aktualizace stabilní větve ještě vytvořeno, výzkumník posunul zveřejnění detailů na 18. září, ale vývojáři OpenOffice nestihli připravit vydání 4.1.11 do tohoto termínu. Zajímavé je, že během stejného výzkumu byla odhalena podobná zranitelnost v kódu pro podporu formátu DBF v Microsoft Office Access (CVE-2021–38646), jejíž detaily budou zveřejněny později. V LibreOffice nebyly nalezeny žádné problémy.
Zdroj: opennet.ru
