PHP 7.3.29, 7.4.21 und 8.0.8, Debian 11

  • Hallo,


    unsere PHP-Pakete für Debian/Ubuntu wurden eben auf die heute veröffentlichten Versionen 7.3.29, 7.2.21 und 8.0.8 aktualisiert.


    Außerdem wurde die ImageMagick-Extension auf 3.5.0 aktualisiert, diese ist nun erstmals mit PHP 8 kompatibel.


    Last but not least wurden alle PHP-Pakete und -Erweiterungen in den Versionen 5.6, 7.3, 7.4 und 8.0 auch schon für Debian 11 ("Bullseye") gebaut. Debian 11 soll voraussichtlich Ende Juli erscheinen, wir arbeiten bereits an der Unterstützung durch LiveConfig.


    PHP-Pakete in den Versionen 7.0, 7.1 und 7.2 sind für Debian 11 derzeit nicht geplant. PHP 5.6 (inklusive Security-Backports) wird nur deshalb bereitgestellt, weil es einige Steinzeit-Anwendungen gibt die das zwingend benötigen. Da ist es immer noch besser, ein altes PHP 5.6 auf einer neuen Distribution zu nutzen, als ein PHP 5.6 auf einem hoffnungslos veralteten Server. ;)


    Viele Grüße


    -Klaus Keppler

  • Seit dem Update hagelt es teilweise Fehlermeldungen wie diese auf Kundenseiten:


    Quote

    Warning: file_exists(): open_basedir restriction in effect. File(/definition.php) is not within the allowed path(s): (/var/www/web135/:/var/www/web135/htdocs/:/var/www/web135/apps/:/var/www/web135/priv/:/var/www/web135/tmp/:/usr/share/pear/:/usr/share/php/:/tmp/:/usr/bin/:/dev/urandom) in /var/www/web135/htdocs/wp-content/plugins/cornerstone/includes/classes/classic/elements/class-element-orchestrator.php on line 218



    Quote

    <br />
    <b>Fatal error</b>: Uncaught ImagickException: open_basedir restriction in effect. File(copyright.png) is not within the allowed path(s) in /var/www/web21/htdocs/datenbank/upload_ftp.php:20
    Stack trace:
    #0 /var/www/web21/htdocs/datenbank/upload_ftp.php(20): Imagick-&gt;__construct('copyright.png')
    #1 {main}
    thrown in <b>/var/www/web21/htdocs/datenbank/upload_ftp.php</b> on line <b>20</b><br />


    Müssen wir noch etwas anpassen oder hat sich hier ein Fehler eingeschlichen?


    Vor dem Update gab es keinerlei Fehlermeldungen.

  • Ja, das sieht gut aus. Dann müssen wir tiefer graben:


    - welche PHP-Version ist betroffen?
    - läuft PHP auf einem betroffenen Webspace via FPM oder via FastCGI?
    - wenn möglich, legen Sie bitte mal eine "phpinfo()"-Datei in einem betroffenen Webspace an und rufen diese mit einem Browser auf. Was steht dort bei "open_basedir"?

  • Ist vielleicht die selbe Anwendung (CMS/...) betroffen? Evtl. können Sie mal prüfen, ob die Anwendung per "ini_set" die open_basedir-Einstellung selber setzen/bearbeiten möchte.


    Aus dem Changelog zu PHP 7.4.21:
    "Fixed bug #76359 (open_basedir bypass through adding "..").


    Wir werden PHP 7.4.20 noch mal in unser Repo mit aufnehmen, um optional ein Downgrade zu ermöglichen.

  • Wir haben uns das nun mal im Detail angeschaut.


    Zur ersten Fehlermeldung:

    Quote

    Warning: file_exists(): open_basedir restriction in effect. File(/definition.php) is not within the allowed path(s): (/var/www/web135/:/var/www/web135/htdocs/:/var/www/web135/apps/:/var/www/web135/priv/:/var/www/web135/tmp/:/usr/share/pear/:/usr/share/php/:/tmp/:/usr/bin/:/dev/urandom) in /var/www/web135/htdocs/wp-content/plugins/cornerstone/includes/classes/classic/elements/class-element-orchestrator.php on line 218


    Bei PHP 7.3 tritt dieser Fehler nicht auf? Schwer vorstellbar. Diese Fehlermeldung deutet auf einen Programmfehler hin (da soll auf die Datei "/definition.php" zugegriffen werden, also im Server-Hauptverzeichnis). Diese Fehlermeldung findet sich bei Google auch schon irgendwo 2019 mal (Wordpress-plugin "Cornerstone").


    Zur zweiten Fehlermeldung:

    Quote


    Uncaught ImagickException: open_basedir restriction in effect. File(copyright.png) is not within the allowed path(s) in /var/www/web21/htdocs/datenbank/upload_ftp.php:20
    Stack trace:
    #0 /var/www/web21/htdocs/datenbank/upload_ftp.php(20): Imagick->__construct('copyright.png')


    Das wird vermutlich eher mit der ImageMagick-Extension 3.5.0 zu tun haben als mit dem PHP-Update auf 7.4.21.
    Auch hier wäre interessant, ob das mit PHP 7.3.29 und IMagick 3.5.0 tatsächlich nicht auftritt. Auf den ersten Blick sieht es für mich aber problematisch aus, wenn eine Datei ohne absolute Pfadangabe geöffnet werden soll (das ist dann eher Glückssache, in welchem Verzeichnis sich der jeweilige Prozess gerade befindet). Ohne genauere Code-Kenntnis zu haben riecht das also nach eher schlampiger Programmierung. Man könnte sich vor Zeile 20 in /var/www/web21/htdocs/datenbank/upload_ftp.php mal das aktuelle Verzeichnis ausgeben lassen, in dem die Datei erstellt werden soll.


    Die open_basedir-Änderung in PHP 7.4.21 ist plausibel und sauber, wenn's dadurch Probleme gibt dann nur, weil eine Anwendung unter Ausnutzung des PHP-Bugs 76359 die open_basedir-Einstellung umgangen hat.


    Für weitere "bei mir auch"-Meldungen bitte jeweils eine komplette (exakte) Fehlermeldung mitschicken.

  • Ich kann hier denn Fehler z.B. bei einer Nextcloud (Version 21.0.2 und auch 21.0.3) unter Debian 10 nachvollziehen.
    Vor dem Update ohne Probleme mit PHP 7.4 (FastCGI). Nach dem Update open_basedir Probleme. (Gerade nochmals mit Backup getestet.)


    z.B. :

    Quote

    Error: file_exists(): open_basedir restriction in effect. File(/templates/) is not within the allowed path(s): (/var/www/cloud/htdocs/:/var/www/cloud/apps/:/var/www/cloud/priv/:/var/www/cloud/tmp/:/usr/share/pear/:/usr/share/php/:/tmp/) at /var/www/cloud/htdocs/nextcloud/lib/private/Template/Base.php#68


    Mit aktuellem PHP 7.3 funktionert es ohne Probleme.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!