Neue GCC-Version macht Linux unsicher

Compiler-Version 4.2 optimiert Pufferüberlaufschutz einfach weg

Das United States Computer Emergency Readiness Team (US-CERT) warnt in einem aktuellen Bulletin vor einer gefährlichen Sicherheitslücke im Compiler GCC ab Version 4.2. Von Entwicklern geschriebener Code, der Pufferüberläufe verhindern soll, wird vom Compiler möglicherweise wegoptimiert, sprich einfach ausgelassen.

Betroffen sind nicht nur Linux-Anwendungen, sondern alle Plattformen, auf denen GCC verwendet wird. Das sind vor allem Unix-Betriebssysteme, etwa Mac OS, Solaris und Free BSD. Auch Windows-Anwendungen, die unter Unix-Kompatibiliäts-Layern, zum Beispiel Cygwin, entwickelt werden, sind meist mit GCC kompiliert.

Die neue Version geht von der Annahme aus, dass die Summe zweier positiver Zahlen immer größer ist als ihre beiden Summanden. Das trifft jedoch für Speicherarithmetik nicht zu, wo ein Überlauf dazu führt, dass eine kleinere Adresse referenziert wird.

Das veränderte Optimierungsverhalten der Version 4.2 führt dazu, dass insbesondere beim Kompilieren neuer Versionen bestehender Anwendungen Pufferüberlaufschutzcode entfernt wird. Betroffen sind vor allem 32-Bit-Anwendungen. Bei 64-Bit-Anwendungen ist der Adressraum so groß, dass ein Integer-Überlauf sehr unwahrscheinlich ist.

Die Empfehlung des US-CERT lautet, vorerst auf die Version 4.2 des GCC zu verzichten. Alternativ können zwei Optionen im Compiler genutzt werden, die beide zwar die Sicherheit gewährleisten, aber auch unerwünschte Nachteile haben: Die Compileroption „˗ftrapv“ kommt einem Pufferüberlauf mit einem Absturz zuvor. Die zweite Option „˗fwrapv“ führt zu einem spürbaren Performanceverlust.

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

ZDNet für mobile Geräte
ZDNet-App für Android herunterladen Lesen Sie ZDNet-Artikel in Google Currents ZDNet-App für iOS

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Neue GCC-Version macht Linux unsicher

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *