Bug 1260695 - php: Another use-after-free vulnerability in unserialize() with SplObjectStorage
Summary: php: Another use-after-free vulnerability in unserialize() with SplObjectStorage
Keywords:
Status: CLOSED DUPLICATE of bug 1260642
Alias: None
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: 1260700
Blocks: 1260756
TreeView+ depends on / blocked
 
Reported: 2015-09-07 13:10 UTC by Adam Mariš
Modified: 2019-09-29 13:36 UTC (History)
15 users (show)

Fixed In Version: php-5.5.29, php-5.6.13, php-5.4.45
Clone Of:
Environment:
Last Closed: 2015-09-09 08:27:02 UTC
Embargoed:


Attachments (Terms of Use)

Description Adam Mariš 2015-09-07 13:10:07 UTC
Another user-after-free vulnerability was found in unserialize(). We can create ZVAL and free it. During deserialization it will still allow to use R: or r: to set references to already freed memory, which could possibly lead to remote code execution.

Vulnerable code:

ALLOC_INIT_ZVAL(pentry);
if (!php_var_unserialize(&pentry, &p, s + buf_len, &var_hash TSRMLS_CC)) {
	zval_ptr_dtor(&pentry);
	goto outexcept;
}
var_push_dtor(&var_hash, &pentry);
if(Z_TYPE_P(pentry) != IS_OBJECT) {
	goto outexcept;
}
ALLOC_INIT_ZVAL(pinf);
if (*p == ',') { /* new version has inf */
	++p;
	if (!php_var_unserialize(&pinf, &p, s + buf_len, &var_hash TSRMLS_CC)) {
		zval_ptr_dtor(&pinf);
		goto outexcept;
	}
}

Upstream report:

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

Upstream patch:

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

Comment 1 Adam Mariš 2015-09-07 13:17:49 UTC
Created php tracking bugs for this issue:

Affects: fedora-all [bug 1260700]

Comment 2 Adam Mariš 2015-09-09 08:27:02 UTC

*** This bug has been marked as a duplicate of bug 1260642 ***

Comment 3 Fedora Update System 2015-09-14 22:19:58 UTC
php-5.6.13-1.fc21 has been pushed to the Fedora 21 stable repository. If problems still persist, please make note of it in this bug report.

Comment 4 Fedora Update System 2015-09-14 23:18:53 UTC
php-5.6.13-1.fc22 has been pushed to the Fedora 22 stable repository. If problems still persist, please make note of it in this bug report.

Comment 5 Fedora Update System 2015-09-18 18:43:56 UTC
php-5.6.13-1.fc23 has been pushed to the Fedora 23 stable repository. If problems still persist, please make note of it in this bug report.


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