DFN-CERT-2016-1179 PHP: Mehrere Schwachstellen ermöglichen u.a. die Ausführung beliebigen Programmcodes [Linux][Fedora][Apple][Windows]

DFN-CERT portal at dfn-cert.de
Fri Jul 22 11:50:02 CEST 2016


Liebe Kolleginnen und Kollegen,

bitte beachten Sie die folgende Sicherheitsmeldung.

Betroffene Software:

  PHP < 5.5.38
  PHP < 5.6.24
  PHP < 7.0.9
  

Betroffene Plattformen:

  Apple Mac OS X
  GNU/Linux
  Microsoft Windows 
  Red Hat Fedora 23
  Red Hat Fedora 24
  


Mehrere Schwachstellen in PHP ermöglichen einem entfernten, nicht
authentifizierten Angreifer das Ausführen beliebigen Programmcodes,
Ausspähen von Informationen, Durchführen verschiedener Denial-of-Service
(DoS)-Angriffe sowie das Umleiten des ausgehenden HTTP-Verkehrs einer
Anwendung auf einen beliebigen, schädlichen Proxy-Server
("httpoxy"-Problem). Die Schwachstellen PHP-BUG-ID-72519, PHP-BUG-ID-72541,
PHP-BUG-ID-72551 und PHP-BUG-ID-72552 betreffen nur die PHP Version 7.0.8.

PHP stellt die stabilen Versionen 5.5.38, 5.6.24 und 7.0.9 als
Sicherheitsupdates bereit, durch die mehrere sicherheitsrelevante
Schwachstellen (Sec Bugs) und zahlreiche weitere Programmfehler behoben
werden. Über einige dieser Schwachstellen liegen keine weiteren
Informationen vor, da die entsprechenden Bug-Referenzen (derzeit noch) als
'private' markiert sind.

Für Fedora 23 und 24 stehen Sicherheitsupdates für PHP auf die Version
5.6.24 im Status 'testing' bereit.


Patch:

  PHP 5.5.38 Change Log

  <https://secure.php.net/ChangeLog-5.php#5.5.38>

Patch:

  PHP 5.6.24 Change Log

  <https://secure.php.net/ChangeLog-5.php#5.6.24>

Patch:

  PHP 7.0.9 Change Log

  <https://secure.php.net/ChangeLog-7.php#7.0.9>

Patch:

  Fedora Security Update FEDORA-2016-8eb11666aa (Fedora 24, php-5.6.24-1)

  <https://bodhi.fedoraproject.org/updates/FEDORA-2016-8eb11666aa>

Patch:

  Fedora Security Update FEDORA-2016-cd2bd0800f (Fedora 23, php-5.6.24-1)

  <https://bodhi.fedoraproject.org/updates/FEDORA-2016-cd2bd0800f>


PHP-BUG-ID-72618: Schwachstelle in PHP ermöglicht Denial-of-Service-Angriff

  Es existiert eine Schwachstelle in der Funktion 'exif_process_user_comment'
  in der Erweiterung Exchangable Image Information (EXIF) in PHP aufgrund
  unzureichender Überprüfung von Übergabeparametern und Rückgabewerten. Ist
  die Variable 'encode_jis' als leere Zeichenkette deklariert, liefert die
  Methode 'zend_multibyte_fetch_encoding' innerhalb der Funktion einen
  NULL-Zeiger zurück. Dieser wird im weiteren Programmablauf ungeprüft
  verwendet, wodurch das Programm abstürzt (Segmentation Fault). Ein
  entfernter, nicht authentifizierter Angreifer kann einen
  Denial-of-Service-Angriff durchführen.


PHP-BUG-ID-72613: Schwachstelle in PHP ermöglicht Ausführen beliebigen
  Programmcodes

  In der Funktion 'bzread' in der bzip2-Bibliothek in PHP ist es aufgrund
  unzureichender Behandlung von Fehlern möglich, unbemerkt die Ausführung
  fortzuführen, wodurch das Programm in einem ausnutzbaren Zustand verbleibt.
  Ein entfernter, nicht authentifizierter Angreifer kann durch Ausnutzen der
  Schwachstelle Schreibzugriffe in Speicherbereiche außerhalb zulässiger
  Grenzen (Out-of-bounds Write) vornehmen und dadurch beliebigen Programmcode
  zur Ausführung bringen.


PHP-BUG-ID-72606: Schwachstelle in PHP ermöglicht Ausführen beleibigen
  Programmcodes

  Die Längenprüfung der Funktion 'simplestring_addn' in 'simplestring.c' in
  PHP interpretiert den Wert 'length' als vorzeichenbehaftete Ganzzahl. Diese
  Schwachstelle kann mit einem bösartigen PHP-Skript dazu ausgenutzt werden,
  Schreibzugriffe (Out-of-bounds Write) auf dem Heap-Pufferspeicher
  durchzuführen. Ein entfernter, nicht authentifizierter Angreifer kann
  beliebigen Programmcode zur Ausführung bringen.


PHP-BUG-ID-72603: Schwachstelle in PHP ermöglicht u.a. Ausführen beliebigen
  Programmcodes

  In der Funktion 'exif_process_IFD_in_MAKERNOTE' in PHP kommt es aufgrund
  fehlerhafter Überprüfung von Rückgabewerten im weiteren Programmverlauf zur
  unkontrollierten Verwendung von Pufferspeichergrößen. Dies ermöglicht den
  Lese- und Schreibzugriff auf Speicherbereiche außerhalb der zulässigen
  Grenzen (Out-of-bounds Read and Write). Ein entfernter, nicht
  authentifizierter Angreifer kann durch Ausnutzen der Schwachstelle
  Informationen aus dem Speicher ausspähen und durch Korrumpieren des
  Speichers (Memory Corruption) einen Denial-of-Service-Angriff durchführen
  oder möglicherweise sogar beliebigen Programmcode ausführen.


PHP-BUG-ID-72562: Schwachstelle in PHP ermöglicht Ausführen beliebigen
  Programmcodes

  Es existiert eine Use-after-free-Schwachstelle in der Funktion 'unserialize'
  in PHP, wenn die Deserialisierung einer Sitzung (Session Deserialization)
  fehlschlägt und dadurch der Zeiger auf einen Speicherbereich nicht korrekt
  freigegeben wird. Ein entfernter, nicht authentifizierter Angreifer kann
  durch Ausnutzen der Schwachstelle beliebigen Programmcode ausführen.


PHP-BUG-ID-72552: Schwachstelle in PHP ermöglicht Denial-of-Service-Angriff

  In 'mdecrypt_generic' in PHP führt eine fehlerhafte Typenumwandlung
  (Casting) beim Entschlüsseln von Streams zum Abschneiden von Daten in
  'data_len'. Weil die Funktionen 'alloc' und 'memcpy' diese Länge nicht
  überprüfen, kommt es in der Folge zu einem Heap-Speicherüberlauf (Heap
  Overflow). Ein entfernter, nicht authentifizierter Angreifer kann diese
  Schwachstelle ausnutzen, um einen Denial-of-Service-Angriff durchzuführen
  oder möglicherweise beliebigen Programmcode zur Ausführung bringen.


PHP-BUG-ID-72551: Schwachstelle in PHP ermöglicht Denial-of-Service-Angriff

  In 'mcrypt_generic' in PHP führt eine fehlerhafte Typenumwandlung (Casting)
  beim Verschlüsseln von Streams zum Abschneiden von Daten in 'data_len'. Weil
  die Funktionen 'alloc' und 'memcpy' diese Länge nicht überprüfen, kommt es
  in der Folge zu einem Heap-Speicherüberlauf (Heap Overflow). Ein entfernter,
  nicht authentifizierter Angreifer kann diese Schwachstelle ausnutzen, um
  einen Denial-of-Service-Angriff durchzuführen oder möglicherweise beliebigen
  Programmcode zur Ausführung bringen.
  


PHP-BUG-ID-72541: Schwachstelle in PHP ermöglicht Denial-of-Service-Angriff

  In der Funktion 'curl_unescape' in PHP kann es zu einem Überlauf des Wertes
  'size_t' und in der Folge zu einer Korrumpierung des Heap-Speichers kommen.
  Ein entfernter, nicht authentifizierter Angreifer kann diese Schwachstelle
  ausnutzen, um einen Denial-of-Service-Angriff durchzuführen oder
  möglicherweise beliebigen Programmcode zur Ausführung bringen.


PHP-BUG-ID-72533: Schwachstelle in PHP ermöglicht Denial-of-Service-Angriff

  In der Funktion 'locale_accept_from_http' in PHP existiert eine
  Schwachstelle aufgrund unzureichender Überprüfung des Rückgabewertes der
  aufgerufenen Funktion 'uloc_canonicalize'. Ein entfernter, nicht
  authentifizierter Angreifer kann durch Ausnutzen der Schwachstelle auf
  Speicherbereiche außerhalb der zulässigen Grenzen zugreifen (Out-of-bounds
  Access) und dadurch einen Denial-of-Service-Zustand herbeiführen.


PHP-BUG-ID-72519: Schwachstelle in LibGD ermöglicht
  Denial-of-Service-Angriff

  In der Funktion 'output' aus 'gd_gif_out.c' in PHP kann es bei der Ausgabe
  von GIF-Bilddateien zu einem Speicherzugriff außerhalb von Begrenzungen
  (Out-of-bounds Access) für das Maskenfeld (Masks Array) kommen, wenn
  'ctx->cur_bits' negative Werte annimmt. Ein entfernter, nicht
  authentifizierter Angreifer kann diese Schwachstelle ausnutzen, um einen
  Denial-of-Service-Angriff durchzuführen oder möglicherweise beliebigen
  Programmcode zur Ausführung bringen.


PHP-BUG-ID-72513: Schwachstelle in PHP ermöglicht Denial-of-Service-Angriff

  In der Variablen 'path_length' in der Funktion 'virtual_file_ex' in PHP
  existiert eine Schwachstelle aufgrund eines Ganzzahl-Überlaufs (Integer
  Overflow). Dadurch ist es möglich mit 'memcpy' eine große Menge an Daten zu
  kopieren, wodurch der Pufferspeicher zum Überlauf gebracht werden kann
  (Buffer Overflow). Ein entfernter, nicht authentifizierter Angreifer kann
  durch Ausnutzen der Schwachstelle einen Denial-of-Service (DoS)-Angriff
  durchführen und möglicherweise sogar beliebigen Programmcode ausführen.


PHP-BUG-ID-72479: Schwachstelle in PHP ermöglicht Ausführen beliebigen
  Programmcodes 

  Es existiert eine nicht näher beschriebene Use-after-free-Schwachstelle im
  SNMP-Paket in PHP aufgrund eines Fehlers im Algorithmus des Garbage
  Collectors. Dies ermöglicht es den Garbage Collector dazu zu veranlassen,
  ein bestimmtes Speicher-Array freizugeben und es daraufhin zu übernehmen.
  Ein entfernter, nicht authentifizierter Angreifer kann beliebigen
  Programmcode ausführen. 


CVE-2016-6207: Schwachstelle in LibGD ermöglicht Ausführen beliebigen
  Programmcodes

  In der Funktion '_gdContributionsAlloc()' in 'gd_interpolation.c' von LibGD
  bevor libgd-2.2.3, die auch in PHP verwendet wird, existiert eine
  Schwachstelle aufgrund eines Ganzzahl-Überlaufs (Integer Overflow), wodurch
  schreibende Speicherzugriffe außerhalb von Begrenzungen möglich sind
  (Out-of-bounds Write). Ein entfernter, nicht authentifizierter Angreifer
  kann diese Schwachstelle ausnutzen, um beliebigen Programmcode zur
  Ausführung bringen. Die Schwachstelle betrifft PHP nur dann, wenn
  'memory_limit' nicht auf einen angemessenen Wert gesetzt ist.


PHP-BUG-ID-72520: Schwachstelle in PHP PECL ermöglicht Ausführen beliebigen
  Programmcodes

  Die Funktion 'php_stream_zip_opener' in der Erweiterung PHP PECL ZipArchive
  (php-pecl-zip) überprüft die Variable 'path_len' fehlerhaft, wodurch diese
  anfällig für Ganzzahl-Überläufe (Integer Overflow) ist. Da diese Variable im
  weiteren Programmablauf zur Berechnung von Speichergrößen verwendet wird,
  kann es zu einem Pufferspeicher-Überlauf kommen (Buffer Overflow). Ein
  entfernter, nicht authentifizierter Angreifer kann diese Schwachstelle
  ausnutzen, um durch Korrumpieren des Speichers (Memory Corruption)
  beliebigen Programmcode zur Ausführung zu bringen.


CVE-2016-5385: Schwachstelle in PHP ermöglicht Umgehen von
  Sicherheitsvorkehrungen

  PHP bis einschließlich Version 7.0.8 versucht nicht, einen durch RFC 3875
  Sektion 4.1.18 bedingten Namensraumkonflikt zu adressieren und schützt
  deshalb Anwendungen nicht vor nicht vertrauenswürdigen Client-Daten in der
  HTTP_PROXY-Umgebungsvariablen. Dadurch ist es mit Hilfe eines präparierten
  Proxy-Headers in einer HTTP-Anfrage - beispielsweise mittels einer
  Anwendung, die einen getenv('HTTP_PROXY') Aufruf tätigt oder durch eine
  bestimmte CGI-Konfiguration von PHP - möglich, den ausgehenden HTTP-Verkehr
  einer Anwendung auf einen beliebigen Proxy-Server umzuleiten. Das Problem
  ist unter dem Namen 'httpoxy' bekannt.


Referenzen:

Dieses Advisory finden Sie auch im DFN-CERT Portal unter:
  <https://portal.cert.dfn.de/adv/DFN-CERT-2016-1179/>

PHP 5.5.38 Change Log:
  <https://secure.php.net/ChangeLog-5.php#5.5.38>

PHP 5.6.24 Change Log:
  <https://secure.php.net/ChangeLog-5.php#5.6.24>

PHP 7.0.9 Change Log:
  <https://secure.php.net/ChangeLog-7.php#7.0.9>

Schwachstelle CVE-2016-5385 (NVD):
  <http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-5385>

Fedora Security Update FEDORA-2016-8eb11666aa (Fedora 24, php-5.6.24-1):
  <https://bodhi.fedoraproject.org/updates/FEDORA-2016-8eb11666aa>

Fedora Security Update FEDORA-2016-cd2bd0800f (Fedora 23, php-5.6.24-1):
  <https://bodhi.fedoraproject.org/updates/FEDORA-2016-cd2bd0800f>

PHP Sec Bug #72479: Use After Free Vulnerability in SNMP with GC and
unserialize():
  <https://bugs.php.net/bug.php?id=72479>

PHP Sec Bug #72513: Stack-based buffer overflow vulnerability in
virtual_file_ex:
  <https://bugs.php.net/bug.php?id=72513>

PHP Sec Bug #72519: imagegif/output out-of-bounds access:
  <https://bugs.php.net/bug.php?id=72519>

PHP Sec Bug #72520: Stack-based buffer overflow vulnerability in
php_stream_zip_opener:
  <https://bugs.php.net/bug.php?id=72520>

PHP Sec Bug #72533: locale_accept_from_http out-of-bounds access:
  <https://bugs.php.net/bug.php?id=72533>

PHP Sec Bug #72541: size_t overflow lead to heap corruption:
  <https://bugs.php.net/bug.php?id=72541>

PHP Sec Bug #72551: In correct casting from size_t to int lead to heap
overflow in mcrypt_generic:
  <https://bugs.php.net/bug.php?id=72551>

PHP Sec Bug #72552: In correct casting from size_t to int lead to heap
overflow in mdecrypt_generic:
  <https://bugs.php.net/bug.php?id=72552>

PHP Sec Bug #72558: Integer overflow error within _gdContributionsAlloc()
(CVE-2016-6207):
  <https://bugs.php.net/bug.php?id=72558>

PHP Sec Bug #72562: Use After Free in unserialize() with Unexpected Session
Deserialization:
  <https://bugs.php.net/bug.php?id=72562>

PHP Sec Bug #72573: HTTP_PROXY is improperly trusted by some PHP libraries and
applications (CVE-2016-5385):
  <https://bugs.php.net/bug.php?id=72573>

PHP Sec Bug #72603: Out of bound read in exif_process_IFD_in_MAKERNOTE:
  <https://bugs.php.net/bug.php?id=72603>

PHP Sec Bug #72606: heap-buffer-overflow (write) simplestring_addn
simplestring.c:
  <https://bugs.php.net/bug.php?id=72606>

PHP Sec Bug #72613: Inadequate error handling in bzread():
  <https://bugs.php.net/bug.php?id=72613>

PHP Sec Bug #72618: NULL Pointer Dereference in exif_process_user_comment:
  <https://bugs.php.net/bug.php?id=72618>

Schwachstelle CVE-2016-6207 (NVD):
  <http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-6207>


(c) DFN-CERT Services GmbH, all rights reserved!
Die Weiterverbreitung ist mit Hinweis auf den Copyrightinhaber innerhalb der
eigenen Einrichtung erlaubt. Eine darüber hinausgehende Verbreitung bedarf
des schriftlichen Einverständnisses des Rechteinhabers.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4686 bytes
Desc: not available
URL: <https://lists.cert.uni-stuttgart.de/pipermail/security-announce/attachments/20160722/1a40af06/attachment.bin>


More information about the Security-Announce mailing list