Opened 7 years ago

Closed 7 years ago

#8779 closed enhancement (fixed)

PHP-7.1.1 (CVE-2016-9935 CVE-2016-9936 CVE-2017-5430)

Reported by: Douglas R. Reno Owned by: Douglas R. Reno
Priority: high Milestone: 8.0
Component: BOOK Version: SVN
Severity: normal Keywords:
Cc:

Description (last modified by Douglas R. Reno)

New point version (Security Related)

Version 7.1.1
19 Jan 2017

    Core
        Fixed bug #73792 (invalid foreach loop hangs script).
        Fixed bug #73686 (Adding settype()ed values to ArrayObject results in references).
        Fixed bug #73663 ("Invalid opcode 65/16/8" occurs with a variable created with list()).
        Fixed bug #73727 (ZEND_MM_BITSET_LEN is "undefined symbol" in zend_bitset.h).
        Fixed bug #73753 (unserialized array pointer not advancing).
        Fixed bug #73783 (SIG_IGN doesn't work when Zend Signals is enabled).
        Fixed bug #73825 (Heap out of bounds read on unserialize in finish_nested_data()).
        Fixed bug #73831 (NULL Pointer Dereference while unserialize php object).
        Fixed bug #73832 (Use of uninitialized memory in unserialize()).
    CLI
        Fixed bug #72555 (CLI output(japanese) on Windows).
    COM
        Fixed bug #73679 (DOTNET read access violation using invalid codepage).
    DOM
        Fixed bug #67474 (getElementsByTagNameNS filter on default ns).
    EXIF
        Fixed bug #73737 (FPE when parsing a tag format).
    GD
        Fixed bug #73869 (Signed Integer Overflow gd_io.c).
        Fixed bug #73868 (DOS vulnerability in gdImageCreateFromGd2Ctx()).
    mbstring
        Fixed bug #73646 (mb_ereg_search_init null pointer dereference).
    MySQLi
        Fixed bug #73462 (Persistent connections don't set $connect_errno).
    mysqlnd
        Optimized handling of BIT fields - less memory copies and lower memory usage.
        Fixed bug #73800 (sporadic segfault with MYSQLI_OPT_INT_AND_FLOAT_NATIVE).
    opcache
        Fixed bug #73789 (Strange behavior of class constants in switch/case block).
        Fixed bug #73746 (Method that returns string returns UNKNOWN:0 instead).
        Fixed bug #73654 (Segmentation fault in zend_call_function).
        Fixed bug #73668 ("SIGFPE Arithmetic exception" in opcache when divide by minus 1).
        Fixed bug #73847 (Recursion when a variable is redefined as array).
    PDO Firebird
        Fixed bug #72931 (PDO_FIREBIRD with Firebird 3.0 not work on returning statement).
    phpdbg
        Fixed bug #73794 (Crash (out of memory) when using run and # command separator).
        Fixed bug #73704 (phpdbg shows the wrong line in files with shebang).
    SQLite3
        Reverted fix for Fixed bug #73530 (Unsetting result set may reset other result set).
    Standard
        Fixed bug #73594 (dns_get_record does not populate $additional out parameter).
        Fixed bug #70213 (Unserialize context shared on double class lookup).
        Fixed bug #73154 (serialize object with __sleep function crash).
        Fixed bug #70490 (get_browser function is very slow).
        Fixed bug #73265 (Loading browscap.ini at startup causes high memory usage).
        (add subject to mail log).
        Fixed bug #31875 (get_defined_functions additional param to exclude disabled functions).
    zlib
        Fixed bug #73373 (deflate_add does not verify that output was not truncated).

- CVE-2016-9935 (denial of service)

The php_wddx_push_element function in ext/wddx/wddx.c in PHP before
5.6.29 and 7.x before 7.0.14 allows remote attackers to cause a denial
of service (out-of-bounds read and memory corruption) or possibly have
unspecified other impact via an empty boolean element in a wddxPacket
XML document.

- CVE-2016-9936 (arbitrary code execution)

The unserialize implementation in ext/standard/var.c in PHP 7.x before
7.0.14 allows remote attackers to cause a denial of service (use-after-
free) or possibly execute arbitrary code via crafted serialized data.

- CVE-2017-5340 (arbitrary code execution)

It was found that PHP uses uninitialized memory during calls to
`unserialize()`. The payload supplied to `unserialize()` may control
this uninitialized memory region and thus may be used to trick PHP into
operating on faked objects and calling attacker controlled destructor
function pointers, effectively allowing arbitrary code execution via
specially crafted serialized data.

Impact
======

A remote attacker is able to use specially crafted input to perform a
denial of service attack or execute arbitrary code on the affected
host.

Change History (4)

comment:1 by Douglas R. Reno, 7 years ago

Owner: changed from blfs-book@… to Douglas R. Reno
Status: newassigned

comment:2 by Douglas R. Reno, 7 years ago

Priority: normalhigh

comment:3 by Douglas R. Reno, 7 years ago

Description: modified (diff)
Summary: PHP-7.1.1PHP-7.1.1 (CVE-2016-9935 CVE-2016-9936 CVE-2017-5430)

comment:4 by bdubbs@…, 7 years ago

Resolution: fixed
Status: assignedclosed

Fixed at revision 18238.

Note: See TracTickets for help on using tickets.