Sårbarhet i OpenOffice som tillåter kodexekvering när en fil öppnas

En sårbarhet (CVE-2021-33035) har identifierats i kontorssviten Apache OpenOffice som tillåter kodexekvering när en specialdesignad fil öppnas i DBF-format. Forskaren som upptäckte problemet varnade för att skapa en fungerande exploatering för Windows-plattformen. Sårbarhetskorrigeringen är för närvarande endast tillgänglig i form av en patch i projektförrådet, som inkluderades i testversionerna av OpenOffice 4.1.11. Det finns inga uppdateringar för stallgrenen ännu.

Problemet orsakas av att OpenOffice förlitar sig på fieldLength- och fieldType-värdena i DBF-filernas rubrik för att allokera minne, utan att kontrollera att den faktiska datatypen i fälten matchar. För att utföra en attack kan du ange en INTEGER-typ i fieldType-värdet, men placera större data och ange ett fieldLength-värde som inte motsvarar storleken på data med INTEGER-typen, vilket kommer att leda till datasvansen. från fältet som skrivs bortom den tilldelade bufferten. Som ett resultat av ett kontrollerat buffertspill kunde forskaren omdefiniera returpekaren från funktionen och, med hjälp av returorienterade programmeringstekniker (ROP - Return-Oriented Programming), uppnå exekvering av sin kod.

När man använder ROP-tekniken försöker angriparen inte placera sin kod i minnet, utan arbetar på delar av maskininstruktioner som redan finns tillgängliga i laddade bibliotek, som slutar med en kontrollreturinstruktion (som regel är detta slutet på biblioteksfunktioner) . Arbetet med exploateringen handlar om att bygga en kedja av anrop till liknande block ("prylar") för att få önskad funktionalitet. De prylar som användes i OpenOffice-exploateringen var kod från libxml2-biblioteket som användes i OpenOffice, som, till skillnad från OpenOffice själv, kompilerades utan skyddsmekanismerna DEP (Data Execution Prevention) och ASLR (Address Space Layout Randomization).

OpenOffice-utvecklare underrättades om problemet den 4 maj, varefter ett offentligt avslöjande av sårbarheten planerades till den 30 augusti. Eftersom uppdateringen av den stabila grenen inte slutfördes vid det planerade datumet, sköt forskaren upp avslöjandet av detaljer till den 18 september, men OpenOffice-utvecklarna lyckades inte skapa release 4.1.11 vid detta datum. Det är anmärkningsvärt att under samma undersökning identifierades en liknande sårbarhet i stödkoden för DBF-format i Microsoft Office Access (CVE-2021–38646), vars detaljer kommer att avslöjas senare. Inga problem hittades i LibreOffice.

Källa: opennet.ru

Lägg en kommentar