Executive brief
PHP is a widely used programming language for web development. A vulnerability in its WDDX data exchange component allows an attacker to crash a web application by sending a specially crafted XML document. This results in a denial of service, potentially taking websites or web services offline.
Technical details
A NULL pointer dereference exists in the php_wddx_pop_element function within ext/wddx/wddx.c. The vulnerability is triggered during the deserialization of a WDDX packet when an inapplicable class name (such as an interface or abstract class) is provided. The object_init_ex function fails to instantiate these types and returns a NULL object pointer, which is subsequently mishandled by the wddx_deserialize call. A remote, unauthenticated attacker can exploit this by submitting a malicious XML document to a PHP script that processes WDDX data, leading to an immediate process crash. This issue was resolved in PHP versions 7.0.15 and 7.1.1.
Affected products
- PHP Group PHP 7.0.x before 7.0.15, 7.1.x before 7.1.1
Timeline
- 2016-12-29: disclosed: Bug reported to PHP bug tracker
- 2017-01-24: advisory: NVD published the CVE record
- 2017-01-19: patched: PHP 7.0.15 and 7.1.1 released