Description
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.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| — | PHP before 7.0.12 | PHP before 7.0.12 | — |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
SUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLES 12 SP2 | php7 | 7.0.7-35.1 | SUSE-SU-2017:0534-1 |
| SLES 12 SP1 | php7 | 7.0.7-35.1 | SUSE-SU-2017:0534-1 |
| SLES 12 | php7 | 7.0.7-35.1 | SUSE-SU-2017:0534-1 |
Advisories 1
- SUSE-SU-2017:0534-1 Security update for php7 SUSE / openSUSE Security Updates · Feb 4, 2026
References
- http://blog.checkpoint.com/wp-content/uploads/2016/12/PHP_Technical_Report.pdf
- https://www.youtube.com/watch?v=LDcaPstAuPk
- https://bugs.php.net/bug.php?id=73257
- http://php.net/ChangeLog-7.php
- 95152 vdb-entry
- https://github.com/php/php-src/commit/61cdd1255d5b9c8453be71aacbbf682796ac77d4
- https://security.netapp.com/advisory/ntap-20180112-0001/
- http://blog.checkpoint.com/2016/12/27/check-point-discovers-three-zero-day-vulnerabilities-web-programming-language-php-7