From: charlesfol at hotmail dot fr Operating system: nux/win PHP version: 5.2.5 PHP Bug Type: *Regular Expressions Bug description: Regex bypass using POISON NULL BYTE
Description: ------------ I discovered that in this PHP version, regex could be bypassed using \0 (%00) a.k.a. POISON NULL BYTE. Reproduce code: --------------- <?php $var=$_GET['var']; $is_alphanum_var = ereg("^[a-zA-Z0-9]+$",$var); print "$is_alphanum_var\n$var"; ?> Expected result: ---------------- Normally if code contains ad chars such as %,", or _ it will be detected by the regex. Actual result: -------------- But if we use this URL: http://site.com/page.php?var=test%00_- $is_alphanum_var RETURNS 1, BUT $var CONTAINS _- Security HOLE. Warmly, Charles "real" FOL. -- Edit bug report at http://bugs.php.net/?id=44366&edit=1 -- Try a CVS snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=44366&r=trysnapshot52 Try a CVS snapshot (PHP 5.3): http://bugs.php.net/fix.php?id=44366&r=trysnapshot53 Try a CVS snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=44366&r=trysnapshot60 Fixed in CVS: http://bugs.php.net/fix.php?id=44366&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=44366&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=44366&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=44366&r=needscript Try newer version: http://bugs.php.net/fix.php?id=44366&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=44366&r=support Expected behavior: http://bugs.php.net/fix.php?id=44366&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=44366&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=44366&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=44366&r=globals PHP 4 support discontinued: http://bugs.php.net/fix.php?id=44366&r=php4 Daylight Savings: http://bugs.php.net/fix.php?id=44366&r=dst IIS Stability: http://bugs.php.net/fix.php?id=44366&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=44366&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=44366&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=44366&r=nozend MySQL Configuration Error: http://bugs.php.net/fix.php?id=44366&r=mysqlcfg