Initial mitigations for #1088 #1089

This commit is contained in:
Kijin Sung 2018-09-17 00:48:47 +09:00
parent 6d081b9fec
commit 60d390f52e
5 changed files with 79 additions and 23 deletions

View file

@ -1261,8 +1261,9 @@ class Context
$tmp_name = $val['tmp_name'];
if(!is_array($tmp_name))
{
if(!$tmp_name || !is_uploaded_file($tmp_name) || $val['size'] <= 0)
if(!UploadFileFilter::check($tmp_name, $val['name']))
{
unset($_FILES[$key]);
continue;
}
$val['name'] = escape($val['name'], false);
@ -1275,16 +1276,19 @@ class Context
$files = array();
foreach ($tmp_name as $i => $j)
{
if($val['size'][$i] > 0)
if(!UploadFileFilter::check($val['tmp_name'][$i], $val['name'][$i]))
{
$file = array();
$file['name'] = $val['name'][$i];
$file['type'] = $val['type'][$i];
$file['tmp_name'] = $val['tmp_name'][$i];
$file['error'] = $val['error'][$i];
$file['size'] = $val['size'][$i];
$files[] = $file;
$files = array();
unset($_FILES[$key]);
break;
}
$file = array();
$file['name'] = $val['name'][$i];
$file['type'] = $val['type'][$i];
$file['tmp_name'] = $val['tmp_name'][$i];
$file['error'] = $val['error'][$i];
$file['size'] = $val['size'][$i];
$files[] = $file;
}
if(count($files))
{