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.
The product performs operations on a memory buffer, but it reads from or writes to a memory location outside the buffer's intended boundary. This may result in read or write operations on unexpected memory locations that could be linked to other variables, data structures, or internal program data.
Link | Tags |
---|---|
http://blog.checkpoint.com/wp-content/uploads/2016/12/PHP_Technical_Report.pdf | exploit third party advisory technical description |
https://www.youtube.com/watch?v=LDcaPstAuPk | third party advisory broken link |
https://bugs.php.net/bug.php?id=73257 | issue tracking patch vendor advisory |
http://php.net/ChangeLog-7.php | release notes vendor advisory |
http://www.securityfocus.com/bid/95152 | vdb entry third party advisory |
https://github.com/php/php-src/commit/61cdd1255d5b9c8453be71aacbbf682796ac77d4 | third party advisory patch |
https://security.netapp.com/advisory/ntap-20180112-0001/ | third party advisory |
http://blog.checkpoint.com/2016/12/27/check-point-discovers-three-zero-day-vulnerabilities-web-programming-language-php-7 | vdb entry third party advisory |