CVE-2016-7480
The SplObjectStorage unserialize implementation in ext/spl/spl_observer.c in PHP before 7.0.12...
CVE-2016-7480 is a critical vulnerability (CVSS 9.8) in Php, published January 11, 2017. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 41.6%, the 98th percentile. Fixed in php7 7.0.7-35.1.
The SplObjectStorage unserialize implementation in ext/spl/spl_observer.c in PHP before 7.0.12 does not verify that a key is an object, which allows remote attackers to execute arbitrary code or cause a denial of service (uninitialized memory access) via crafted serialized data.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
NVD Score used
9.8
The SplObjectStorage unserialize implementation in ext/spl/spl_observer.c in PHP before 7.0.12 does not verify that a key is an object, which allows remote attackers to execute arbitrary code or cause a denial of service (uninitialized memory access) via crafted serialized data.
- Record
CVE-2016-7480- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - CVSS 2.0
- 7.5 High
AV:N/AC:L/Au:N/C:P/I:P/A:P - Weakness
- CWE-119
- Updated
- 2026-11-02
CVE List No score
The SplObjectStorage unserialize implementation in ext/spl/spl_observer.c in PHP before 7.0.12 does not verify that a key is an object, which allows remote attackers to execute arbitrary code or cause a denial of service (uninitialized memory access) via crafted serialized data.
- Record
CVE-2016-7480- Updated
- 2026-11-02
EUVDEUVD-2016-8333 No score
The SplObjectStorage unserialize implementation in ext/spl/spl_observer.c in PHP before 7.0.12 does not verify that a key is an object, which allows remote attackers to execute arbitrary code or cause a denial of service (uninitialized memory access) via crafted serialized data.
- Record
EUVD-2016-8333- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-35p7-xqgq-2gx7
9.8
The SplObjectStorage unserialize implementation in ext/spl/spl_observer.c in PHP before 7.0.12...
The SplObjectStorage unserialize implementation in ext/spl/spl_observer.c in PHP before 7.0.12 does not verify that a key is an object, which allows remote attackers to execute arbitrary code or cause a denial of service (uninitialized memory access) via crafted serialized data.
- Record
GHSA-35p7-xqgq-2gx7- CVSS 3.0
- 9.8 Critical
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-119
- Updated
- 2026-11-02
OSV
9.8
The SplObjectStorage unserialize implementation in ext/spl/spl_observer.c in PHP before 7.0.12 does not verify that a key is an object, which allows remote attackers to execute arbitrary code or cause a denial of service (uninitialized memory access) via crafted serialized data.
- Record
CVE-2016-7480- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVUBUNTU-CVE-2016-7480
9.8
The SplObjectStorage unserialize implementation in ext/spl/spl_observer.c in PHP before 7.0.12 does not verify that a key is an object, which allows remote attackers to execute arbitrary code or cause a denial of service (uninitialized memory access) via crafted serialized data.
- Record
UBUNTU-CVE-2016-7480- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - CVSS 3.0
- 9.8 Critical
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVSUSE-SU-2017:0534-1 No score
Security update for php7
This update for php7 fixes the following security issues:
- CVE-2016-7480: The SplObjectStorage unserialize implementation in ext/spl/spl_observer.c in PHP did not verify that a key is an object, which allowed remote attackers to execute arbitrary code or cause a denial of service (uninitialized memory access) via crafted serialized data. (bsc#1019568)
- CVE-2017-5340: Zend/zend_hash.c in PHP mishandled certain cases that require large array allocations, which allowed remote attackers to execute arbitrary code or cause a denial of service (integer overflow, uninitialized memory access, and use of arbitrary destructor function pointers) via crafted serialized data. (bsc#1019570)
- CVE-2016-7479: In all versions of PHP 7, during the unserialization process, resizing the 'properties' hash table of a serialized object may have lead to use-after-free. A remote attacker may exploit this bug to gain arbitrary code execution. (bsc#1019547)
- CVE-2016-7478: Zend/zend_exceptions.c in PHP allowed remote attackers to cause a denial of service (infinite loop) via a crafted Exception object in serialized data, a related issue to CVE-2015-8876. (bsc#1019550)
- CVE-2016-10159: Integer overflow in the phar_parse_pharfile function in ext/phar/phar.c in PHP allowed remote attackers to cause a denial of service (memory consumption or application crash) via a truncated manifest entry in a PHAR archive. (bsc#1022255)
- CVE-2016-10160: Off-by-one error in the phar_parse_pharfile function in ext/phar/phar.c in PHP allowed remote attackers to cause a denial of service (memory corruption) or possibly execute arbitrary code via a crafted PHAR archive with an alias mismatch. (bsc#1022257)
- CVE-2016-10161: The object_common1 function in ext/standard/var_unserializer.c in PHP allowed remote attackers to cause a denial of service (buffer over-read and application crash) via crafted serialized data that is mishandled in a finish_nested_data call. (bsc#1022260)
- CVE-2016-10162: The php_wddx_pop_element function in ext/wddx/wddx.c in PHP 7 allowed remote attackers to cause a denial of service (NULL pointer dereference and application crash) via an inapplicable class name in a wddxPacket XML document, leading to mishandling in a wddx_deserialize call. (bsc#1022262)
- CVE-2016-10166: A potential unsigned underflow in gd interpolation functions could lead to memory corruption in the PHP gd module (bsc#1022263)
- CVE-2016-10167: A denial of service problem in gdImageCreateFromGd2Ctx() could lead to php out of memory even on small files. (bsc#1022264)
- CVE-2016-10168: A signed integer overflow in the gd module could lead to memory corruption (bsc#1022265)
- CVE-2016-9138: PHP mishandled property modification during __wakeup processing, which allows remote attackers to cause a denial of service or possibly have unspecified other impact via crafted serialized data, as demonstrated by Exception::__toString with DateInterval::__wakeup. (bsc#1008026)
- Record
SUSE-SU-2017:0534-1- Updated
- 2026-11-02
Affected products
Affected packages
History
| When | Changed | Sources |
|---|---|---|
| 2026-11-03 | affected | |
| 2026-11-03 | aliases | EUVD |
| 2026-11-02 | created | CVE List, GitHub Advisories, NVD, OSV |
References
blog.checkpoint.com/wp-content/uploads/2016/12/PHP_Technical_Report.pdf
youtube.com/watch?v=LDcaPstAuPk
bugs.php.net/bug.php?id=73257
php.net/ChangeLog-7.php
securityfocus.com/bid/95152
github.com/php/php-src/commit/61cdd1255d5b9c8453be71aacbbf682796ac77d4
Show 33 moreShow less
security.netapp.com/advisory/ntap-20180112-0001
blog.checkpoint.com/2016/12/27/check-point-discovers-three-zero-day-vulnerabilities-web-programming-language-php-7
nvd.nist.gov/vuln/detail/CVE-2016-7480
github.com/advisories/GHSA-35p7-xqgq-2gx7
suse.com/support/update/announcement/2017/suse-su-20170534-1
bugzilla.suse.com/1008026
bugzilla.suse.com/1019547
bugzilla.suse.com/1019550
bugzilla.suse.com/1019568
bugzilla.suse.com/1019570
bugzilla.suse.com/1022219
bugzilla.suse.com/1022255
bugzilla.suse.com/1022257
bugzilla.suse.com/1022260
bugzilla.suse.com/1022262
bugzilla.suse.com/1022263
bugzilla.suse.com/1022264
bugzilla.suse.com/1022265
suse.com/security/cve/CVE-2016-10158
suse.com/security/cve/CVE-2016-10159
suse.com/security/cve/CVE-2016-10160
suse.com/security/cve/CVE-2016-10161
suse.com/security/cve/CVE-2016-10162
suse.com/security/cve/CVE-2016-10166
suse.com/security/cve/CVE-2016-10167
suse.com/security/cve/CVE-2016-10168
suse.com/security/cve/CVE-2016-7478
suse.com/security/cve/CVE-2016-7479
suse.com/security/cve/CVE-2016-7480
suse.com/security/cve/CVE-2016-9138
suse.com/security/cve/CVE-2017-5340
ubuntu.com/security/CVE-2016-7480
cve.org/CVERecord?id=CVE-2016-7480