Edit report at https://bugs.php.net/bug.php?id=62474&edit=1
ID: 62474
Comment by: fb1h2s at gmail dot com
Reported by: deadb17ch at gmail dot com
Summary: com_event_sink crashes when closure object given as
an argument
Status: Open
Type: Bug
Package: COM related
Operating System: Windows XP SP3
PHP Version: 5.4.4
Block user comment: N
Private report: N
New Comment:
Oh yea my mistake I was referring to arg 1 crash, dint see a Bug Id open for
that here though.
<?php
$buffer = str_repeat("A", 1000);
$vVar = new VARIANT(0x41414141); // We controll this
$vVar2 = new VARIANT(0x41414141); //
com_event_sink($vVar, $vVar2 , $buffer );
?>
Previous Comments:
------------------------------------------------------------------------
[2012-07-26 13:43:04] deadb17ch at gmail dot com
I know. I have send an advisory about possible code execution in
com_event_sink()
function using VARIANT object to bugtraq some time ago (21 May) :
http://cxsecurity.com/issue/WLB-2012050163
http://www.exploit-db.com/exploits/18910/
but this time it is about bug in second argument, not first.
------------------------------------------------------------------------
[2012-07-26 13:32:17] fb1h2s at gmail dot com
It's possible to achieve code execution using this bug.
$_evil_object = new VARIANT(0x41414141);
------------------------------------------------------------------------
[2012-07-03 20:18:20] deadb17ch at gmail dot com
Description:
------------
com_event_sink() crashes when closure object (anonymouse function) is given as
the
second argument...
Test script:
---------------
<?php
$__evil = function() { };
com_event_sink(
/* variant */ new Variant(),
/* object */ $__evil, // oink!
/* mixed */ array()
);
?>
Expected result:
----------------
nothing happends or an information about error (or maybe argument type
mismatch)
occurs
Actual result:
--------------
crash
eax=00000000 ebx=010328f0 ecx=00000000 edx=00000001 esi=0121e438 edi=00000000
eip=100f33c8 esp=00c0fa50 ebp=00000000 iopl=0 nv up ei pl nz na po nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00200202
*** ERROR: Symbol file could not be found. Defaulted to export symbols for
C:\xampp\php\php5ts.dll -
php5ts!php_com_load_typelib_via_cache+0x118:
100f33c8 8b08 mov ecx,dword ptr [eax] ds:0023:00000000=????????
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=62474&edit=1