Bug 1377303 (CVE-2016-7411) - CVE-2016-7411 php: Memory corruption when destructing deserialized object
Summary: CVE-2016-7411 php: Memory corruption when destructing deserialized object
Keywords:
Status: CLOSED WONTFIX
Alias: CVE-2016-7411
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Red Hat Product Security
QA Contact:
URL:
Whiteboard:
Depends On: 1377366
Blocks: 1377365
TreeView+ depends on / blocked
 
Reported: 2016-09-19 12:04 UTC by Adam Mariš
Modified: 2019-12-16 06:48 UTC (History)
14 users (show)

Fixed In Version: php 5.6.26
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-10-12 09:09:36 UTC
Embargoed:


Attachments (Terms of Use)

Description Adam Mariš 2016-09-19 12:04:22 UTC
It was found that if object deserialization fails, object's properties will be cleaned, but the object will still remain stored in objects_store. When calling desctructor with uninitialized properties, memory corruption may happen.

Upstream bug:

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

Upstream patch:

https://github.com/php/php-src/commit/6a7cc8ff85827fa9ac715b3a83c2d9147f33cd43?w=1

CVE assignment:

http://seclists.org/oss-sec/2016/q3/518

Comment 1 Adam Mariš 2016-09-19 13:37:07 UTC
Created php tracking bugs for this issue:

Affects: fedora-all [bug 1377366]

Comment 2 Huzaifa S. Sidhpurwala 2016-10-12 09:09:36 UTC
This issue happens when untrusted input is unserialized.  Doing so it documented as being unsafe:

  http://php.net/manual/en/function.unserialize.php

  Do not pass untrusted user input to unserialize(). 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. Use a safe,
  standard data interchange format such as JSON (via json_decode() and
  json_encode()) if you need to pass serialized data to the user.


Note You need to log in before you can comment on or make changes to this bug.