Sven Rautenberg: Sicherheitslücke in Version 4.3.0

Moin!

Wie gestern abend auf der PHP-Announce-Mailingliste verbreitet wurde, hat PHP 4.3.0 eine Sicherheitslücke, wenn es als CGI betrieben wird.

Der Bug verhindert, dass die Option "--enable-force-cgi-redirect" bzw. die PHP.INI-Option "cgi.force_redirect" wirksam werden. Dadurch ist der Zugriff auf alle Dateien möglich, die der Webserver-User lesen kann - und wenn der Angreifer es schafft, in solch eine Datei Code einzufügen, kann dieser auch ausgeführt werden. Beispielsweise in das Access-Logfile.

Das Update auf PHP Version 4.3.1 steht zum Download zur Verfügung.

- Sven Rautenberg

Die Original-Nachricht:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

PHP Security Advisory: CGI vulnerability in PHP version 4.3.0

Issued on: February 17, 2003
Software:  PHP/CGI version 4.3.0
Platforms: All

The PHP Group has learned of a serious security vulnerability in
   the CGI SAPI of PHP version 4.3.0.

Description

PHP contains code for preventing direct access to the CGI binary with
   configure option "--enable-force-cgi-redirect" and php.ini option
   "cgi.force_redirect". In PHP 4.3.0 there is a bug which renders these
   options useless.

NOTE: This bug does NOT affect any of the other SAPI modules.
         (such as the Apache or ISAPI modules, etc.)

Impact

Anyone with access to websites hosted on a web server which employs
   the CGI module may exploit this vulnerability to gain access to any file
   readable by the user under which the webserver runs.

A remote attacker could also trick PHP into executing arbitrary PHP code
   if attacker is able to inject the code into files accessible by the CGI.
   This could be for example the web server access-logs.

Solution

The PHP Group has released a new PHP version, 4.3.1, which incorporates
   a fix for the vulnerability. All users of affected PHP versions are
   encouraged to upgrade to this latest version. The downloads web site at

http://www.php.net/downloads.php

has the new 4.3.1 source tarballs, Windows binaries and source patch
   from 4.3.0 available for download. You will only need to upgrade if
   you're using the CGI module of PHP 4.3.0. There are no other bugfixes
   contained in this release.

Workaround

None.

Credits

The PHP Group would like to thank Kosmas Skiadopoulos for discovering
   this vulnerability.

Copyright (c) 2003 The PHP Group.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQE+USOr/HlsOzK2WlERAtLKAJ9GPbPt6Vg77zIcPTGKh78WofmmeACgneDV
tUERfwp/RXtcH13vdv0CGGY=
=rYm5
-----END PGP SIGNATURE-----
Keine Garantie, dass die Signatur durch das Pasten noch gilt.

--
"Bei einer Geschichte gibt es immer vier Seiten: Deine Seite, ihre Seite, die Wahrheit und das, was wirklich passiert ist." (Rousseau)
  1. Hi,

    Dadurch ist der Zugriff auf alle Dateien möglich, die der Webserver-User lesen kann - [...] Beispielsweise in das Access-Logfile.

    normalerweise sollte das Server-Logfile von der Server-Instanz aus zugreifbar sein, nicht von dessen Workern. Die Instanz wird (meist) als root gestartet, die Worker nicht. Wenn allerdings hier bei der Konfiguration geschlampt wurde, sieht es in der Tat düster aus.

    Nun ja, aber das Logfile ist nicht die einzige Datei, die beizeiten beschrieben wird.

    Cheatah

    --
    X-Will-Answer-Email: No
    1. Hallo Cheatah,

      Dadurch ist der Zugriff auf alle Dateien möglich, die der Webserver-User lesen kann - [...] Beispielsweise in das Access-Logfile.

      normalerweise sollte das Server-Logfile von der Server-Instanz aus zugreifbar sein, nicht von dessen Workern. Die Instanz wird (meist) als root gestartet, die Worker nicht. Wenn allerdings hier bei der Konfiguration geschlampt wurde, sieht es in der Tat düster aus.

      Das verstehe ich jetzt nicht so ganz - die Option force_cgi_redirect bewirkt doch nur, dass wenn _kein_ internal redirect (wie bei Handlern oder Fehlerseiten) erfolgte, dass _dann_ abgebrochen werden sollte. Um aber PHP überhaupt die Parameter zu übergeben, muss man ja so eine Syntax verwenden:

      http://....de/.../php/pfad/zur/Datei
                    ^^^
               (das ausführbare PHP-Programm)

      /pfad/zur/Datei muss aber innerhalb des Webstammbaums liegen, also betrifft diese Sicherheitslücke nur .htaccess-geschützte Verzeichnisse und ähnliches - _nicht_ jedoch die Logfiles, die sollten sowieso außerhalb des Webstammbaums liegen, sonst würde ich noch mal ein kräftiges Wörtchen mit meinem Provider reden. (bzw. ihn wechseln)

      Christian

      --
      Ich bitte darum, dass ein Themenbereich (BARRIEREFREIHEIT) eingerichtet wird.