This example clearly shows that you have no clue about what is going on. The bug in the unserializer is, that it tries to copy the next 9999999 Bytes (starting with the 'A') into a properly allocated memory block. Unfourtunately this will crash because it will try to read unpaged memory areas. There is no bufferoverflow and no memory corruption in your example.1) Memory Corruption / buffer overflow ====================================== DESCRIPTION: Insufficient input validation of serialized strings lead to memory corruption and information disclosre.
EXAMPLE script - "Segfault":
---cut here---
<?
$s = 's:9999999:"A";"';
$a = unserialize($s);
print $a;
?>
---cut here---
REMARKS:How does reading unpaged memory lead to arbitrary code execution?
leads to arbitrary code execution and file/information disclosure.
=========================================================================================================================Hardened-PHP has released an advisory about bugs in unserialize(). But the reported vulnerabilities are totally different from the stuff "you have found".
FOR SOME STRANGE REASONS HARDENED-PHP.NET HAS RELEASED THIS ADVISORY TODAY TOGETHER WITH A BUNCH OF OTHER VULNERABILITIES
==========================================================================================================================
Greetings Stefan Esser