CVE:CVE-2007-1383
CNNVD:CNNVD-200703-293
PHP是广泛使用的通用目的脚本语言，特别适合于Web开发，可嵌入到HTML中。
PHP的ZVAL结构中引用计数实现上存在整数溢出漏洞，远程攻击者可能利用此漏洞在服务器上执行任意指令。
在PHP 4中内部描述变量的ZVAL结构类似于：
struct _zval_struct {
        /* Variable information */
        zvalue_value value;     /* value */
        zend_uchar type;        /* active type */
        zend_uchar is_ref;
        zend_ushort refcount;
};
在设计这个结构时引用计数器为16位宽，这样在32位系统上整个结构为8个字节长；在PHP 5中这个字段为32位宽，因为16位太容易溢出，PHP对引用计数器的溢出也没有内部的防范措施。但对于PHP 4这意味着以下代码会溢出计数器，在脚本端触发变量的双重释放：
  $var = "POC";
  for ($i = 0; $i < 0x10001; $i++) {
    $arr[] = &$var;
  }
攻击者可以利用这个漏洞破坏内存，可能执行任意指令，从而绕过disable_functions之类的安全限制。
此外由于很多老版本PHP应用程序仍对用户提供的数据使用unserialize()，因此也可能远程触发这个漏洞。Unserialize()函数以不安全的方式使用已还原序列化的__wakeup()方式，可能导致远程执行任意指令。
solution:Upgrade php php to a higher version than 4.0,and avoid the version 4.0