Edit report at https://bugs.php.net/bug.php?id=60677&edit=1

 ID:                 60677
 Updated by:         dtajchre...@php.net
 Reported by:        pasamio at gmail dot com
 Summary:            CGI doesn't properly validate shebang line contains
                     #!
-Status:             Bogus
+Status:             Verified
 Type:               Bug
 Package:            CGI/CLI related
 Operating System:   N/A
 PHP Version:        trunk-SVN-2012-01-07 (SVN)
 Block user comment: N
 Private report:     N

 New Comment:

I completely misunderstood what you were saying... forgive me. :) Taking a 
second 
look, you're right... the logic only checks the first character when 
cgi.check_shebang_line = 1.


Previous Comments:
------------------------------------------------------------------------
[2012-01-07 05:20:05] dtajchre...@php.net

Lines that begin with a hash tag can also be comments... 

# This is a comment... <?php echo 'None of this will appear!' ?>

http://us.php.net/manual/en/language.basic-syntax.comments.php

------------------------------------------------------------------------
[2012-01-07 02:43:13] pasamio at gmail dot com

This appears to have been introduced with this change:

http://svn.php.net/viewvc/php/php-src/trunk/sapi/cgi/cgi_main.c?
r1=288080&r2=288081&

------------------------------------------------------------------------
[2012-01-07 02:39:51] pasamio at gmail dot com

Description:
------------
When running in CGI, PHP attempts to look for a shebang. However there is a bug 
where if the first character of the first line is a hash character/pound 
character (#), PHP doesn't validate that the next character is an exclamation 
mark and thus a properly formed shebang line (e.g. #!). Instead PHP just skips 
the entire line ignoring any PHP code that might be on that line.

The code in question from a quick examination appears to be here in trunk:
http://svn.php.net/viewvc/php/php-src/trunk/sapi/cgi/cgi_main.c?
revision=321634&view=markup

On lines 2361, 2379 and 2396.

And on the PHP 5.4 branch:
http://svn.php.net/viewvc/php/php-src/branches/PHP_5_4/sapi/cgi/cgi_main.c?
revision=321634&view=markup

On lines 2362, 2380 and 2397.

This has been replicated on PHP 5.3.3 and PHP 5.3.5 as well as being in current 
trunk.

Test script:
---------------
#<?php echo "Hello World\n"; ?>
Second line.

Expected result:
----------------
X-Powered-By: PHP/5.3.3-7+squeeze3
Content-type: text/html

#Hello World
Second line.

Actual result:
--------------
X-Powered-By: PHP/5.3.3-7+squeeze3
Content-type: text/html

Second line.


------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=60677&edit=1

Reply via email to