Bug 1315328 (CVE-2016-3141)

Summary: CVE-2016-3141 php: Use after free in WDDX Deserialize when processing XML data
Product: [Other] Security Response Reporter: Adam Mariš <amaris>
Component: vulnerabilityAssignee: Red Hat Product Security <security-response-team>
Status: CLOSED ERRATA QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: unspecifiedCC: abhgupta, dmcphers, fedora, jialiu, jokerman, jorton, kseifried, lmeyer, mmaslano, mmccomas, rcollet, sardella, tiwillia, webstack-team, yozone
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: php 5.5.33, php 5.6.19, php 7.0.4 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-06-16 11:51: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: 1315330    
Bug Blocks: 1315348    

Description Adam Mariš 2016-03-07 13:39:01 UTC
Use-after-free vulnerability in WDDX Deserialize when processing XML data was found.

Upstream bug (contains reproducer):

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

Upstream patch:

http://git.php.net/?p=php-src.git;a=commit;h=b1bd4119bcafab6f9a8f84d92cd65eec3afeface

Comment 1 Adam Mariš 2016-03-07 13:39:28 UTC
Created php tracking bugs for this issue:

Affects: fedora-all [bug 1315330]

Comment 2 Adam Mariš 2016-03-14 10:03:55 UTC
CVE assignment:

http://seclists.org/oss-sec/2016/q1/625

Comment 3 Tomas Hoger 2016-06-16 11:51: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>/.

Comment 4 errata-xmlrpc 2016-11-15 11:49:51 UTC
This issue has been addressed in the following products:

  Red Hat Software Collections for Red Hat Enterprise Linux 6
  Red Hat Software Collections for Red Hat Enterprise Linux 6.7 EUS
  Red Hat Software Collections for Red Hat Enterprise Linux 7
  Red Hat Software Collections for Red Hat Enterprise Linux 7.2 EUS
  Red Hat Software Collections for Red Hat Enterprise Linux 7.3 EUS

Via RHSA-2016:2750 https://rhn.redhat.com/errata/RHSA-2016-2750.html