PHP multipart/form-data POST请求处理远程漏洞 CVE-2002-0717 CNNVD-200207-120

7.5 AV AC AU C I A
发布: 2002-07-26
修订: 2016-10-18

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)身份执行,攻击者也可能获取该特权用户的权限。

0%
暂无可用Exp或PoC
当前有2条受影响产品信息