bug70168.phpt 659 B

123456789101112131415161718192021222324252627282930313233343536
  1. --TEST--
  2. SPL: Bug #70168 Use After Free Vulnerability in unserialize() with SplObjectStorage
  3. --FILE--
  4. <?php
  5. $inner = 'x:i:1;O:8:"stdClass":0:{};m:a:0:{}';
  6. $exploit = 'a:2:{i:0;C:16:"SplObjectStorage":'.strlen($inner).':{'.$inner.'}i:1;R:3;}';
  7. $data = unserialize($exploit);
  8. for($i = 0; $i < 5; $i++) {
  9. $v[$i] = 'hi'.$i;
  10. }
  11. var_dump($data);
  12. ?>
  13. ===DONE===
  14. --EXPECTF--
  15. array(2) {
  16. [0]=>
  17. object(SplObjectStorage)#%d (1) {
  18. ["storage":"SplObjectStorage":private]=>
  19. array(1) {
  20. ["%s"]=>
  21. array(2) {
  22. ["obj"]=>
  23. object(stdClass)#2 (0) {
  24. }
  25. ["inf"]=>
  26. NULL
  27. }
  28. }
  29. }
  30. [1]=>
  31. int(1)
  32. }
  33. ===DONE===