buffer under- and overflow on clone(null)+array_push()
| Bug #42817 | buffer under- and overflow on clone(null)+array_push() | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Submitted: | 2007-10-01 17:13 UTC | Modified: | 2007-10-04 23:49 UTC |
|
||||||||||
| From: | victor dot stinner at inl dot fr | Assigned: | iliaa (profile) | |||||||||||
| Status: | Closed | Package: | Scripting Engine problem | |||||||||||
| PHP Version: | 5.2.4 | OS: | Linux | |||||||||||
| Private report: | No | CVE-ID: | None | |||||||||||
[2007-10-01 17:13 UTC] victor dot stinner at inl dot fr
Description: ------------ Hi, I found a critical bug (security issue) in my web application. The code to reproduce it is quite simple (see above). With apache, the result is a line in error.log: [notice] child pid 14988 exit signal Segmentation fault (11). My config: Ubuntu Feisty on Intel Celeron M 420 (32-bit). Victor Stinner http://www.inl.fr/ Reproduce code: --------------- <?php $a = clone(null); array_push($a->b, $c); ?> Expected result: ---------------- no crash Actual result: -------------- Warning: array_push(): First argument should be an array in crash.php on line 3 --------------------------------------- /home/haypo/php-5.2.4/Zend/zend_variables.c(175) : Block 0x084774b8 status: /home/haypo/php-5.2.4/Zend/zend_execute.h(70) : Actual location (location was relayed) Beginning: Freed (magic=0x00000000, expected=0x99954317) Start: Overflown (magic=0x084774A4 instead of 0x496A04CC) At least 4 bytes overflown End: Overflown (magic=0x00000000 instead of 0x39D5CB7E) At least 4 bytes overflown ---------------------------------------
Patches
Pull Requests
History
AllCommentsChangesGit/SVN commits
[2007-10-02 14:56 UTC] victor dot stinner at inl dot fr
[2007-10-02 14:57 UTC] misc at inl dot fr
[2007-10-04 23:26 UTC] iliaa@php.net
[2007-10-04 23:49 UTC] victor dot stinner at inl dot fr