RE: [PHP-QA] Possible Parse Bomb
| From: | James Moore | Date: | Sat, 09 Dec 2000 13:18:43 +0000 |
| Subject: | RE: [PHP-QA] Possible Parse Bomb | ||
| References: | 1 | Groups: | php.qa |
| Request: | Send a blank email to php-qa+get-1777@lists.php.net to get a copy of this message | ||
>-----Original Message-----
>From: Zak Greant [mailto:zak@nucleus.com]
>Sent: 09 December 2000 12:54
>To: Sascha Schumann; PHP Quality Assurance Team Mailing List
>Subject: Re: [PHP-QA] Possible Parse Bomb
>
>
>Sascha spoke:
>> > Thoughts, comments?
>>
>> I doubt this is a deterministic problem and that it can be
>> recreated by querying a web-server even a billion times. It
>> is impossible to prove a specific detect does not exist (in
>> any given implementation). What you can prove is that you
>> cannot create the necessary circumstances to show that the
>> problem exists.
>
> I agree that it is likely that this problem can not be recreated
> by brute force testing. However, if we can prove that it is highly
> unlikely that the parser will behave badly under normal conditions,
> then we can eliminate one class of worries.
>
>> What James might have observed is someone changing the
>> configuration file on our web-server and restarting it too
>> early or something like that.
>
> We can't protect people from the scenario that you present.
> However, we should be able to offer them the assurance that,
> under most conditions, PHP will not display unparsed code.
>
> (Also, the scenario that you present is quite plausable - if
> the sysadmin mungs a conf file, then it would be easy enough
> for raw code to be dumped straight to the browser.)
Looking back, the fact the page was half parsed I would say that this is
more likley, also it ocurred twice in quick sucession, I think if this was
happening regularly on php.net then we would know about it so I would say we
can put my expericance down to server config problems, php.net was up and
down like a yoyo at that point.
I have now completed 1 million requests and everything is working fine. I
had loads of 2.* during this so I dont think its due to very heavy loads
(This is also supported by Derick only having himself on his machine and
milans use).
Milan could you plesae run these tests on your machine and see what happens,
also if everyone once again reports their system types etc perhaps we can
see a pattern to it.
Here are my logs for the test:
Server Software: Apache/1.3.12
Server Hostname: Orion
Server Port: 81
Document Path: /parsetest.php
Document Length: 1 bytes
Concurrency Level: 1
Time Taken for tests: 4196.794 seconds
Complete Requests: 1000000
Failed Requests: 0
Total transfered: 172000000 bytes
HTML transfered: 1000000 bytes
Requests per second: 237.28
Transfer rate: 40.98 kb/s received
Connection Times (ms)
min avg max
Connect: 0 0 15
Processing: 2 3 57
Total: 2 3 72
This is on a 266 PII, Apache 1.3.12 with PHP 4.0.3pl1 Compiled in,
'./configure' '--enable-ftp' '--enable-yp' '--with-mysql' \
'--enable-sockets' '--with-gd' '--enable-trans-sid' \
'--enable-track-vars' '--enable-inline-optimization' \
'--disable-debug' '--enable-versioning' \
'--enable-memory-limit' '--enable-sysvsem' \
'--enable-sysvshm' '--enable-shmop' '--enable-calender' \
'--enable-dba' '--enable-exif' '--with-tiff' \
'--with-apache=/root/apache_1.3.12'
James