I kontorpakken Apache OpenOffice er der opdaget en sårbarhed (CVE-2021-33035), som muliggør udførelse af kode ved åbning af en specielt tilpasset fil i DBF-format. Den forsker, der afdækkede problemet, advarede om oprettelsen af et fungerende exploit til Windows-platformen. Løsningen på sårbarheden er kun tilgængelig som en patch i projektets repository, som indgår i testbygningerne af OpenOffice 4.1.11. Opdateringer til den stabile gren er endnu ikke frigivet.
Problemet skyldes, at OpenOffice ved tildeling af hukommelse stolede på værdierne fieldLength og fieldType i headeren på DBF-filerne, uden at tjekke om den faktiske datatype i felterne stemte overens. For at udføre angrebet kan man angive type INTEGER i fieldType-værdien, men indsætte data, der er større, og give fieldLength en værdi, der ikke svarer til størrelsen på dataene af typen INTEGER, hvilket vil resultere i, at dataendelsen fra feltet bliver skrevet uden for den tildelte buffer. Som et resultat af det kontrollerede buffer-overløb lykkedes det forskeren at overskrive returfunktionen og, ved hjælp af return-oriented programming (ROP), opnå udførelsen af sin kode.
Ved brug af ROP-teknikken forsøger angriberen ikke at placere sin egen kode i hukommelsen, men opererer med eksisterende maskinkode-stykker, der allerede findes i de indlæste biblioteker, som slutter med en returstyringskommando (normalt afslutningerne af biblioteksfunktioner). Eksploitets funktionalitet består i at bygge en kæde af kald til sådanne blokke ('gadgets') for at opnå den ønskede funktionalitet. I exploiten for OpenOffice blev der brugt kode fra den bibliotek, libxml2, som i modsætning til OpenOffice selv blev samlet uden beskyttelsesmekanismerne DEP (Data Execution Prevention) og ASLR (Address Space Layout Randomization).
Udviklerne af OpenOffice blev informeret om problemet den 4. maj, hvorefter en offentlig afsløring af sårbarheden blev planlagt til den 30. august. Da opdateringen af den stabile version ikke var klar til den planlagte deadline, blev afsløringen af detaljerne rykket til den 18. september, men udviklerne af OpenOffice nåede ikke at færdiggøre udgivelsen 4.1.11 til den tid. Bemærkelsesværdigt er det, at der under den samme undersøgelse blev opdaget en lignende sårbarhed i kode, der understøtter DBF-formatet i Microsoft Office Access (CVE-2021–38646), og oplysninger om denne vil blive afsløret senere. Der blev ikke fundet problemer i LibreOffice.
Kilde: opennet.ru
