Sicherheitslücke für alle

In bzip2 gibt es eine Sicherheitslücke. Das ist deswegen so schlimm, weil das ein wichtiges Kompressionsverfahren ist und somit von sehr vielen Formaten und Programmen genutzt wird. Ich schätze daher, dass so gut wie jeder Computernutzer mindestens ein Programm nutzt, was von dieser Lücke betroffen ist.

Unter Linux ist das keine große Sache – jede Library (also Sammlung von Programmfunktionen, die von anderen Programmen benötigen werden, z. B. auch die betroffene bz2-Library) wird einmal zentral installiert und alle Programme greifen dann darauf zu. Somit kann man die kaputte Version an einer Stelle austauschen und hat das Problem gelöst. Unter Windows bringt fast jedes Programm seine eigenen Kopien der benötigten Libraries mit, man darf also jedes betroffene Programm einzeln aktualisieren – sobald der Hersteller ne aktuelle Version bereitgestellt hat. Und es werden viele Programme betroffen sein.

Um sich ein Bild zu verschaffen, habe mittels apt-rdepends -r auf einem Linuxrechner geschaut, was für Programme direkt oder indirekt von bzip2 abhängen, es also irgendwie nutzen. In einigen Fällen wird bz2 vielleicht nur für einen Installer o.ä. verwendet, sodass eine Windowsversion des Programms nicht betroffen ist, oder die Windowsfassung kann bzip2 nicht, oder bzip2 wird sonstwie so eingesetzt, dass die Sicherheitslücke irrelevant ist. Bei den genannten Programmen ist aber das Risiko, dass sie betroffen sind, recht hoch. Zum Gruseln hier ein paar Auszüge aus der Liste mit für Windowsuser relevanten etwas bekannteren Programmen (nochmal: ein Eintrag hier bedeutet, dass das Programm eine gute Chance hat, betroffen zu sein, nicht, dass es das tatsächlich ist!):

  • Apache (Webserver)
  • AssaultCube (Egoshooter)
  • Audacity (Audio-Editor)
  • Avidemux (Videoschnitt)
  • Azureus (BitTorrent-Client, vermutlich eher nicht betroffen)
  • BallView (Molekülvisualisierungssoftware)
  • Blender (3D-Editor)
  • BOINC (Seti-at-home-Client)
  • Chromium (Browser, Chrome-Klon)
  • ClamAV (Antivirus)
  • Codeblocks (Entwicklungsumgebung)
  • (… – ab hier bin ich die Liste nicht systematisch durchgegangen, sondern hab gesucht)

  • Firefox
  • Inkscape (Vektorgrafik)
  • Diverse PDF-Reader?

Wie man sieht, ist die Liste lang, und ich werde nicht das ganze Alphabet durchgehen. Grundsätzlich hat man gute Chancen, bzip2 in folgenden Sachen 1. zu finden 2. an einer Stelle zu finden, wo es regelmäßig nicht vertrauenswürdige Daten abbekommt:

  • Browser
  • P2P-Programme
  • Alles was mit Bildern zu tun hat
  • Antivirensoftware
  • Entpacker (d’oh)

Auch die Liste könnte natürlich fortgesetzt werden. Ich freu mich schon auf die Updaterei.

Eine Suche nach bzip2.dll liefert auch eine schöne Liste…

  • MikTex (LaTeX-Umgebung)
  • Inkscape (Vektorgrafik, siehe oben)
  • Gimp (Bildbearbeitung)
  • Mumble (Sprachkommunikation, freie Alternative zu TeamSpeak)

Es wird sicherlich viele Programme geben, bei denen die Datei anders heißt oder die fehlerbehafteten Funktionen statisch gelinkt (=direkt in die EXE eingebaut) oder in einer anderen DLL enthalten sind.

  1. robert
    2010-09-21 um 10:36 UTC

    Naja, sooo wahnsinnig viel schlimmer ist es auf Windows auch nicht.
    Einmal fix alle Vorkommisse von bz2 gesucht und in den entsprechenden Verzeichnissen die dll ersetzt. Ich schätze mal ein entsprechendes Script ist in weniger als 10min geschrieben. (Ich mach es trozdem jetrzt nicht weil gleich Mittag ;-P)

    Viele Grüße,
    Robert

    PS: grade mal auf einem ziemlich vollgeknallten Windowsystem (80Gb nur Programme aus allen Anwendungsbereichen) gesucht -> nur ein Vorkommen („\xampplite\php\ext\php_bz2.dll“) ausserdem noch 2 mal in „\Inkscape\python\DLLs\bz2.pyd“ wo ich aber nicht weiß wie die zu ersetzen sind.

    • Jan
      2010-09-21 um 11:28 UTC

      Das reicht wie gesagt nicht. Erstens heißt die DLL wie im Artikel erwähnt meist nicht bz2 sondern bzip2, und zweitens sind sehr viele Programme unter Windows statisch gelinkt. Aber an dem was du gefunden hast siehst du selbst, dass das Teil tausende verschiedener Namen tragen kann. Und selbst wenn man alle Vorkommnisse findet, muss man noch updaten – und während das bei DLLs noch manchmal gehen würde (bei den von dir gefundenen Sachen dürfte es nicht so leicht sein – sind ja keine allgemeinen Libraries), ist man bei statisch gelinktem Kram praktisch völlig auf den Entwickler angewiesen.
      Und jetzt nimm mal konservativ geschätzt 20 Programme, die betroffen sind, und du hast nen ganzen Tag lang „Spaß“. Bedenke, wie viele Dateiformate bzip2 zumindest optional unterstützen und wieviele (Ent-)Packprogramme für bzip2 oder 7z (enthält bzip2) es gibt…

  1. No trackbacks yet.

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: