Type confusion in PHP - CVE-2015-4147
Published: December 21, 2016 / Updated: November 27, 2018
Vulnerability identifier: #VU2556
CSH Severity: High
CVSS v4: 9.3 [CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N]
CVE-ID: CVE-2015-4147
CWE-ID: CWE-843
Exploitation vector: Remote access
Exploit availability:
No public exploit available
Vulnerability details
The vulnerability allows a remote attacker to execute arbitrary code on the target system.
The weakness exists due to type confusion in the SoapClient::__call method in ext/soap/soap.c in PHP before 5.4.39, 5.5.x before 5.5.23, and 5.6.x before 5.6.7 does not verify that __default_headers is an array. A remote attacker can trigger memory corruption and execute arbitrary code by providing crafted serialized data with an unexpected data type.
Successful exploitation of the vulnerability may result in system compromise.
The weakness exists due to type confusion in the SoapClient::__call method in ext/soap/soap.c in PHP before 5.4.39, 5.5.x before 5.5.23, and 5.6.x before 5.6.7 does not verify that __default_headers is an array. A remote attacker can trigger memory corruption and execute arbitrary code by providing crafted serialized data with an unexpected data type.
Successful exploitation of the vulnerability may result in system compromise.
Affected software
PHP
php5 (Ubuntu package)
php5 (Ubuntu package)
How to mitigate CVE-2015-4147
Install update from vendor's website.
PHP - addressed in versions 5.4.39, 5.5.23, 5.6.7
php5 (Ubuntu package) - addressed in versions 5.3.10-1ubuntu3.19, 5.5.9+dfsg-1ubuntu4.11, 5.5.12+dfsg-2ubuntu4.6, 5.6.4+dfsg-4ubuntu6.2
php5 (Ubuntu package) - addressed in versions 5.3.10-1ubuntu3.19, 5.5.9+dfsg-1ubuntu4.11, 5.5.12+dfsg-2ubuntu4.6, 5.6.4+dfsg-4ubuntu6.2