CVE:CVE-2007-1453
PHP是广泛使用的通用目的脚本语言，特别适合于Web开发，可嵌入到HTML中。  PHP在内存管理的代码实现上存在漏洞，远程攻击者可能利用此漏洞在某些特定系统平台下执行任意指令。  PHP的堆内存管理器会存储用户所请求的控制信息。当使用FILTER_VALIDATE_INT过滤器时，首先要对入站的用户输入数据执行去除空格操作，由以下宏完成：  #define PHP_FILTER_TRIM_DEFAULT(p, len, end) { \ while (*p == ' ' || *p == '\t' || *p == '\r' || *p == '\v') { \ p++; \ len--; \ } \ start = p; \ end = p + len - 1; \ if (*end == ' ' || *end == '\t' || *end == '\r' || *end == '\v') { \ unsigned int i; \ for (i = len - 1; i >= 0; i--) { \ if (!(p[i] == ' ' || p[i] == '\t' || p[i] == '\r' || p[i] == '\v')) { \ break; \ } \ } \ i++; \ p[i] = '\0'; \ end = p + i - 1; \ len = (int) (end - p) + 1; \ } \ }  如果存在空格的话，这个宏首先向前移动start指针，然后在回退的时候end指针也执行同样的操作，最后向末尾写入一个空字节结束字符串。但由于回退并不是在字符串的开始处停止的，因此如果缓冲区开始之前的字节中包含有属于空白字符集的ASCII字符的话，上述操作就会在所分配的缓冲区之前写入空字节。  PHP新的内存管理器将之前内存块的大小储存在缓冲区之前，因此在little endian系统中缓冲区之前的字节不太可能出现空格空白字符；但在big endian系统中（如PPC）远程攻击者可能创建在缓冲区之前包含有空白字符的堆结构，这样去除空格操作就会用空字节覆盖该结构，破坏控制信息，导致执行任意指令。
solution:Upgrade php php to a higher version than 5.2.0,and avoid the version 5.2.0