Bug #69274 [NEW]: preg_match function can be bypass with array type value
| From: | codexb at gmail dot com | Date: | Sat, 21 Mar 2015 00:51:54 +0000 |
| Subject: | Bug #69274 [NEW]: preg_match function can be bypass with array type value | ||
| Groups: | php.bugs | ||
| Request: | Send a blank email to php-bugs+get-191498@lists.php.net to get a copy of this message | ||
From: codexb at gmail dot com
Operating system: All
PHP version: 5.6.7
Package: *General Issues
Bug Type: Bug
Bug description:preg_match function can be bypass with array type value
Description:
------------
1. test environment : windows php 5.6.7
2. technical detail
preg_match function compare regular espression and input of user.
but if input value is array it fail to compare.
As a result following script continuously execute. Attacker can bypass
preg_macth function and take place side effect of various case.
Test script:
---------------
this is poc of vulnerability.
http://192.168.0.2/test.php?input[]=abc'def
<?
$a = $_GET['input'];
if(preg_match("~[^0-9a-z+\\.]~",$a,$match)) { // special char check
echo "you can't execute following script";
exit;
}
system("touch filename");
echo "why i am here";
?>
Expected result:
----------------
"why i am here" print
--
Edit bug report at https://bugs.php.net/bug.php?id=69274&edit=1
--
Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=69274&r=trysnapshot54
Try a snapshot (PHP 5.5): https://bugs.php.net/fix.php?id=69274&r=trysnapshot55
Try a snapshot (trunk): https://bugs.php.net/fix.php?id=69274&r=trysnapshottrunk
Fixed in SVN: https://bugs.php.net/fix.php?id=69274&r=fixed
Fixed in release: https://bugs.php.net/fix.php?id=69274&r=alreadyfixed
Need backtrace: https://bugs.php.net/fix.php?id=69274&r=needtrace
Need Reproduce Script: https://bugs.php.net/fix.php?id=69274&r=needscript
Try newer version: https://bugs.php.net/fix.php?id=69274&r=oldversion
Not developer issue: https://bugs.php.net/fix.php?id=69274&r=support
Expected behavior: https://bugs.php.net/fix.php?id=69274&r=notwrong
Not enough info: https://bugs.php.net/fix.php?id=69274&r=notenoughinfo
Submitted twice: https://bugs.php.net/fix.php?id=69274&r=submittedtwice
register_globals: https://bugs.php.net/fix.php?id=69274&r=globals
PHP 4 support discontinued: https://bugs.php.net/fix.php?id=69274&r=php4
Daylight Savings: https://bugs.php.net/fix.php?id=69274&r=dst
IIS Stability: https://bugs.php.net/fix.php?id=69274&r=isapi
Install GNU Sed: https://bugs.php.net/fix.php?id=69274&r=gnused
Floating point limitations: https://bugs.php.net/fix.php?id=69274&r=float
No Zend Extensions: https://bugs.php.net/fix.php?id=69274&r=nozend
MySQL Configuration Error: https://bugs.php.net/fix.php?id=69274&r=mysqlcfg