CVE:CVE-2007-1886
CNNVD:CNNVD-200704-103
PHP是广泛使用的通用目的脚本语言，特别适合于Web开发，可嵌入到HTML中。
PHP的str_replace()函数实现上存在整数溢出漏洞，本地攻击者可能利用此漏洞提升自己的权限。
在调用PHP的str_replace()函数时代码会切换到两个不同的代码路径，具体取决于搜索字符串的长度。单字符搜索字符串是由不同函数来处理的，以提高效率，但这种方法的以下代码中存在整数溢出漏洞：
    Z_STRLEN_P(result) = len + (char_count * (to_len - 1));
    Z_STRVAL_P(result) = target = emalloc(Z_STRLEN_P(result) + 1);
    Z_TYPE_P(result) = IS_STRING;
如果char_count和to_len都大于65537的话就会导致32位长度计数器的整数溢出，因此emalloc()不会分配足够的内存，在执行替换时会导致溢出所分配的缓冲区。如果要成功利用这个漏洞必须在攻击对象之前分配目标缓冲区，以便溢出攻击对象，这样拷贝在崩溃之前停止。
solution:Upgrade php php to a higher version than 4.4.5,5.2.1,and avoid the version 4.4.5,5.2.1