Open Source im professionellen Einsatz

Apache OpenOffice: entfernter Angreifer Angreifer kann Befehle ausführen

 Eine Sicherheitslücke in der Apache Open-Office-Applikation hat zur Folge, dass ein entfernter Angreifer Befehle mit den Rechten des Anwenders ausführen kann. Hierzu muss der Angreifer seinem Opfer lediglich eine speziell präparierten Open-Document-Präsentation zukommen lassen. Dies sind Dateien mit der Endung ».ODP« oder ».OTP«. Sobald eine solche Datei geladen wird, wird ein Fehler im Speichermanagement von OpenOffice ausgelöst.
Dieser Fehler hat dann zur Folge, dass die vom Angreifer gewünschen Befehle ausgeführt werden. Aktuell gibt es für diese Lücke nur Proof-of-Concept-Exploits. Das Ausführen von Code ist technisch kompliziert, aber Denial-of-Service-Attacken lassen sich recht einfach realisieren. Der verantwortliche Programmierfehler befinden sich in den Programm-Klassen PolyPoly und Polygon. Hier finden sich Schwachstellen in der »poly2.cxx«-Datei. Das Problem besteht hier darin, dass verschiedene Schutzmechanismen im Code nur im Debugging-Modus aktiv sind. Das heißt sie sind inaktiv in der normalen Runtime-Umgebung. Der nun veröffentlichte Patch korrigiert dieses Problem indem ein Schutzmechanismus in die »PolyPolygon::Remove()«- und »PolyPolygon::Replace()«-Methoden eingebaut wurden. Dort fanden sich bisher lediglich ein Abfangcode, der im Debug-Modus aktiv ist:

DBG_ASSERT( nPos < Count(), "PolyPolygon::Replace(): nPos >= nSize" )

Dieser wurde nun durch eine zusätzliche If()-Anweisung ergänzt:

if ( nPos >= Count() ) return; 

Damit ist das DBG_ASSERT-Statement auch im Runtime-Modus aktiv und die Schwachstelle kann nicht mehr ausgenutzt werden. Betroffen sind die Versionen 4.1.2 und älter.

comments powered by Disqus

Stellenmarkt

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.