cbcvebase.
CVE-2015-4147
published 2015-06-09

CVE-2015-4147: 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…

PriorityP355high7.5CVSS 2.0
AVNACLAuNCPIPAP
EPSS
12.27%
95.7th percentile
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, which allows remote attackers to execute arbitrary code by providing crafted serialized data with an unexpected data type, related to a "type confusion" issue.

Affected

36 ranges· showing 25
VendorProductVersion rangeFixed in
applemac_os_x<= 10.10.4
appleos_x_yosemite_v10.10.5_and_security_update_2015-006
phpphp<= 5.4.38
phpphp
phpphp
phpphp
phpphp
phpphp
phpphp
phpphp
phpphp
phpphp
phpphp
phpphp
phpphp
phpphp
phpphp
phpphp
phpphp
phpphp
phpphp
phpphp
phpphp
phpphp
phpphp

Detection & IOCsextracted from sources · hover to see the quote

  • The vulnerability is triggered via crafted serialized data passed to PHP's unserialize() function, where __default_headers in SoapClient is not verified to be an array — monitor for unexpected data types in deserialized SoapClient objects
  • The attack vector is through PHP's unserialize() function processing specially crafted input targeting SoapClient::__call() — flag unserialize() calls that produce SoapClient objects with non-array __default_headers
  • The vulnerable code path is in ext/soap/soap.c within the SoapClient::__call method — patch or monitor PHP versions before 5.4.39, 5.5.x before 5.5.23, and 5.6.x before 5.6.7
  • ·Red Hat Enterprise Linux 5 (php and php53 packages) will not receive a fix — deployments on RHEL5 remain permanently vulnerable
  • ·A related typo introduced in the fix commit c8eaca013a3922e8383def6158ece2b63f6ec483 was later corrected in PHP 5.5.40 — ensure the follow-up fix is also applied
  • ·A related information-leak issue (CVE-2015-4148) exists in the same code area, affecting URI handling in do_soap_call() — treat both CVEs together when assessing exposure

CVSS provenance

nvdv2.07.5HIGHAV:N/AC:L/Au:N/C:P/I:P/A:P
osv7.5HIGH
vendor_redhat7.5HIGH
vendor_ubuntu6.5MEDIUM
Stop checking back — get the weekly exploitation signal.

Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.