Zwanzig Jahre alte Lücke in Lempel-Ziv-Kompression gefährdet Linux-Nutzer

Diese Sicherheitslücke ist mit Curiosity auf den Mars geflogen: Der Bug im LZO-Verfahren existiert seit 1994; die Variante LZ4 ist auch betroffen. Bei FFmpeg und Libav kann Schadcode aus dem Netz ausgeführt werden, was vor allem Linux-Nutzer bedroht.

In Pocket speichern vorlesen Druckansicht 416 Kommentare lesen
Lesezeit: 3 Min.
Von
  • Fabian A. Scherschel

Mit der Entdeckung eines Ganzzahlüberlaufes im Entwurf des alteingesessenen Kompressionsverfahrens LZO hat Don A. Bailey von der Sicherheitsfirma Lab Mouse Security eine Büchse der Pandora geöffnet. Das ursprüngliche Design des Lempel-Ziv-Oberhumer-Verfahrens (LZO) ist so gut, dass es seit seiner Veröffentlichung 1994 immer wieder kopiert wurde. Der LZO-Algorithmus und die neuere Variante LZ4 stecken in sehr viel proprietärer und Open-Source-Software.

Unter anderem läuft der Code im Linux-Kernel, dem Bootloader GRUB2, Busybox, FFmpeg, MPlayer2, Libav, OpenVPN und dem Junos OS von Juniper. Da all diese Implementierungen auf dem Originalentwurf oder aufeinander aufbauen, setzen auch sie den fatalen Ganzzahlüberlauf um.

Die Lücke schlummerte in diesem Code seit zwei Jahrzehnten (hier am Beispiel von Linux)

LZO ist aber nicht gleich LZO und so funktioniert ein Angriff auf die Schwachstelle je nach betroffener Software subtil anders. Bei manchen Umsetzungen kann ein Angreifer einen Absturz und damit Denial-of-Service auslösen, bei anderen sogar Schadcode ausführen. Bailey hatte die Lücke schon vor einiger Zeit an die Entwickler einer Vielzahl der betroffenen Programme gemeldet. Geschlossen wurde sie in Version 3.15.2 des Linux-Kernels, FFmpeg hat mit Version 2.2.4 Abhilfe geschaffen. Der Original-LZO-Quellcode ist seit Version 2.07 sicher. Weitere Projekte haben entsprechende Patches in ihren Quellcode eingepflegt oder arbeiten noch an einer Lösung des Problems.

Bis jetzt hat Bailey noch keine Angaben gemacht, wie die verschiedenen Schwachstellen in betroffenen Projekten konkret ausgenutzt werden können. Er will Entwicklern und Distributoren Zeit geben, ihre Updates auszuliefern. Der Linux-Kernel ist wohl durch die Lücke in LZ4 anfällig für die Ausführung von Schadcode aus dem Netz, allerdings nur auf 32-Bit-Systemen.

Am kritischsten sieht Bailey die Lücke in den FFmpeg- und Libav-Bibliotheken. Diese sind vor allem auf Linux-Systemen sehr verbreitet und sollten nicht mehr benutzt werden, bis den Nutzern die abgedichtete Version zur Verfügung steht. Außerdem nutzen viele Linux-Distributionen das MPlayer2-Paket standardmäßig als Media Player in Firefox, Chrome und anderen Browsern. Diese Plug-ins sind dann ebenfalls anfällig für die Ausführung von Schadcode aus dem Netz und sollten dringend deaktiviert werden, bis ein Update bereit steht.

Yves-Alexis Perez vom Sicherheitsteam der Distribution Debian hat auf der OSS-Security-Mailingliste zusammengetragen, welche Open-Source-Software von der Lücke betroffen ist. Die Schwachstellen im Linux-Kernel wurden unter CVE-2014-4611 und CVE-2014-4608 katalogisiert; die Lücke in der originalen LZO-Umsetzung erhielt CVE-2014-4607.

[Update 27.06.2014 20:43 Uhr]

Yann Collet, der Autor der Referenz-Implementation von LZ4, bestreitet in einem Blog-Beitrag die Brisanz der von Bailey offengelegten Lücke. Collet sagt, dass bei LZ4 nur 32-Bit-Systeme anfällig seien und die Lücke bei "keiner der bekannten Anwendungen" seines Algorithmus ausnutzbar sei. Allerdings bezieht er sich dabei allein auf LZ4 und lässt die Probleme beim LZO-Algorithmus außen vor. Außerdem habe nicht Bailey, sondern µTorrent-Erfinder Ludwig Strigeus das Problem entdeckt – vor mehr als einem Jahr. (fab)