[Full-disclosure] PHP 5 ecalloc memory manager unserialize() array int overflow ia 32 bits poc

Josh Bressers josh at bress.net
Wed Oct 18 01:28:20 BST 2006


> 
> <?
> 
>  print_r(unserialize('a:1073741823:{i:0;s:30:"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}'));
> ?>
> 
> in function zend_hash_init() int overflow ( ecalloc() )-> heap overflow
> here segfault in zend_hash_find() but it's possible to fake the bucket and
> exploit a zend_hash_del_index_or_key
> i tried a memory dump , just fake the bucked with the pointer of the
> $GLOBALS's bucket but segfault before in memory_shutdown...
> 

This looks to be CVE-2006-4812, which was discovered by Stefan Esser.  He
published his advisory last week:
http://www.hardened-php.net/advisory_092006.133.html

-- 
    JB




Full-Disclosure is hosted and sponsored by Secunia.