Kwetsbaarheid in OpenOffice waardoor code kan worden uitgevoerd bij het openen van een bestand

Er is een kwetsbaarheid (CVE-2021-33035) geïdentificeerd in de Apache OpenOffice-kantoorsuite die het uitvoeren van code mogelijk maakt bij het openen van een speciaal ontworpen bestand in het DBF-formaat. De onderzoeker die het probleem ontdekte waarschuwde voor het maken van een werkende exploit voor het Windows-platform. De oplossing voor de kwetsbaarheid is momenteel alleen beschikbaar in de vorm van een patch in de projectrepository, die was opgenomen in de testbuilds van OpenOffice 4.1.11. Er zijn nog geen updates voor de stabiele tak.

Het probleem wordt veroorzaakt doordat OpenOffice vertrouwt op de fieldLength- en fieldType-waarden in de header van de DBF-bestanden om geheugen toe te wijzen, zonder te controleren of het daadwerkelijke gegevenstype in de velden overeenkomt. Om een ​​aanval uit te voeren, kunt u een INTEGER-type opgeven in de fieldType-waarde, maar grotere gegevens plaatsen en een fieldLength-waarde opgeven die niet overeenkomt met de grootte van de gegevens met het INTEGER-type, wat zal leiden tot de staart van de gegevens vanuit het veld dat buiten de toegewezen buffer wordt geschreven. Als resultaat van een gecontroleerde bufferoverflow kon de onderzoeker de return-pointer van de functie opnieuw definiëren en, met behulp van return-georiënteerde programmeertechnieken (ROP - Return-Oriented Programming), de uitvoering van zijn code bewerkstelligen.

Bij gebruik van de ROP-techniek probeert de aanvaller zijn code niet in het geheugen te plaatsen, maar werkt hij op basis van machine-instructies die al beschikbaar zijn in geladen bibliotheken, eindigend met een control return-instructie (in de regel zijn dit de uiteinden van bibliotheekfuncties) . Het werk van de exploit komt neer op het bouwen van een keten van oproepen naar soortgelijke blokken (“gadgets”) om de gewenste functionaliteit te verkrijgen. De gadgets die bij de OpenOffice-exploit werden gebruikt, waren code uit de libxml2-bibliotheek die in OpenOffice werd gebruikt en die, in tegenstelling tot OpenOffice zelf, was gecompileerd zonder de DEP (Data Execution Prevention) en ASLR (Address Space Layout Randomization) beschermingsmechanismen.

OpenOffice-ontwikkelaars werden op 4 mei op de hoogte gebracht van het probleem, waarna een publieke bekendmaking van de kwetsbaarheid gepland was voor 30 augustus. Omdat de update naar de stabiele branch niet op de geplande datum voltooid was, stelde de onderzoeker de openbaarmaking van details uit tot 18 september, maar de OpenOffice-ontwikkelaars slaagden er niet in om voor die datum release 4.1.11 te creëren. Het is opmerkelijk dat tijdens hetzelfde onderzoek een soortgelijke kwetsbaarheid werd geïdentificeerd in de ondersteuningscode voor het DBF-formaat in Microsoft Office Access (CVE-2021–38646), waarvan de details later zullen worden bekendgemaakt. Er zijn geen problemen gevonden in LibreOffice.

Bron: opennet.ru

Voeg een reactie