CVE:CVE-2002-0717
CNNVD:CNNVD-200207-120
PHP是一种流行的WEB服务器端编程语言，它功能强大，简单易用，在很多Unix操作系统缺省都安装了PHP， 它也可以在Windows系统下运行。
PHP 4.2.0和4.2.1在处理HTTP POST请求的代码中存在一个严重安全问题。远程或者本地攻击者可能利用这个漏洞以Web服务器运行权限执行任意指令或者造成Web服务器崩溃。
PHP 包含一段代码用来对HTTP POST请求的头部数据进行智能分析，它主要用来区分用户发来的"multipart/form-data"请求中哪些是变量、哪些是文件。PHP 4.2.0开始这部分分析代码被完全重写了，由于缺乏足够的输入检查，用户通过发送一个畸形的POST请求，就可能触发一个错误条件，这个错误并没有被正确的处理。当错误发生时，一个未被初始化的结构被附在mime头链表的后面，当这个链表被释放或者销毁时，PHP会试图释放该结构中的一些指针。由于这个结构没有进行初始化，因此这些指针可能包含以前的函数调用留在堆栈中的数据。如果这些数据是攻击者可以控制的，就有可能利用free/malloc实现中的一些特性来获取控制权。
根据漏洞发现者和PHP开发组的报告，在x86平台下，由于堆栈布局的问题，留在堆栈中的数据无法被有效利用，攻击者无法获取控制权，但可以造成进程崩溃。而在Solaris sparc平台下(可能包含其他系统及平台)，攻击者就可以控制堆栈中的数据，使得PHP去释放一个攻击者可以控制的内存块，从而可能获得系统控制权。通常，攻击者可以获取一个普通用户的执行权限。如果web服务器错误地以特权用户(例如 root)身份执行，攻击者也可能获取该特权用户的权限。
solution:Upgrade php php to a higher version than 4.2.0,4.2.1,and avoid the version 4.2.0,4.2.1