Bug 1305559

Summary: php: Type confusion vulnerability in WDDX packet deserialization
Product: [Other] Security Response Reporter: Adam Mariš <amaris>
Component: vulnerabilityAssignee: Red Hat Product Security <security-response-team>
Status: CLOSED WONTFIX QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: unspecifiedCC: carnil, dmcphers, fedora, hhorak, jialiu, jokerman, jorton, lmeyer, mmaslano, mmccomas, rcollet, webstack-team
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: php 5.6.18, php 5.5.32 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-09-07 21:04:22 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1305565    
Bug Blocks: 1305564    

Description Adam Mariš 2016-02-08 15:06:17 UTC
A type confusion vulnerability in WDDX packet deserialization was reported.

Upstream bug:

https://bugs.php.net/bug.php?id=71335

Upstream patch:

https://git.php.net/?p=php-src.git;a=commit;h=285cd3417fb61597345b829f5f573707bbdcd484

Comment 1 Adam Mariš 2016-02-08 15:12:45 UTC
Created php tracking bugs for this issue:

Affects: fedora-all [bug 1305565]

Comment 2 Tomas Hoger 2017-09-07 21:04:22 UTC
This issue happens when untrusted input is unserialized.  Doing so it documented as being unsafe:

  http://php.net/manual/en/function.wddx-deserialize.php

  Warning
  Do not pass untrusted user input to wddx_deserialize(). Unserialization
  can result in code being loaded and executed due to object instantiation
  and autoloading, and a malicious user may be able to exploit this.

Affected code is part of the WDDX extension.  In Red Hat products, this extension is packaged in the php-xml subpackages.  Systems without php-xml installed can not be affected by this issue.  If system requires one of the other extensions packaged in php-xml packages, but not the WDDX extension, it is possible to prevent PHP from loading the extension by commenting out the following line in the wddx.ini configuration file:

  extension=wddx.so

The configuration file can be found in the php.d configuration directory.  Depending on whether PHP packages from Red Hat Enterprise Linux or Red Hat Software Collections are used, php.d directory can be found in one of the following locations: /etc, /opt/rh/<collection>/root/etc/, or /etc/opt/rh/<collection>/.