Bug #13455: Using include() with Apache ErrorDocument directive can crash the webserver
| From: | manitu at manitu dot net | Date: | Wed, 26 Sep 2001 16:37:34 +0000 |
| Subject: | Bug #13455: Using include() with Apache ErrorDocument directive can crash the webserver | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-66662@lists.php.net to get a copy of this message | ||
From: manitu@manitu.net
Operating system: Any Linux with any Apache
PHP version: 4.0.6
PHP Bug Type: Apache related
Bug description: Using include() with Apache ErrorDocument directive can crash the webserver
HOW TO REPRODUCE
1. You must run Apache in any version on a Linux system and have setup an
VirtualHost entry with
an example domain "www.domain.com".
2. Configure an .htaccess file like
ErrorDocument 404 http://www.domain.com/notfound.html
3. The notfound.html file MUST NOT exist and you MUST use an external
path
4. Write a php script like
<?php
include("http://www.domain.com/any_file_that_does_not_exist.html");
?>
WHAT HAPPENS
The include() function tries to get the specified document but cannot find
it. So the Apache webserver
sends an 404 error together with a HTTP redirection. The include() tries to
catch this address which
leads into an infinite loop. The webserver will die shortly.
HOW TO SOLVE
The include() function should have a limit on how many levels it tries to
catch since the webserver is not
able to determine if the caller runs into an infinite loop.
--
Edit bug report at: http://bugs.php.net/?id=13455&edit=1