lexus: PHP ist leck geschlagen!

Die Script-Sprache PHP Hypertext Preprocessor, die zur Gestaltung dynamischer Websites benutzt wird, hat ein Loch. Wie das Security-Projekt 'Hardened PHP Project' mitteilt, betrifft die Lücke das PHP Web Service Protocol.

Angreifer können mit dem neu entdeckten Fehler Zugang zu Servern erlangen und dort schädlichen Code ausführen oder beliebige Veränderungen vornehmen. Bei einem Labor-Check der Sprache wurde demnach das Problem in den Libraries XML-RPC und Pear XML RPC gefunden, die jeweils für die Ausführung von Web Services sorgen. Remote Procedure Call Systeme (RPC) werden verwendet, um aus http heraus die Web Services anzustoßen. Die Lücke betrifft PHP-basierte Applikationen wie Blogging und Wiki-basierte Sites.

Laut den Forschern haben sie aber inzwischen eine Art Patch entwickelt, der die Lecks vollständig abdichtet. Das Projekt führt regelmäßig Sicherheitskontrollen bei PHP durch und kümmert sich auch um die Beseitigung der Gefahren. Bereits Anfang des Jahres, so heißt es, wurde in den beiden Libraries ein Fehler entdeckt.

http://www.silicon.de/cpo/news-itsecurity/detail.php?nr=23194

Grüße Lexus

  1. Hiho,

    was ist denn "eine Art Patch"? Entweder es ist ein patch oder es ist was anderes.

    Marc

    1. Hi,

      "eine Art Patch"

      vielleicht meinte der Redak. eine bestimmte Art zu Patchen!?
      Keine Ahnung, ich hielt es für wichtig den Artikel zu posten.

      Es sind wohl Patches, sieh selbst.
      http://www.hardened-php.net/downloads.13.html

      1. Hello,

        vielleicht meinte der Redak. eine bestimmte Art zu Patchen!?
        Keine Ahnung, ich hielt es für wichtig den Artikel zu posten.

        Weiß denn hier überhaupt noch einer, wie man "patcht" und woher der Ausdruck mal stammte?

        Harzliche Grüße vom Berg
        esst mehr http://www.harte-harzer.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        1. Hallo Tom,

          Weiß denn hier überhaupt noch einer, wie man "patcht" und woher der Ausdruck mal stammte?

          Aber sicher!
          Das waren noch Zeiten...

          Wie oft hat man nicht "mal eben" direkt im Maschinencode rumgemacht, wenn gerade kein Assembler zur Hand war! Mit etwas Glück und sehr viel Konzentration hat es dann sogar auf Anhieb funktioniert... ;-)

          So long,

          Martin

          1. Hello,

            Wie oft hat man nicht "mal eben" direkt im Maschinencode rumgemacht, wenn gerade kein Assembler zur Hand war! Mit etwas Glück und sehr viel Konzentration hat es dann sogar auf Anhieb funktioniert... ;-)

            Ich erinnere mich noch daran, dass ich dem Wordstar (anfangs 24kByte ws.com Programm) oder dem Quickstar beibringen wollte, in Farbe zu arbeiten... Aber die hatte keine Variable für den Grafikmodus verwendet, sondern den brav immer bei jeder Operation statisch eingestanzt. Da hatte man dan kaum eine Chance.

            Harzliche Grüße vom Berg
            esst mehr http://www.harte-harzer.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau
            1. Hallo Tom,

              Ich erinnere mich noch daran, dass ich dem Wordstar (anfangs 24kByte ws.com Programm) oder dem Quickstar beibringen wollte, in Farbe zu arbeiten... Aber die hatte keine Variable für den Grafikmodus verwendet, sondern den brav immer bei jeder Operation statisch eingestanzt. Da hatte man dan kaum eine Chance.

              Bei mir war es natürlich das eine oder andere DOS-Programm, auch vor dem Patchen von Windows-Dateien schrecke ich nicht zurück, wenn es einen einfachen Weg gibt, bestimmte störende Eigenschaften zu beseitigen.

              Aber am häufigsten habe ich in meinem früheren Job unser hausgemachtes Automatisierungssystem auf der Basis der legendären 8bit-CPU "6502" gepatcht. Normalerweise wurden die Dinger komplett kundenspezifisch in Assembler programmiert. Aber wenn man dann doch erst bei der Inbetriebnahme auf der Baustelle merkt, dass man eine Kleinigkeit übersehen hat und leider nicht das komplette Entwicklungssystem mit hat, dann hilft nur eins: Listing her und Maschinencodes von Hand patchen. Notfalls musste man auf diese Weise sogar einen "Rucksack" programmieren, wenn der geänderte Code länger war als der ursprüngliche.
              Ach ja...

              So long,

              Martin

              1. Hello,

                Notfalls musste man auf diese Weise sogar einen "Rucksack" programmieren, wenn der geänderte Code länger war als der ursprüngliche.

                Ja, Rucksäcke waren geil, insbesondere, wenn man vergessen hatte, dass es ja auch Interupts gibt, und die Register daher alle gesichert werden mussten und ggf. eben während des Rucksacks kein INT dazwischenfummeln durfte...

                Das hat aber fit gemacht für die spätere Aufgabe, konkurrierende Systeme mit Datenbanken zu erstellen.

                Harzliche Grüße vom Berg
                esst mehr http://www.harte-harzer.de

                Tom

                --
                Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                Nur selber lernen macht schlau
        2. hi,

          Weiß denn hier überhaupt noch einer, wie man "patcht" und woher der Ausdruck mal stammte?

          das verrät die wikipedia :-)

          gruß,
          wahsaga

          --
          /voodoo.css:
          #GeorgeWBush { position:absolute; bottom:-6ft; }
  2. Hi,

    http://www.silicon.de/cpo/news-itsecurity/detail.php?nr=23194

    Na, die sind ja richtig turbomäßig aktuell! >;->

    Gruß, Cybaer

    --
    Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
  3. Hello,

    Die Script-Sprache PHP Hypertext Preprocessor, die zur Gestaltung dynamischer Websites benutzt wird, hat ein Loch. Wie das Security-Projekt 'Hardened PHP Project' mitteilt, betrifft die Lücke das PHP Web Service Protocol.

    Und könntest Du diese Worthülse bitte auch mal mit ein paar praktischen Beispielen füllen, wann und wodurch das Leck relevant wird?

    Muss man einen geheimen Parameter übergeben, um Vollzugriff auf die Domain zu erhalten, oder reicht es, den Monitor des Clients, der das Ergenis eines PHP-Scriptes anzeigt, nur anzuschauen?

    Harzliche Grüße vom Berg
    esst mehr http://www.harte-harzer.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
  4. Hi,

    http://www.silicon.de/cpo/news-itsecurity/detail.php?nr=23194

    Bitte nutze andere Services dafür, dann bist Du auch keine zwei Wochen zu spät dran. Alleine bei Securityfocus stand das schon am 15. http://www.securityfocus.com/archive/1/408127 was aber laut Timeline auch schon 3 Tage zu spät war.
    Zudem ist es nicht das erste Mal! Was machen die da eigentlich bei PHP?
    Was soll das hier überhaupt?
    "- Fri, 12 Aug 2005 21:15: Stefan Esser reports the vulnerability to Drupal and
     other PHP projects using the XML-RPC library.
     He plans a coordinated release of all affected
     projects for next week.
     - Sun, 14 Aug 2005 22:40: Stefan Esser reports that the coordinated release
     is spoiled because information about the security
     issue was leaked to the public.
    "
    Um Gottes Willen, da hat jemand verraten, das es eine Sicherheitslücke gibt! Wo kommen wir denn da hin, wenn das alle machten?

    Nein, das bringt irgendwie kein sonderlich gutes Image rüber.

    so short

    Christoph Zurnieden

  5. Hallo Lexus,

    Ja toll, und warum sollte PHP »leck geschlagen« sein (Zitat Überschrift), wenn es in einem PHP-Script (dem PEAR-Paket XML_RPC, um es genau zu nennen) eine Sicherheitslücke gibt?

    Ist Windows »leck geschlagen«, wenn man in irgend einer Delphi-Bibliothek eine Sicherheitslücke findet? Wohl eher nicht, oder?

    Viele Grüße,
    Christian

    1. Hello,

      Ja toll, und warum sollte PHP »leck geschlagen« sein (Zitat Überschrift), wenn es in einem PHP-Script (dem PEAR-Paket XML_RPC, um es genau zu nennen) eine Sicherheitslücke gibt?

      Ist Windows »leck geschlagen«, wenn man in irgend einer Delphi-Bibliothek eine Sicherheitslücke findet? Wohl eher nicht, oder?

      alle Artikel, die man über die genannten Links erreichen konnte, erschienen mir äußerst demagogisch...
      Könnte es sein, dass da jemand neidisch auf die rasante Verbreitung und die mMn einfache Handhabung von PHP ist?

      Bei der Gelgenheit mal gefragt: Welches ist die empfehlenswerteste der letzten Versionen?
      Ich trau mich immer noch nicht, Prodiktivserver einfach auf einer 5er stable umzustellen. Da da aber z.Teil noch 4.2.x drauf läuft, wird's langsam Zeit!

      Harzliche Grüße vom Berg
      esst mehr http://www.harte-harzer.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
      1. Moin!

        Bei der Gelgenheit mal gefragt: Welches ist die empfehlenswerteste der letzten Versionen?
        Ich trau mich immer noch nicht, Prodiktivserver einfach auf einer 5er stable umzustellen. Da da aber z.Teil noch 4.2.x drauf läuft, wird's langsam Zeit!

        Nimm doch einstweilen erst mal 4.4.0.

        - Sven Rautenberg

        --
        My sssignature, my preciousssss!
        1. Hello,

          Bei der Gelgenheit mal gefragt: Welches ist die empfehlenswerteste der letzten Versionen?
          Ich trau mich immer noch nicht, Prodiktivserver einfach auf einer 5er stable umzustellen. Da da aber z.Teil noch 4.2.x drauf läuft, wird's langsam Zeit!

          Nimm doch einstweilen erst mal 4.4.0.

          Ist die Version wirklich stabil?
          Welche Änderungen gegenüber 4.2.x muss ich ggf. berücksichtigen, die man gerne und leicht (auch bei vorausschaunder Arbeit) übersehen könnte?

          Kann 4.4.0 schon die globalen Arrays abschalten?
          Mir geht es im Wesentlichen um zwei Dinge:

          GD-Lib wieder vollständig
            Speicherfunktionen vorhanden, Abschaltung der redundanten Arrays

          Nach Möglichkeit Beseitigung des Denkfehlers bei Lock Advisory und Lock Mandatory
            (aber damit rechne ich nicht, da die Burschen mich überhaupt nicht verstanden haben,
             nicht verstehen wollten!)

          Ist aber kein unerheblicher Aufwand, befürchte ich.

          • Da muss Freetype neu aufgebaut werden
          • da muss die GD-Lib fertig gemacht werden
          • die Zusatzmodule für dbase, dio_*, usw. müssen dasein

          Gibts eine möglichst vollständige Version als Paket?

          Harzliche Grüße vom Berg
          esst mehr http://www.harte-harzer.de

          Tom

          --
          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
          Nur selber lernen macht schlau
          1. Hallo

            Nimm doch einstweilen erst mal 4.4.0.

            Ist die Version wirklich stabil?
            Welche Änderungen gegenüber 4.2.x muss ich ggf. berücksichtigen, die man gerne und leicht (auch bei vorausschaunder Arbeit) übersehen könnte?

            Das steht im Changelog.

            Gibts eine möglichst vollständige Version als Paket?

            Reicht Dir http://www.php.net/downloads.php#v4 nicht?

            Freundliche Grüße

            Vinzenz

          2. Hallo Tom,

            Ist die Version wirklich stabil?

            Ja.

            Welche Änderungen gegenüber 4.2.x muss ich ggf. berücksichtigen, die man gerne und leicht (auch bei vorausschaunder Arbeit) übersehen könnte?

            Bei Referenzen hat sich bei PHP 4.4.0 einiges geändert - gibt halt jetzt haufenweise Notices, wenn Du Referenzen auf eine nicht vorgesehene Weise verwendest - allerdings funktioniert alles weiterhin, d.h. wenn Du Notices abschaltest, funktioniert's genauso wie vorher. Du solltest allerdings in Hinblick auf zukünftige Versionen dafür sorgen, dass die Notices verschwinden - sie sind aus gutem Grund da.

            Kann 4.4.0 schon die globalen Arrays abschalten?

            Welche globalen Arrays?

            GD-Lib wieder vollständig

            Was meinst Du damit? Die gebündelte Version ist meines Wissens 2.0.23, wenn Du unter UNIX PHP selbst kompilierst, kannst Du das auch gegen eine auf dem System vorhandene GD-Lib linken.

            Speicherfunktionen vorhanden,

            Das kann alles heißen, was genau meinst Du?

            Abschaltung der redundanten Arrays

            Welche Arrays sind redundant?

            Nach Möglichkeit Beseitigung des Denkfehlers bei Lock Advisory und Lock Mandatory

            Wovon redest Du?

            Viele Grüße,
            Christian

            1. Hello,

              Kann 4.4.0 schon die globalen Arrays abschalten?

              Welche globalen Arrays?

              Die redundant gehaltenen "Globalen Arrays", laos die "Alten" $HTTP_*_VARS
              Die neuen ($_SESSION, $_GET,...) nennen sich ja "Superglobale Arrays"

              GD-Lib wieder vollständig

              vollständiger GIF-Support und noch ein paar neue Formate enthalten, Alle Truecolor-Funktionen

              Nach Möglichkeit Beseitigung des Denkfehlers bei Lock Advisory und Lock Mandatory

              Wovon redest Du?

              Wenn man mittels dio_ ein File sperrt (Mandatory), und ein anderer Prozess versucht, dasselbe File mittels flock(...LOCK_NB) zu sperren (Advisory), wird leider nicht mit Fehlerstatus abgebrochen, sondern trotzdem solange gewartet, bis ein Lock möglich ist. Angefordert wurde aber ein Non-Blocking-Lock!

              Harzliche Grüße vom Berg
              esst mehr http://www.harte-harzer.de

              Tom

              --
              Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
              Nur selber lernen macht schlau