CVE Vulnerabilities

CVE-2016-7124

Deserialization of Untrusted Data

Published: Sep 12, 2016 | Modified: Apr 12, 2025
CVSS 3.x
9.8
CRITICAL
Source:
NVD
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS 2.x
7.5 HIGH
AV:N/AC:L/Au:N/C:P/I:P/A:P
RedHat/V2
4 MODERATE
AV:N/AC:H/Au:N/C:P/I:P/A:N
RedHat/V3
4.8 MODERATE
CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
Ubuntu
LOW

ext/standard/var_unserializer.c in PHP before 5.6.25 and 7.x before 7.0.10 mishandles certain invalid objects, which allows remote attackers to cause a denial of service or possibly have unspecified other impact via crafted serialized data that leads to a (1) __destruct call or (2) magic method call.

Weakness

The product deserializes untrusted data without sufficiently ensuring that the resulting data will be valid.

Affected Software

Name Vendor Start Version End Version
Php Php 7.0.0 (including) 7.0.0 (including)
Php Php 7.0.1 (including) 7.0.1 (including)
Php Php 7.0.2 (including) 7.0.2 (including)
Php Php 7.0.3 (including) 7.0.3 (including)
Php Php 7.0.4 (including) 7.0.4 (including)
Php Php 7.0.5 (including) 7.0.5 (including)
Php Php 7.0.6 (including) 7.0.6 (including)
Php Php 7.0.7 (including) 7.0.7 (including)
Php Php 7.0.8 (including) 7.0.8 (including)
Php Php 7.0.9 (including) 7.0.9 (including)
Red Hat Software Collections for Red Hat Enterprise Linux 6 RedHat rh-php56-0:2.3-1.el6 *
Red Hat Software Collections for Red Hat Enterprise Linux 6 RedHat rh-php56-php-0:5.6.25-1.el6 *
Red Hat Software Collections for Red Hat Enterprise Linux 6 RedHat rh-php56-php-pear-1:1.9.5-4.el6 *
Red Hat Software Collections for Red Hat Enterprise Linux 6.7 EUS RedHat rh-php56-0:2.3-1.el6 *
Red Hat Software Collections for Red Hat Enterprise Linux 6.7 EUS RedHat rh-php56-php-0:5.6.25-1.el6 *
Red Hat Software Collections for Red Hat Enterprise Linux 6.7 EUS RedHat rh-php56-php-pear-1:1.9.5-4.el6 *
Red Hat Software Collections for Red Hat Enterprise Linux 7 RedHat rh-php56-0:2.3-1.el7 *
Red Hat Software Collections for Red Hat Enterprise Linux 7 RedHat rh-php56-php-0:5.6.25-1.el7 *
Red Hat Software Collections for Red Hat Enterprise Linux 7 RedHat rh-php56-php-pear-1:1.9.5-4.el7 *
Red Hat Software Collections for Red Hat Enterprise Linux 7.2 EUS RedHat rh-php56-0:2.3-1.el7 *
Red Hat Software Collections for Red Hat Enterprise Linux 7.2 EUS RedHat rh-php56-php-0:5.6.25-1.el7 *
Red Hat Software Collections for Red Hat Enterprise Linux 7.2 EUS RedHat rh-php56-php-pear-1:1.9.5-4.el7 *
Red Hat Software Collections for Red Hat Enterprise Linux 7.3 EUS RedHat rh-php56-0:2.3-1.el7 *
Red Hat Software Collections for Red Hat Enterprise Linux 7.3 EUS RedHat rh-php56-php-0:5.6.25-1.el7 *
Red Hat Software Collections for Red Hat Enterprise Linux 7.3 EUS RedHat rh-php56-php-pear-1:1.9.5-4.el7 *
Php5 Ubuntu esm-infra-legacy/trusty *
Php5 Ubuntu precise *
Php5 Ubuntu trusty *
Php5 Ubuntu trusty/esm *
Php5 Ubuntu upstream *
Php7.0 Ubuntu devel *
Php7.0 Ubuntu esm-infra/xenial *
Php7.0 Ubuntu upstream *
Php7.0 Ubuntu xenial *

Potential Mitigations

  • Make fields transient to protect them from deserialization.
  • An attempt to serialize and then deserialize a class containing transient fields will result in NULLs where the transient data should be. This is an excellent way to prevent time, environment-based, or sensitive variables from being carried over and used improperly.

References