Server-Killer mit Avatar-Grafik

Huschi

Moderator
securityfocus.com hat einen schwerer Fehler in der gdLibrary 2.0.33 gefunden:
Ein Fehler im LZW-Decomprimierer (z.B. für das GIF-Format) kann eine manipulierte Datei den Webserver in eine Endlosschleife schicken und damit unerreichbar werden.

Da in den meisten Foren individuelle Avatare hochgeladen werden können, ist dies eine einfache Möglichkeiten den Server zu blockieren oder vollständig lahmzulegen.

Der Fehler wurde in der aktuellen Version 2.0.33 der Grafikbibliothek entdeckt. Nur über den direkten Eingriff in den Quellcode der Bibliothek auf dem Webserver, kann der Fehler behoben werden.
Einen Patch oder eine Stellungnahme von der Firma Boutell.Com, Inc. gibt es noch nicht.

(Die Quelle gebe ich nicht an, da dort ein konkretes Beispiel zu finden ist.)

huschi.
 
Last edited by a moderator:
Hat man schon ausprobiert, ob auch die Versionen unterhalb von 2.0.33 betroffen sind?
Wie sieht es mit der built-in Version von PHP aus?

Als Qick&Dirty Hack habe ich gelesen, dass man die Anzahl der Schleifendurchlaeufe im Quellcode begrenzen kann.
 
Guin said:
ob auch die Versionen unterhalb von 2.0.33 betroffen sind?
Vom Bug-Entdecker:
"A bug seems to affect the current (2.0.33) GD library version"

Wie sieht es mit der built-in Version von PHP aus?
Falls die diese Versionsnummer haben, dürften die wohl auch betroffen sein.

Als Qick&Dirty Hack habe ich gelesen, dass man die Anzahl der Schleifendurchlaeufe im Quellcode begrenzen kann.
Du meinst wahrscheinlich die Schleifendurchläufe von PHP.
Ja die kann man begrenzen bzw. sollte glaub ich std. mässig irgendwo bei 100 stehen. Damit ist aber Interationslevel bei Rekursionen gemeint, die direkt im PHP-Script ausgeführt werden.
Libraries werden wahrscheinlich nicht überwacht, bzw. Rekursionen in einem Binärcode zu finden ist deutlich schwieriger... :)

huschi.
 
kann mir kaum vorstellen, dass dies nur das aktuelle Release betrifft. Werde gleich mal testen und bescheid geben.

[edit]gerade gefunden: GD version 2.0.33 is vulnerable to this issue; other versions may also be affected.[/edit]
 
Last edited by a moderator:
securityfocus.com hat einen schwerer Fehler in der gdLibrary 2.0.33 gefunden:
Die haben das nur als erste veröffentlicht.
Da in den meisten Foren individuelle Avatare hochgeladen werden können, ist dies eine einfache Möglichkeiten den Server zu blockieren oder vollständig lahmzulegen.
Die meisten Foren werden die Avatare nicht bearbeiten sondern nur mit getimagesize() die Größe kontrolieren und die Funtkion ist kein Bestandteil von GD.
Die Quelle gebe ich nicht an, da dort ein konkretes Beispiel zu finden ist.
Da BugTraq, Golem und diverse andere Seiten auf die Quelle verlinken bringt das kaum was. Ein kurzes php Skript damit auch DAUs(bzw Leute ohne php oder C++ Kenntnisse) testen können ob sie betroffen sind wäre IMHO besser für's Forum als Selbstzensur.
 
Hallo HornOX,

vbulletin ist wohl anfällig.
Die meisten Foren werden die Avatare nicht bearbeiten sondern nur mit getimagesize() die Größe kontrolieren und die Funtkion ist kein Bestandteil von GD.

denn:
Code:
A bug seems to affect the current (2.0.33) GD library version, located
in the LZW decoding while loading GIF images. The problem is an infinite
loop while decoding specifically crafted images ; for example when
calling gdImageCreateFromGifPtr() with badly formed GIF data. The loop
is causing 100% CPU consumption, and can be a problem when involving
online server scripts.

Vbulletin bis 3.5.4 nutzt für das Erstellen der Miniaturansichten von Anhängen entsprechende Imagefunktion. phpBB wie du bereits geschrieben hast, überprüft nur die Bildgröße.

In vbulletin kann man übrigens den Imageoperator zwischen GD/Imagemagick einstellen (vorrausgesetzt es sind beide inst.)

Ich habe zudem noch ein Photopost Galerieskript, sowie eine Menalto Gallery2 im Einsatz, welche wahrscheinlich ebenfalls anfällig gewesen wären. Wobei fraglich ist, ob es überhaupt Sinn macht, für eine Galerie eine gif-Operation zuzulassen. (Bzgl der minderwertigen Qualität) Habe es jedenfalls deaktiviert und nutze nun ausschliesslich ImageMagick.

Tom
 
Es ist noch keine neue Version von GD verfuegbar.
Die in PHP eingebundene GD Version 2.0.28 ist auch verwundbar. Bei mir wird der Server aber nicht gleich unerreichabr dadurch. Nur sehr lahm. Kann sein, dass er ganz zum erliegen kommt, wenn mehrere manipulierte Bilder bearbeitet werden.
 
Da ich es selber nicht getestet habe:
Hält sich das entsprechende Script an die Max-Execution-Time?

huschi.
 
PHP:
Hält sich das entsprechende Script an die Max-Execution-Time?
Da sagst du das. Ich hatte das gar nicht ueber den Apache laufen, sondern nur in der Shell (und da laeuft es ewig).
 
Ist das Burning Board von Woltlab auch betroffen? In der Lite und kostenpflichtigen Version? Konnte mir bisher keine Infos ergooglen, vielleicht weiß ja irgendwer mehr
 
Baui said:
Ist das Burning Board von Woltlab auch betroffen?
Alle, die versuchen die Avatare oder Anhänge runter zurechnen.
Falls Du ein wbb am laufen hast, weißt Du ja, ob es sowas macht oder nicht.

huschi.
 
Dann ist es auch betroffen, die Anhänge werden evtl. verkleinert, bei den Avataren bin ich mir nicht sicher...
Danke für die Info!
 
Der Quelltext ist seit ueber 2 Jahren unangetastet. Da wird so schnell auch nichts passieren.

Bisher ist mir auch noch kein konkreter Fall bekannt, in dem dieser Bug zum Tragen kam. Scheinbar haben die Skiptkiddies noch kein entsprechend manipuliertes Bild, mit dem sie spielen koennen.


Hält sich das entsprechende Script an die Max-Execution-Time?
Leider nein. Ich habe aber nur die bereitgestellte Datei von securityfocus.com compiliert und in PHP mit exec aufgerufen.
 
Last edited by a moderator:
Evtl. stehe ich gerade auf dem Schlauch, aber ich glaube GD wird zumindest bei PHP4 mit einkompiliert. D.h. ein Update der reinen GDlib würde kein Update der php4-gd bedeuten.
Oder irre ich mich?

huschi.
 
Das ist richtig. Auch bei PHP5 kann man es einkompilieren. Diese built-in Sachen kann man mit den RPM und den Deb nicht updaten. Dafuer muesste man PHP ohne GD kompilieren und die GD in der php.ini einbinden.

Das haette ich oben dazuschreiben muessen.
 
Back
Top