[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.