Az Apache OpenOffice irodai csomagjában egy sebezhetőség (CVE-2021-33035) került elő, amely lehetővé teszi a kód végrehajtását egy speciálisan formázott DBF fájl megnyitásakor. A probléma felfedezője figyelmeztetett, hogy egy működő exploit készült a Windows platformra. A sebezhetőség javítása eddig csak egy patch formájában érhető el a projekt repository-jában, amely az OpenOffice 4.1.11 tesztelési verzióinak része. A stabil ágra vonatkozó frissítések még nem készültek el.
A probléma abból adódik, hogy az OpenOffice a memóriaallokáció során a DBF fájlok fejlécében található fieldLength és fieldType értékekre támaszkodott, anélkül, hogy ellenőrizte volna a mezők tényleges adatainak típusát. A támadás végrehajtásához az attacker megadhatja a fieldType értékét INTEGER-re, de nagyobb méretű adatokat helyezhet el, miközben a fieldLength értéke nem felel meg az INTEGER típusú adatok méretének, ami azt eredményezi, hogy az adatmezőből származó adatok túllépik az allokált puffer határait. A kontrolált puffer túlcsordulás révén a kutatónak sikerült felülírnia a visszatérési mutatót a funkcióból, és a visszatérési orientált programozási (ROP - Return-Oriented Programming) technikák segítségével végrehajtania a saját kódját.
A ROP technika alkalmazásakor a támadó nem próbálja meg a saját kódját a memóriába helyezni, hanem már meglévő, betöltött könyvtárak gépi utasításainak darabjaival operál, amelyek visszatérési utasítással zárulnak (ez általában könyvtári funkciók befejezése). Az exploit működése a hasonló blokkok (“gadgets”) hívási láncának felépítésére korlátozódik a kívánt funkcionalitás elérése érdekében. Az OpenOffice exploitban a libxml2 könyvtárból származó kódot használták gadgetként, amely, ellentétben magával az OpenOffice-szal, úgy tűnik, védelmi mechanizmusok (DEP - Data Execution Prevention és ASLR - Address Space Layout Randomization) nélkül került összeállításra.
Az OpenOffice fejlesztőit május 4-én értesítették a problémáról, majd augusztus 30-ra tűzték ki a sérülékenységgel kapcsolatos nyilvános bejelentést. Mivel a határidőre a stabil ág frissítése nem készült el, a kutató szeptember 18-ra halasztotta a részletek nyilvánosságra hozatalát, de az OpenOffice fejlesztői a 4.1.11-es kiadást sem tudták előkészíteni addigra. Érdekes, hogy ugyanebben a kutatásban hasonló sérülékenységet is felfedeztek a DBF formátum támogatását biztosító kódban a Microsoft Office Access-ben (CVE-2021–38646), melynek részleteit később fogják nyilvánosságra hozni. A LibreOffice-ban nem találtak problémát.
Forrás: opennet.ru
